Vous êtes sur la page 1sur 694

<-^c

Embedded
Ms
Segunda Edicin

La arquitectura. Diseo y programacin

Kamal Raj
004.16 KAM

Agradecimientos
Estoy inmensamente agradecido a mis maestros en el Instituto Indio de Tecnologa. Delhi (1966-72) y la Universidad de Ippsala,
Suecia (1978-1979, 1984). para ensear a m la importancia de auto-aprendizaje y la esencia de mantener con la combinacin de
la tecnologa. Me gustara agradecer a la Prof. MS Sodha. FNA. lor su apoyo y bendiciones a lo largo de mi fe acadmica.
Reconozco mi Indore colegas-Dr PC Sharma, Dr. PK Chande, Dr. Sanjeev Tokekar, Sra. Vrinda Tokekar, Dr. AK .amani. El Dr.
Maya, el Dr. Sanjay Tanwani nico, la Sra. Preeti Saxena. Ms Shraddha Masih, Ms Apama Dev y ms Vasanti G arulkar y otros
acadmicos de la universidad. Dr PS Grover (Nueva Delhi). Dr Harvinder Singh Saini (Hyderabad), el Dr. S. Radhakrishnan
srivilliputtur), DR TV Gopal (la Universidad de Anna) y Dr KM Mehata (Anna University) por su constante aliento nd aprecio de
mis esfuerzos. Estoy agradecido al equipo editorial de McGraw-Hill Educacin India para sus exmenes y iggestions. Reconozco
mi difunto colega el Dr. MK Sahu, Jefe. Centro informtico de la Universidad, que va a dejar de ver tis nueva edicin como falleci
durante la ltima fase de la preparacin de este libro.
Tambin me gustara dar las gracias a todos los revisores que sac tiempo para ir a travs de la secuencia de comandos y
darme sus comentarios, heredero del neumtico de nombres que se enumeran a continuacin.
Reddy Ramanaryan
>ept. de Ciencias de la Computacin e Ingeniera, idira
Gandhi Institute of Technology, Nueva Delhi.

P Kabisatpathy
Dept, de la electrnica y la ingeniera de instrumentacin.
Facultad de Ingeniera y Tecnologa. Bhubaneswar

Jilima Fulmare

Mohapatra KK
Dept, de electrnica.

Lindustan Facultad de Ciencia y Tecnologa. Agra likhil

Instituto Nacional de Tecnologa. Rourkela JK Mendiratta

Kothari

Dept, de la electrnica y las comunicaciones y la ingeniera. II.


V. Facultad de Ingeniera. Bangalore

>el EPR. Comunicacin de la electrnica y la ingeniera,


disipador tharam Desai Institute of Technology. Gujarat

Lyla 15 Das

Kelkar upriya
"utnmins Instituto de Ingeniera y Tecnologa.
"La Universidad de pas

Hindi Adhikari

Dept, de ingeniera electrnica.


Instituto Nacional de Tecnologa. Calicut

Santa Kumari
Dept, de la electrnica y la comunicacin e ingeniera.
Universidad de Andhra, Visliakiiopalnam

><7>r. De la electrnica y las comunicaciones y la


ingeniera. Calcuta, Instituto de Ingeniera y Gestin.
Kidkuta

V Murlidharan
Dept, de Ciencias de la Computacin e Ingeniera.
MS Ramaiah, Instituto de Tecnologa de Bangalore

Lipankar Ghosh
Iept. de Ingeniera Electrnica y comunicacin 10 gal
Institute of Technology. Kolkata.

Josephine P Kumar
Dept, de Ciencias de la Computacin e Ingeniera.
MV.I, Facultad de Ingeniera. Bangalore

Stanley Johnson
De lebashish
Tepl. de la electrnica y la comunicacin e ingeniera,
leghnad Saha Institute of Technology. Kolkata I

Invensys India Pvt. Ltd.. Chennai

Por ltimo, reconozco mi esposa, Sushil Mittal, y los miembros de mi familia -Shalin Mittal. Needhi Mittal. (ondaskar Atttl dr.
Dr Shilpi Kondaskar y ms Arushi Kondaskar por su inmenso amor, comprensin y apoyo durante la escritura de te de esta edicin
revisada.

Contenido
Prefacio a la segunda
edicin Prefacio a la primer

a edicin
1.

Introduccin a los sistemas integrados


1.1 Los sistemas integrados 3
1.2 Procesador Embebido en un sistema de 5
1.3 Las unidades y dispositivos de hardware integrado en un sistema 10
1.4 El software integrado en un sistema de 19 ..
1.5 Ejemplos de sistemas Emheddcd 27
1.6 Embedded Syslem-on-chip (SOC) y el uso de la tecnologa de diseo de circuitos VLSI 29
1.7 Diseo de sistemas complejos y procesadores 32
1.8 Proceso de diseo en Sistemas Embebidos 37
1.9 Formalizacin del diseo del sistema 42
1. 10 proceso de diseo y ejemplos de diseo 43
1.11 Clasificacin de sistemas integrados 52
1.12 Habilidades requeridas para un diseador de sistemas integrados 53

2. 8051 y arquitecturas de procesador avanzada, Organizacin de la


memoria y de la interconexin del mundo real
2.1 Arquitectura 8051 62
2.2 La interconexin del mundo real 72
2.3 Introduccin a las arquitecturas avanzadas 84
2.4 Organizacin del procesador y la memoria 96
2.5 Paralelismo Instruction-Level 104
2.6 Las mtricas de rendimiento 106
2.7 Memory-Types, Memory-Maps y direcciones 106
2.8 Seleccin del procesador 113
2.9 Seleccin de memoria de IIS
3. Dispositivos y buses de comunicacin para los dispositivos Network
3.1 10 tipos y ejemplos de 130
3.2 Dispositivos de comunicacin serie 134
3.3 Puertos de dispositivo paralelo 143
3.4 Sofisticadas caractersticas de entrelazado en puertos de dispositivo 150
3.5 Los dispositivos inalmbricos 151
3.6 Temporizador y dispositivos de cmputo 152
3.7 Watchdog Timer 157
3.8 Reloj en Tiempo Real I5S
3.9 Sistemas integrados en red 159
3.10 Los protocolos de comunicacin de bus serie 160
3.11 Dispositivo de bus paralelo de protocolos de red de
comunicacin paralela con ISA. PCI, PCI-X y 166 buses
avanzada
3.12 Internet activado los protocolos de red de sistemas 170
3.13 Protocolos de sistemas inalmbricos y mviles 175

4.

Los controladores de dispositivo y interrumpe el mecanismo de servicio


4 1-I/O programado ocupado-lamentacin enfoque sin interrumpir el servicio 189 Mecanismo

'1

Contenido

Xiv |

__ >
4.2
4.3
4.4
4.3
4.6
4.7

4.8
4.9

5.

Concepto de ISR 192


Fuentes de interrupcin 200
Interrumpir el mantenimiento ( 203) Mecanismo de manipulacin
Varias interrupciones 209
Contexto y los perodos de cambio de contexto, latencia de interrupciones y plazo 211
Clasificacin de procesadores del mecanismo del servicio de
interrupcin
ngulo Context-Saving 217
Acceso directo a memoria" 218
Programacin del controlador de dispositivo 220
234

Conceptos de programacin y Programacin incrustada en C, C++ y Java


5.1 Software Programacin en Lenguaje Ensamblador (ALP) y de alto nivel en
Idioma 'C' 235
C Los elementos de programa: Cabecera y archivos de origen y las directivas de
preprocesador 237
5.3 Elementos del programa: Macros y funciones 239
5.4 Elementos del programa: Tipos de datos, estructuras de datos, modificadores, instrucciones
Los bucles y punteros 24!
5.5 Programacin orientada a objetos 262
5.6 Programacin incrustada en C++ 263
5.7 Programacin incrustada en Java 264

5.2

6.

Conceptos de modelado de programa


6.1 Los modelos de programa 274
6.2 Modelos DFG 277
6.3 Obsoletos modelos de programacin para la mquina controlada por evento de flujo de
programa 282
6.4 Modelizacin de sistemas multiprocesador 288
6.5 Modelado de UML 295

7.

303

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas


7.1 Varios procesos en una aplicacin 305
7.2 Los subprocesos mltiples en una aplicacin 306
7.3 Tareas 308
7.4 Los estados de tarea 308
7.5 Tareas y datos 310
7.6 Una distincin clara entre las funciones, los ISRS y tareas por sus caractersticas 311
1.7
7.8
7.9
7.10
7.11
7.12
7.13
7.14
7.15
7.16

8.

273

Concepto de semforos 314


326 Datos compartidos
Comunicacin interproceso 330
Funcin de seal 332
Funciones Semforo 334
Las funciones de la cola de mensajes 335
Las funciones de buzn 337
Funciones del tubo 339
Funciones de Socket 34/.
RPC Functions 345

Sistemas
operativos
350
8.1 Servicios del sistema operativo 351
8.2 La gestin del proceso 355
8.3 Funciones de temporizador 356
8.4 Las funciones del evento 358
8.5 Gestin de memoria 359

en

tiempo

real

Contenido

Xv

8.6 Dispositivo. Gestin de subsistemas de azulejos y 10 361


8.7 Las rutinas de interrupcin en el RTOS Medio Ambiente y Manejo de fuente de interrupcin
de llamadas 366
8.8 Sistemas operativos en tiempo real 370
8.9 Diseo bsico con un RTOS 372
8.10 Los modelos de programacin de tareas de ros, latencia de interrupciones y la respuesta de
las tareas segn las mtricas de rendimiento 3H5
8.11 OS Problemas de seguridad 401

9. Sistema operativo de tiempo real programacin-I: Microc/OS-II y VxWorks


9.1 Funciones bsicas y tipos de RTOSES 408

406

9.2 RTOS MCO-ll 410


9.3 VxWorks RTOS 453

10. Sistema operativo de tiempo real programacin-II: OSEK, Windows CE y Linux


funciona en tiempo real
10.1 Windows CE 478

477

10.2 OSEK 494


10.3 Linux 2.6.x y RTLinux 496

11. Estudios de casos y ejemplos de diseo del programa de modelado y


programacin con RTOS-1
11.1 Estudio de caso de Embedded System Design y la codificacin para
una mquina expendedora automtica de chocolate (512) Con Mucos ACVM
RTOS
11.2 Estudio de caso de una cmara digital de la arquitectura de hardware y software 531
11.3 Estudio de caso de codificacin para enviar secuencias de bytes de la capa
de aplicacin en una red TCP/IP utilizando Vxworks RTOS 537

12. Estudios de casos y ejemplos de diseo del programa de modelado y


programacin con RTOS-2

511

566

12.1 Estudio de caso de la comunicacin entre los Robots Orquesta 567.


12.2 Los sistemas integrados en el automvil 574
12.3 Cttse Estudio de un sistema integrado para un control de crucero adaptable (ACC)
Sistema en un coche 577
12.4 Estudio de caso de un sistema integrado para una Smart Card 593
12.5 Estudio de caso de un telfono mvil de software para insumos clave 604

13. Proceso de desarrollo de software integrado y herramientas


13.1
13.2
13.3
13.4
13.5

Introduccin al proceso de desarrollo de software integrado y herramientas 620


Host y las mquinas de destino 623
Vincular y buscar software 626
Obteniendo el Software integrado en el sistema de destino 630
Problemas en el diseo Hardware-Software y Co-diseo 634

618

14. Simulacin y prueba, tcnicas y herramientas de depuracin


14.1 Las pruebas en la mquina host 649
14.2 Simuladores 650
14.3 Herramientas de laboratorio 653

648

Apndice I: Gua para diversos estudios Coulee


Apndice 2: Bibliografa selecta
ndice

662

663
668

Tutorial
R*
1.1 Embedded SVSTEMS
1.1.1 Sistema
Una manera syUcnl J .it ssurk.iig organi/mg ,.r d
MIW ...........
'...k- *c..RD.g" >"un plan lised, |,..,giam.".
ctofniks. Un sycirmisal'-ari unuugciwnl IM J11 NOSOTROS U.II.S -amt wmblc ""k.
IJKO"tOiny
ton*:
Plan programa ur.
Considere un reloj. h es una iime-di-sistema de juego sus cubos s tis hardware. mrolto nl atunes ".l> la
bella marcar. Chasis o"J arjp rhnr punt u/FUM.v r,. "IW OK lnea real oay sts.mj y tonlinwunlyr updaic
ihe tiempo cada 'rfcnJ. Las actualizaciones prugnm sysiein .l Io|djy vsm( cenar tudes itin <a> vnml.
A/<dfaM.>am<yndri.SiMi"airihcMnik% Jica>lulli~.s <u todos iwvJks enfermera solamente chAwise (HI una aguja larga Ihinand"e im> cada dpp tales ilul II >caims w sane pmwA despus me nuauie<1111h.ng neesWe ruUies cada nunn'e uch Ihai u murrn en uiw pi runon tras una hora tiv.Una aguja
shun nnotesrscry h"KU suchUur il devolucin* H> mismo pmiliuO tras doce nows en todas las tres
agujas volver al vmic inclin yinn, alterar (wvive iMun cada estancia.
Considere una wa.ch.ng la mquina. Es un aunuiuiie waahing efuthes-sistema. El mult impururu pns
incluyen su estado panel de visualizacin, los conmutadores pap marca U<t wet define la
programacin. T mt.e "" Mate o spin, hielo onl alimentacin unidad de control, un sensor de nivel de
agua interior, un solenoide salve tot al ralent en agua y otra vlvula para drenaje de agua kite twt. Ihrui*,ri"urguni*; iu con elinhcs juiuniaiiejlly aentding tu un programa preestablecido hy j usuario. El
Tht tv.vr/n'/"".e.m est activado lo wasp morir debidamente cl.el.es colocado en un tanque, que rutas de
espines en pasos preprogramados j.u| etapas h sigue u *1 min Sonic de thc<< mien arc a" del siguiente
modo: (ilF.ilfuwihc paso, estrictamente en el i.|]s'*i..g w.|uviic'C i de deslizamiento. Wasp hy spinning
ilMdf wcunling ihe para un perodo programado. Paso II: Kinu: en agua vaciado osii trcdi alterar el negar
el agua y enjuague el viento u cal si el syslemcsnui prottrartUrQluiwalcr-saviug.ii.de. Paso 111 Alter
drenar completamente el agua .wi ihe, spin die motor prugrartwied foM foros |<rri.d l secado por
cvniril'gai.ngovi wjier ln.ni .l ilothck. Paso IV: Mostrar el lavado-over slaluc hy una acuacin de la
pantalla. Sonido alarma Ihe escribe una ininuiu en seal de que el ciclo de lavado es Complute. lii) Al
cada pantalla slcp Ihe primes* supe de IHE sistema. I.nl en caso ol un iuic-rniplion. eiecuie slo mueren
con la parte restante del programa Ihe, 'Entrada del (Urciiion cuando se interrumpi el proceso Ihe TT*rc
puede l en>iepjiiii(en hierro paso! A menos que el IHE uwr restablece el sistema hy en campamento cit.annrlrcr i cT.nhcsand restablece el programa

Enfoque simple con interesantes


ejemplos y cifras

1.1.2 Embedded System

Uno de IU ihedefiiiiiiunc dtfwition cnJtrJJat .s un completo..-'.


"Arte tmluiUfd jyilent n U ivjiem iluil ha cmluJikd ".//,,(.< en<l'iordtor umipuief, que silencia nliiih-.
II norma Mbaudios fur un apphiwumlu o' ol en rrtiu intfitfc pun-r o /Worr o pu'i de o hu\rr
Se hcen lirtifvddfll sysicms dclincd en |tuhlislu duele.-tl .es .n de variasl baja es un scr.es
maneras (.v.o
."e .Vrdeni /Vrrert
De las definiciones de oihers en el celebrado:
S
una
Lobo ftfyflf autor de IU CumpuUn Om/tono/iK Pnsuip/n Kmhrddid < -uv-UE.
pr.spanrnwhlc - -t
"Wlul est incrustado un rmnporinc jviarm? Owscly definido, n es cualquierchick buih fnun
dispositivo tlut ioctvskOrdenador caliente es nm s lo imendrd hr de propsito general" ami eompuicr ~J
I'U, en*l.i"t<r
" Rircro)>n<CCsww en informtica integrada sistema"

/
/"I

Extorsionaron Systems

5 discreto c>"ine liansfnnns para seal fwcessing


appricatn-n. H MCMHITICV.
1 .tr MuHn st.md.stsl MiutsV "4uliisns. r.llisl b' r|m,,HvMu.il l'i..|vi;v, V".
h.iimaMu Cmgri logic' dispositivo" y IVtlA .livid l*i..gr:i..yo....il'l' (|.,ic \N,u : ,l(l,
') >Ckh> h.cgi y uniis analgico.
Una aplicacin de tales eaemptny .m enihcddid Snf es morir imdsile pln.ru: Solo pnrcvairv pulsin'
A.SIKS y UV .ui -Ssit' liras configurado i" /w.wsss j-nctuiy .l,v,(.hvr.ng .U.du.Y. nndutHwg.
IkiiKHiolaiing. ..iierloc'ing el teclado y........ .... Lnea l.l'l) ncanv JINJSI. ur i.vcii pantalla, ston.ig <L.u
Ayuda de entrada rivalizar tliilii tnun inenusry, l-igura I 111 tugurios .... S.d' marcar uiregriics .ntrmal
pregunte. inlvmul pr.vcsw.rs lASIl'sl, compartida y [Wiphcrul nvinorics u.ie.lac'cs sobre un sistema
comn de IWS. Un pruve HcsiJcs."".r, con pelaje suflunre metnonesiinddigitalcintuils emlvdslcd
>|vriliv ..pphcatnms, ilie".< i.us |X^ analgico snp
Como w eitcnits ell.
ASVSTEMOttt*

Los autobuses

ABIP"

Enfoque simple con cifras para


explicar el tema complejo de
sistema en un chip para un
telfono mvil

TPa
CM1AA0O
ACSS
PROCfbua
GENERAT
Direccin
OA
TwinBSP
<JPP
,(N

-Es.2m

OKS
ttAi.
Cmc
u.es
TAI
PORI
Erl
Wilt
MTE
FmocR,DM
RFA
oi
OC
CCS
La
INIERRUPf
Datos
memoria
ConsourR
1 CRCVTTS.
6erFPKM
IASIHO
-20%
-60%
2S

L.g. J.!<t un cartel comn ondits SoCcmbediJedsystem con


vMemolASffX artcmolproersujrs, . El tPt s/fuftd ptnpherol interfnea rTKmories final

Tutorial

Xviii

NoM-TMC 0?0'aurq Sy****" ftogMflwwg-U QSEK Vflntoaf CE.

DitpUjol k")notas"
" * *>J

VVt\

0e I DTL O'h /<r

< 4rVcd JHtf

T't,
>rnun<'

"|* u'"l

Revisar Pregunta*

.ai, i ,>r IWIXJUKDO

<

Resumen, palabras clave y sus


definiciones, preguntas de repaso
y ejercicios prcticos en cada
captulo

Tutorial

PiujwreifoqConeapaendEmbedded Piiv>iiW*^>fc"C.C*" andjevi

Xix

",267

I. Ai cdigos Java son interpretados por el fas JVhL funciona comparativamente (humildes.
Esta desventaja cm overtone" un byte fallowvJevi eodei can h( convocada para ingenuo
m":hine ciudades f<* fur ejecutando o- jua-rn-tiempo (JrDcunpiUlii*. Un Jive KrelsHor
(eo-pucevvor) ca* l uvad m el sistema fi*

5.7.4 J2ME
Ujec4f2MF. (5 )"2 Micro Edition o Java Card Embedded Jav* ayuda a reducir la regla sue K kli para (l
aplicaciones uwaJ tike hombre tarjeta. Cmo? Los siguientes son los methnds
1. Utilice core daises solamente. Clases pies* basie no el entorno de tiempo de forma interna formal
VM (l anl solamente (l profnnuncr't nuevo Java reclamacin hay) en formato interno.
2. Proporcionar para la configuracin del tiempo de ejecucin cnvireAtoM. Configurar son el
dtleimf EUampleaof ticrpi"*> karktliitgtkuiei, urr-dr/i/wd clou lodtrf.fiit daittt. AWT(JtUHi,
ijmAmnisrd ihrrult. tkrruJ grcupi, muki-dintnrienal arrajt final y (eng/touring don violaciones
otras cuifiguring esamplc* estn agregando las clases especficas de datagrama, entrada y salida
a la red conneeiturw nreanu ftr cuando reeded.
3. Crear una ofc}EEG en un momento cuando se ejecutan mltiples tluuds 6*
A. irwod uiing Reuiethe objetos de mayor oumber de objetos.
3. Eau oaly tipos escalares como tong en viable.
JiviCatd. EmbeddedJavaand JZMEare tres raciones de isva que generan una reduccin eude
neumtico. I2M proporciona el entorno de tiempo de mn optimizada. Inazad de la UM de packaga. J2ME
OFRECEN! Los cdigos para pieles foe clases de ncleo nico. Estos cdigos son almacenados en
enemigo de la ROM del sistema integrado. Proporciona i"o aliBnativeconfiguraiiona. connected device
configuration (CDCl y Connected Limited Device Configurations (CLDO. CDC hereda pocos cierra la
bocina paquetes para red. seguridad. io. reflexionar, seewiry^EA (cau tesf.rewusees. util, jar y zip. CLDC
proporcionan oot fer los applets, amt. Haz. matemticas. net. rmi. SOD vql de seguridad y que los paquetes
java.Ung. Es tepuale Ttare (ivas.mireoedhioa-io paquete CLDC cun figuracin. Un PDA (Personal
Digital Assistant) o mvil utiliza pheoc CDC y CLDC.
All me* sealeabk OS caracterstica en J2ME. Hay ii new virtual machine. KVM o en
alternativa IOJVM. Cuando mueren con KVM. (fw sistema necesita un 64 kB en lugar de SI2
0 eneironmenr rwi-tiempo. XV'M caractersticas a continuacin:
1. El uso de los siguientes tipos de datos es opcional, (a) matrices multi-dimensionales, b) largo W
bits tel entero y puntos flotantes.
2. Elton son manejados por el Programa de las clases, que slo unos pocos necesitan lohenl errorhindling clx"es desde el directorio /ave VO paquete para el eieeptwai
?. Utilice ofaacparatesclof API (application program) en lugar interlaces INI ivponabk ufJINl. f.
Bui al sistema incorporado, el IHE ROM tiene la aplicacin ya ronroneaban y el usuario no hace
ni el cambio ii.
4. No hay verificacin nf las clases. Presume de KVM (l las clases como ya validado
1'. Hay miubjcetfinallUlloic Ihcgaibitge collector no he>'j\-n.vuiiniKvnnMHiungrtLanges al
objeto para JinaJtoUton.
6, La clase Loader es ra disponibles para el programa de usuario. La KVM proporciona el Vwler.
7, Grupos de subprocesos no estn disponibles.
5. No hay ningn uso de java.Ung.refleetion, por lo tanto, no hay que hacer ningn arco inaerfaccs
el objeto cruliuuo*.
Depuracin y perfilado,

Forma sencilla de punto-sabio


presentacin de los datos mediante
el uso de listas y tablas

6.2 Basic ftomenB Tabfo UML


jMntUfat
/J"<Ejecutar.

J Claw

WtordwvHMisIr
f
Ml '

Define tt wates Clast. mbm

Itr.uepla

"iiti 6>m"> tor

rodera

opetsnam .ti". M con pern alMraci


recurso >

Bus " tntMfiilir.lb oP|"< idcnidy


I fiUluwcd liy wnnCtauA mj cW.\ nlcatet i "
*-"i un Km/h f> Jtttfs
iihiaip
ftmwfvlirlv'i
seguido por denwy
waamkai un hit de seda
en prclii
Ilmay

Por BptH btfarillWl.


C*bepoded*dferwhit*ii"ieyw*b*"cilat(iap
moating).* Se coatrot rbere lira en la clast

A. (Sigaal (Seccin <-L2) o


aartbad sofrwi Hew (fanesienh cual
general ps.| Signl atyas ha aorilaes
(puamsKi asnnybcjuHifljgaf l-tiL

Con wfo diict Rcctanpdar M l.Un


Mlawdniow Sr UK <l*u imn (m
ella tirobty. ntota adtPntwr upwKl
Itipnlin ml. |M espere prefit
antra <ritochnnb"iiy. o

.en

?n*ed eoUecSen de deeeett

Behavtcwrj) tk* es un IEP&tfy


utilizado

Nsnr ghtn wirtn para twopeus de


signos dnriag feNewnf WRiag
wd (7 foe elms identky en mostrar*
en Hgwe d.lfifrt.

Tutorial

L
X
Sk
K
K
Yo
K
Q

)/* COM final Cat dhpbyTlrneChM fnciui /


(0. r SR "M (o pa** am hasta*-*e". b> W. DMM '>
BR_HneUMe<> |
R OJM tor crtacsj un canon meuape cal y tou afl earh iinr*iniaiup fn"n
iVvjurn, KTCtW. V
70.
(MbotTbneUMSirMip QSMboifag.
tinicDaic): 7J. ) / em ol tSiLToKlVn oik'l

11.2 ESTUDIO DE CASO DE UNA CMARA DIGITAL DE HARDWARE


Y SOFWARE ARCHrTECTURE

TV digital objetivo wu inuodml anteriormente aScctioal.|ili.Aih|:.u|i;ainmi>ine(anipb.rfSnC,|ScriMl-6| Sectaa 1,10.4 Ihied el Ilirvn


funetk*T>. VUIWBCMJ higwe wrfrwarc velo*.* 1.14 dan^d iv tunlwwe ml wdiwwt
cnnfuxnu en I desanclar ***"! Martima Salieeu 11.3.1) 11.2-2 dar iVdedpn Uqw nfi
Srtliran rimtn digital, 11 1* "kl l| ; 4 dcwiibc

0
11.2.1 Requisitos
Reyinrmem> .Si rv amn digital Lc undcnrcmd lhmigh o mpiiirrvnl tohtc gi"t
n nf 4, /uanuio AuWr la cola. I.
Ni"t* IHC I .CD para el PNB
Un "li4,(ix>myl<nMUol>l hjWM. MO
ditplaj4uc> ad.
F<Kua Ml ojo-tn twiivVi Ml houau
I h aranher ahemaiier en ml teclado
para entrada
LCD.
____
.
____ Yo, fluh.
Insatisfecha,
adjon MN|hic*". C MM,
,,*#". ""c Ml Bander. TV W( cnminamh "c en la pelcula de intemipe dgnah, Erh| praeMea v.pu
["m, un UV) entrada Irn un *wiich iftraied n tai"on. Cuando una apertura diuucr
buRuei en tV n prruol.
Un Itadi Lu> glow* ,nd 1 -Circuito rimer aclf wiidm o(TLA Btlcenniicilly limp.
J -p* pMon pLikfq I'**". que llenar, estao ihc CCD que amy. io Ihrwjh ADC ihe
hatunf bit*
F" txh(dMliri ixlim inite (escarcha, y alto en ihc rea dart pilch en enehniw en "
voiieilwip "Yo"S" WtierofCCDce
Mentira ..n^i cwTcclimCCD imeflsitier rxti rijwled luz en fila. Tira 7V T* en
odiiircM fr"w
Yo, ApkiiovciWi.hMtrfaiuinihCTof pi'el*. TV numherof pi"eh utilizado fir sjaeiure
determinar* tradm**.
J-Vh pk'l"nii""d> de 9 ml icniril iwmhtr idhcrinmiJ pitch, Fur 1302 d 10*1 puck all
arc
2jW2 n l*u n0.TKK4K acta c4 c")h. I-aeh *1 de pixel tut ihrce ccllv fie ihc ml.
pm md t4uc
En aenponila> f*"<" y "*" *"<
***1. tV nfcunwru volcado
igwnvon i "r
|w"*s un duipc ininc-ontplnj ilcvicct |CIT)| matriz,
thr

'J
'

C
T

U. HILT MENCN UDNVM4R"PPIMIRIU.R*UV IINVNII HI


IIHA.I *I>N,PTFEU MJIU<,NIIIKRIFILRKUPUR
IKFL'I'U.,,,, ",j,n.itaitfnriinnlrcVicutoCrMiCf cMhicc rACVAiiaAkA ganar M/nnhitcJcurlier en.Wt riar
MI Iiwl Jiaikitranr./C/U, mm.lw fJru.l.,rm v,h,"Yo lo J IVrhrnl ouh
U / r / Vr f t l m L >*!* eui uirii"/Wi-i/ i-ii'lir. n t,i|.n < I I '1 iVw idw
i>Virie'ru./,wr.LVI
/ hi granja *" iV rcfirtmncan utr i/mW uy ifrtifitctumt ,Ju ifiirm
urr lii trti
1. A Innn en t/m/. mMIc| <i,i w m.^,1 |V >/rV ij.RRR.
7. Ttr aprender a dc/|rrr Sirdirarc un'cAircrrurr ml de
orina, RR/pn>rrr".
Nr mvweentroller via^l nr 11.drv.nnj VFr, tr i,
4. 7iilmm*w*.La CFI)tmArK/fiiererA"lrcntrrAirwch*irc/bwrimr
rrtrv/jiri <nd cosificadora rrumu ond tlcfiv dw dmimpniirmi td
kYreurr malulri iwn.
Antpxnmlc awmfnut pnceiien uiaieim. ondai^Mne /Htxu'r 3. A
hierro tWi"i aplicacin de drenaje fur uimr AIDCM.V und
V.iHirii inv.lri. urol ah,ME rhr u<r >/ irf* tuerca mi inn.rn/ini W <
"""

*11.1 ESTUDIO DE CASO DE Embed0E0 DISEO DEL


SISTEMA Y arrullo de una mquina
expendedora automtica de chocolate }ACVM)
CON MUCOS RTOS
ACVM wie Inredundeatlic* intienkm I MI.2. Instituto.ird ACVM
fuixiimt.,"jre WlvBtunlh hirJ ml. Un lUigranurut dcrwetl Fifurc
1.12.c rcprcvniJimll n| ACVM Sccdmll l.l io I l.l Ajive Ihedctipn
VfK.ifjn ACVM. SctimiO.J Ik'vntwd MUCOS RTOS. Es tun un
porttil. ROMable. comprobable, prwmpivc. real unw anl
muliiuAinpkemcLSection ll.l.7tlncnhe>eicJio;rn ACVM
uur.fMUCDSK'nxS
11.1.1 RequisitostSectmr 9.2| pregnnunini eniiruimnl.

TV id fcyuirnwnu ihr rrwhine puede l unkrvutd ihnwigli j


mfiritrmcni ijhlr I.nn .n Tabla II.I.

11.1.2 Especificaciones
TV ACVM
tpeeiVaiiott tn breve arco l.
Ir hai un ulp*e*amerie teclado
io nio piensa con ella cuando
horii jnJ rnicwt unhihc'iuchirv

Olhe hf nf iV mquina

Ii

Explica el modelado de programas y prcticas de la ingeniera de software para el diseo de


sistemas con estudios de caso de sistemas de chocolate mquina expendedora automtica,
cmara digital, creacin de pila TCP/ IP, orquesta robot automtico, control de crucero, telfono
mvil y tarjetas inteligentes

XXI

Tutorial

H> wiH Ittim Ilf

Hit KTOi fCOSH irritrud ai MUCOX (V trampa AIMI A HI fii^pfriL^avl/<V.J">92UlM0af|MMUi>>ir|M""rfWM*aiiuhria"rm"iw


rf
/""
(**HVOa dum Mil hr ttfUatd. IAMW; rtr aw <!
/UMI * IV JH/fYUai I"V"loM"<"tA-" nn ^aMArr
)mHam ln"malos>(l(niKiiltaiiMlin">i<m*riiilia"m( "n*i>nW
"M"fUSr< justo* <a.
..... LlHWfa /fa- AW l* JtMrai li thf un hr HTOS ny>"Mft<
RalwAM JWIMIJW IRILRAU M A I*C W i^wt AnafA >en lui^ri ^nafifii 9./I en *-V thfftrrnrn bnwtm iV 1'irai iHiwli|Aiifit
Wf ywari lulkm iriiA rrlfVCT Aa "traaAWw NliCOS ^
Yo Chyrn" "1 Ai iliviik WMm Ct SEO( arf ml-dnil jaullHMU

Un
K
/
K

0
S
3
%
C

T
1
V
S

" itii

9.1 Funciones bsicas ANC* TIPOS DE RTOSes

Yo TukAoKiiuatiamMMCivaBlaUeAC**
V Hol'limrilcilti
4 Vtaluln
(VntAncnMlA Y.
* Fwcim> <* ITC) ""! La IHQ u(MLT. WCM fhf |toop
vm^HMC-kMlMf
Y fwwinu IWciati lor (mei. tubo wclcu moifeiicv *nt.
1 MAnamal famiiaM.(<a"uii*flt.T(^ftP UMar Bladaolluo WiRor<".
KUAaiCUH.
^*1" 9-W"> ***** "hc fofldiii** cepcrinJ tm ihc kdMl *> Bros
Ser hllrt\ hit Ac InUowiAp espuma en |twil
" Biw l<md fuiciioni *rd wtedeW. piKiXbic "
^'K'lMiOouiufiaUKWAaMdlST.
V/ inhrriUacc priones Irawc <* el pnunly AfOaa ccAiap (&*"".
I. urnii fie njfflVi uf iyh
' ^*e
*M tVCtvon*.
A. IDE <ei"ii|| 0f (diva ptafvm KiiMr*. <IUI *El anuncio grfico** *.rfu
.iciipilcr, ikbu)ii;|[ un"| W WP" """" "*4"
7. Herramienta im iging Ikva* md "**" impulsada.

Amplia explicacin con ejemplos de codificacin utilizado


para el aprendizaje de la wideiy RTOSes- MCO-ll, VxWorks,
Windows CE y Linux en tiempo real OSEK

Tutorial
1

Detallada bibliografa seleccionada de libros, revistas y referencias


importantes de la web los enlaces al final del libro para facilitar el inicio de
la construccin de una biblioteca de referencias y estudios adicionales en
sistemas integrados

Introduccin a
Embedded Systerrfs

S.J*.
Instituto "F BIBLIOTECA
DE TECNOLOGA
DE BANGALORE - 5CO NO.

ACCN. NO.

Un

'K
Yo

Q
0

C
<r
1

Seccin 1.1
Definiciones de sistema y sistema integrado
Seccin 1.2
La unidad de procesamiento de un sistema integrado consta de
1. Un procesador
2. Los microprocesadores utilizados comnmente
3. Conjunto de instrucciones de aplicacin especfica
(procesadores ASIPs). microcontroladores, DSP y otros
4. Procesadores de propsito nico
Seccin 1.3
La unidad de hardware de un sistema integrado consta de
1.Fuente de alimentacin de un sistema integrado con control
de potencia de disipacin- .
2. Un oscilador de reloj y el reloj cimiit unidad que permite al
procesador ejecutar instrucciones
3. Sintonizadores y un reloj de tiempo real (RTC) para diversas
necesidades de sincronizacin del sistema
4. Circuito de reset y temporizador Watchdog
5. Sistema y memorias externas
6. Entrada y salida del sistema (10) encuestas, serie, paralelo y
serie, comunicacin inalmbrica y el transmisor receptor
asncrono universal (UART) y otros protocolos de puerto y
autobuses
7. Los dispositivos tales como el conversor de digital a analgico
(DAC) mediante la modulacin de ancho de pulso (PWM),
convertidor de analgico a digital (ADC), diodos emisores de
luz (LED) y la pantalla de cristal lquido (LCD) de unidades,
teclado y teclado, pantalla tctil, pulso dialer, mdem y
transceptor
8. Los multiplexores, demultiplexers, descodificador para
intetfacing de los dispositivos y autobuses

L
E
SI

*
Yo

Q
0
!B

E
C

R
0

V
E

9. Interrupt Controller (controlador)


Seccin 1.4.
1. Los idiomas que se utilizan para desarrollar software incorporado para un
sistema
2. Los modelos de programa
3. Utiliza un sistema operativo multitarea (OS), el sistema de gestin de
dispositivos, controladores de dispositivo y sistema operativo en tiempo real
(RTOS)
4. Herramientas de software para el diseo del sistema
Seccin 1.5
Ejemplos de aplicaciones de sistemas integrados
la seccin 1.6
Disear un sistema integrado en un chip de VLSI
1. Embedded SoC (System on Chip) y examina sus aplicaciones
2. Usos especficos de la aplicacin de un conjunto de instrucciones de procesador
(ASIP) y Propiedad Intelectual (IP) core
3. FPGA (Field Programmable Gate Array)core con una o mltiples unidades de
procesador en un chip ASIC
Seccin 1.7
El complejo sistema consta de
1. Microprocesadores o GPPs en sistemas complejos
2. Incrustacin ASIPs, microcontroladores, DSP, procesadores de red y medios
3. Incrustacin de procesadores del sistema especfico de la aplicacin (ASSPs)
4. Incrustacin de mltiples procesadores en sistemas
Seccin 1.8
El proceso de diseo ha
1. Retos en el diseo de sistemas integrados
2. Optimizacin de parmetros de diseo
3. Co-diseo de los componentes de hardware y software.
Seccin 1.9
El diseo del sistema formalismo se define
la seccin 1.10
El diseo de hardware y software embebido en una mquina expendedora automtica de
chocolate, smart card, cmara digital, telfono mvil, ordenador porttil y robot son dadas
como ejemplo.
Seccin 1.11
Clasificacin de sistemas integrados en tres tipos '
Seccin 1.12
Conocimientos necesarios para disear un sistema integrado

,ps

Introduccin a los sistemas integrados

1.1

Los sistemas integrados

1.1.1 Sistema
Un sistema es una forma de trabajo, organizar o haciendo una o muchas tareas de acuerdo a un plan fijo, programa
o conjunto de reglas. Un sistema es tambin un acuerdo en el que todas sus unidades armar y trabajar juntos segn
el plan o programa.
Considere la posibilidad de un reloj. Es un sistema de visualizacin de tiempo. Sus piezas son su hardware,
agujas y batera con la hermosa dial, chasis y correa. Organizar estas piezas para mostrar el tiempo real cada
segundo y actualizar continuamente el tiempo cada segundo. Programa El sistema actualiza la pantalla utilizando
tres agujas despus de cada segundo. Sigue un conjunto de reglas. Algunas de estas reglas son las siguientes: (i)
Todas las agujas se mueven slo en el sentido de las agujas del reloj, (ii) una aguja larga y delgada rota cada
segundo que vuelve a la misma posicin despus de un minuto, (iii) una aguja larga gira cada minuto de manera
que vuelvan a la misma posicin despus de una hora, (iv) una aguja corta gira cada hora, de manera que vuelvan
a la misma posicin despus de 12 horas, (v) las tres agujas volver a la misma inclinacin despus de doce horas
cada da.
Considere una lavadora. Es un sistema automtico de lavado de ropa. Las importantes piezas de hardware
incluyen su estado panel de visualizacin, los interruptores y controles para la programacin definida por el
usuario, un motor para girar o spin, su fuente de alimentacin y unidad de control, un sensor de nivel de agua
interior, una electrovlvula para dejar que el agua y la otra vlvula para dejar que el agua escurra. Organizar estas
piezas a lavar ropa automticamente segn un programa predefinido por el usuario. El programa est activado
para lavar la ropa sucia se coloca en un tanque, que gira o gira en pasos preprogramados y etapas. Sigue un
conjunto de reglas. Algunas de estas reglas son las siguientes: (i) siga los pasos estrictamente en la secuencia
siguiente. Paso 1: Lavar girando el motor segn un perodo programado. Segundo paso: aclarar con agua dulce
despus de drenar el agua sucia, y enjuague una segunda vez si el sistema no est programado en el modo de
ahorro de agua. Paso 111: Despus de vaciar el agua completamente, girar el motor rpidamente durante un
perodo programado para el secado por centrifugacin fuera el agua de la ropa. Paso IV: Mostrar el estado de
lavado por una pantalla parpadeante. El sonido de la alarma durante un minuto en seal de que se complete el
ciclo de lavado, (ii) a cada paso, mostrar la etapa del proceso del sistema, (iii) En caso de una interrupcin, ejecutar
slo la parte restante del programa, a partir de la posicin cuando el proceso fue interrumpido. No se repite desde
el paso 1, a menos que el usuario reinicia el sistema mediante la insercin de un nuevo conjunto de ropa y
restablece el programa.

1.1.2 Embedded System


Definicin Una de las definiciones de Embedded System es la siguiente:
"Un sistema integrado es un sistema que ha incorporado el software y hardware de equipo, lo que lo convierte
en un sistema dedicado para una aplicacin(s) o parte especfica de una aplicacin o de un producto o de una
parte de un sistema ms grande"
Los sistemas integrados se han definido en los libros publicados recientemente en varias maneras. A
continuacin, se detalla una serie de definiciones de otros en el campo:
Wayne Wolf autor de equipos como componentes - Principios de diseo de sistemas informticos
integrados: "Qu es un sistema informtico integrado? Vagamente definido, es cualquier dispositivo que incluye
una computadora programable, pero no es en s pretende ser un ordenador de propsito general" y "una mquina
de fax o un reloj, construido a partir de un microprocesador es un sistema informtico integrado".

"tm

Los sistemas integrados

^ Moitoii- autor de microcontroladores incrustados: "Los sistemas integrados son sistemas


electrnicos que
Ifa microprocesador o microcontrolador, pero no pensamos en ellas como equipos, el equipo est
' oculto o integrado en el sistema".
David E. Simon autor de una imprimacin de software integrados: "La gente usa el trmino significa sistema
integrado
Cualquier sistema informtico oculto en alguno de estos productos".
Tim Wilmshurst autor de una introduccin al diseo de pequeos sistemas integrados con ejemplos
Desde el PIC 80C51 y microcontroladores 68HC05/08: (1) "Un sistema integrado es un sistema cuyo principal
La funcin no es informtico, sino que est controlado por un ordenador integrado dentro de ella. El equipo
Probablemente ser un microprocesador o microcontrolador. La palabra implica incrustado que se encuentra dentro
del conjunto
Sistema, oculto a la vista, formando parte integral de [la] todo mayor". (2) "Un sistema integrado es una
Basado en microcontrolador, software-driven, confiable, sistema de control en tiempo real, autnoma, o humano- o
Un
red-equipo es un sistema que tiene los siguientes componentes o ms.
1. Un microprocesador
Interactivo,
operan sobre diversas variables fsicas y en distintos ambientes, y se vende en una competitiva
2. Una gran
capacidad
demercado".
memoria de los siguientes dos tipos:
Y conscientes
de los
costos de
(a) Memoria principal ( memorias de semiconductor: Memoria de acceso aleatorio (RAM), la memoria de
slo lectura (ROM) y fast accesible cachs)
(b) Memoria secundaria [( memoria magntica situada en discos duros, disquetes y cintas, cartuchos
de memoria ptica en CD-ROMs o memory sticks (en equipos mviles)] utilizando los diferentes
programas de usuario pueden ser cargados en la memoria principal y ejecutar
3. Unidades de E/S, como pantalla tctil, mdem, fax mdem cum, etc.
4. Unidades de entrada tales como teclados, ratones, digitalizadores, escner, etc.
5. Unidades de salida, como una pantalla LCD, monitor, impresora, etc.
6. Unidades de red como una tarjeta Ethernet, front-end de servidores basados en el procesador, conductores
de autobuses, etc.
7. Un sistema operativo (SO) que tiene el usuario de uso general y aplicaciones de software en la memoria
secundaria.
Un sistema integrado es un sistema que tiene tres principales componentes incrustados en l:
1. Se incrusta en hardware parecido a un ordenador. La figura 1.1 muestra las unidades en el hardware de un
sistema integrado. Como su software normalmente se incrusta en la ROM o memoria flash, generalmente no
necesita una unidad de disco duro secundaria y memoria de CD como en un ordenador
2. Se incrusta en el software de la aplicacin principal. El software de la aplicacin puede realizar
simultneamente una serie de tareas o procesos o subprocesos
3. Se incrusta en un sistema operativo de tiempo real (RTOS) que supervisa el software de aplicacin que se
ejecuta en hardware y organiza el acceso a un recurso de acuerdo a las prioridades de las tareas en el sistema.
Proporciona un mecanismo para permitir que el procesador ejecute un proceso programado y contextointerruptor entre los diversos procesos. (El concepto de proceso, subproceso y la tarea se explica ms
adelante en las secciones 7.1 a 7.3.) establece las reglas durante la ejecucin de la aplicacin de software.
(un sistema embebido en pequea escala no puede incrustar el RTOS).

Caractersticas Un sistema integrado se caracteriza por lo siguiente: (1) en tiempo real y


operaciones multirate definen el modo en que funciona el sistema, reacciona ante los eventos,
interrupciones y planifica el funcionamiento del sistema en tiempo real. Lo hace siguiendo un
plan de control de latencias y cumplir los plazos de entrega. (latencia se refiere al perodo de
espera entre la ejecucin de los cdigos de una tarea o rutina de servicio de interrupcin y la
instancia en la que la necesidad de la tarea o interrupcin surge a partir de un evento). Las
diferentes operaciones pueden efectuarse en

Introduccin a los sistemas integrados

R --------------------------------------- -----

Dispositivos de Entrada ;
Interfaz/
circuitos
controlador
es
Procesador j

Temporizadores

Interrumpir
Y

La
memoria
de
programa
y
memoria
Serial
de datos
Comunicac
iones
Puertos
Paralelo
Puertos

o
Controller }
Interfase
Salidas/
circuitos
controladores

Fig. 1.1 Los componentes de hardware del sistema integrado

Tipos distintos. Por ejemplo, audio, video, datos, flujo de red y eventos tienen diferentes tarifas y restricciones
de tiempo. (2) algoritmos complejos. (3) complejo interfaces grficas de usuario (GUI) y otras interfaces de
usuario.
(4) Funciones dedicadas.

Limitaciones del sistema integrado est diseado teniendo en cuenta tres limitaciones: (I)La memoria disponible del sistema, (2) velocidad de procesador disponible, (3) la necesidad
de limitar la disipacin de potencia cuando se ejecuta el sistema continuamente en ciclos de
'esperar acontecimientos', 'run', 'Stop', 'wake-up' y 'sleep'.
El diseo del sistema o un sistema incorporado tiene limitaciones en cuanto a rendimiento, potencia, tamao
y diseo y los costes de fabricacin.

1.2

Procesador Embebido EN UN SISTEMA

Un procesador es una unidad importante en el hardware del sistema integrado. Es el corazn del sistema integrado.
Conocimiento del concepto bsico de microprocesadores y microcontroladores es imprescindible para un
diseador de sistemas integrados. Un lector puede referirse a un texto estndar o los textos enumerados en el
'Referencias' al final de este libro para una comprensin en profundidad de los microprocesadores,
microcontroladores y DSPs que estn incorporadas en el diseo de sistemas integrados. El captulo 2 se explican
S051 y unos cuantos procesadores.

1.2.1 Los procesadores embebidos en un sistema


Un psocesSfK esencial tiene dos unidades: la unidad de control de flujo de programa (CU) y la unidad de
ejecucin (UE). La unidad de control incluye una unidad de fetch para buscar instrucciones desde la memoria.
La UE dispone de circuitos que aplicar las instrucciones relativas a operaciones de transferencia de datos y
conversin de datos de un formulario a otro. La Unin Europea incluye la unidad aritmtica y lgica (ALU) y
tambin los circuitos que ejecutan las instrucciones de un programa

Los sistemas integrados

La tarea de control, por ejemplo, detener, interrumpir o saltar a otro conjunto de instrucciones. Tambin puede
ejecutar instrucciones para una llamada o una sucursal en otro programa y para una llamada a una funcin.
Un procesador ejecuta los ciclos de fetch-snd-exccuie. Las instrucciones, definida en el conjunto de
instrucciones del procesador, se ejecutan en el orden en el que se obtienen desde el memoiy. Un procesador tiene
la forma de una C chip; alternativamente, podra ser en forma de ncleo en un circuito integrado de aplicacin
especfica (ASIC) o sistema en un chip (SoC). Ncleo significa una parte del circuito funcional en el Vety
integrada a gran escala (VLSI) chip.
Sistema incrustado un chip de procesador de ncleo o puede ser uno de los siguientes.
1. Procesador de propsito general (GPP): UN GPP es un procesador de propsito general con la instruccin
set diseado no especficos de las aplicaciones.
(a) Microprocesador. [seccin l.2.2|
(b) Procesador incorporado [1.7.7].
2. Procesador Instruction-Set especficos de la aplicacin (ASIP). La ASIP es un procesador con un
conjunto de instrucciones diseadas para aplicaciones especficas en un chip VLSI.
(a) Microcontrolador [seccin 1.2.3].
(b) Microcontrolador integrado [1.7.7].
(c) Procesador de seal digital (DSP) y el procesador de medios [1.7.3]
(d) Procesador de red, procesador de 10 o dominio especfico del procesador programable
3. Procesadores de propsito nico como procesadores adicionales: procesador de propsito nico ejemplos
de lo anterior son los siguientes:
(1) (por ejemplo, como coprocesador utilizados para el procesamiento de grficos, procesamiento de punto
flotante, enciypting, descifrar, Transformacin de coseno discreto y transformacin inversa o apilamiento
de protocolo TCP/IP y las funciones de conexin de red). (2) (por ejemplo, el acelerador Acelerador cdigos
de Java). (3) Controladores de perifricos (por ejemplo, accesos directos, memoria y buses). [1.7.7].
4. GPP o ASIP ncleos integrados en un ASIC o un circuito VLSI o una FPGA (Field Programmable Gate
Array) core integrado con unidades de procesador en un chip de VLSI (ASIC). [las secciones 1.6 y 1.7]
5. Procesador del sistema especfico de aplicacin (ASSP). [Seccin 1.7.9J
6. Los procesadores multincleo o multiprocesador [1.7]
Para un diseador de sistemas, los siguientes son consideraciones importantes a la hora de elegir un procesador:
1. Conjunto de instrucciones
2. Mximo de bits en un operando (8, 16 o 32) en una sola operacin aritmtica o lgica
3. La frecuencia de reloj en MHz y la velocidad de procesamiento en millones de instrucciones por segundo
(MIPS) o en una mtrica Dhiystane alternativo para medir el rendimiento del procesamiento de la
seccin [2.6]
4. Capacidad del procesador para resolver algoritmos complejos, mientras que el cumplimiento de los plazos
para su tramitacin.
Un microprocesador o GPP se utiliza porque: (i) el tratamiento sobre la base de las instrucciones disponibles en
un conjunto de instrucciones predefinidas de propsito general resultados en rpido desarrollo del sistema, (ii) Una
vez que la junta y las interfaces de E/S estn diseados para un GPP, estos pueden ser utilizados para un nuevo
sistema simplemente cambiando el software incluido en la ROM. (iii) disponibilidad de un compilador integrado
facilita el desarrollo de software en lenguajes de alto nivel, (iv) Disponibilidad de bien probado y depurado especfico
del procesador de APIs (Interfaces de programacin de aplicaciones) y cdigos previamente diseada para otras
aplicaciones se traduce en nuevos sistemas desarrollados rpidamente.

1.2.2 Microprocesador
La CPU es una unidad que centraliza la recupera y procesa un conjunto de instrucciones de uso general. El conjunto
de instrucciones de CPU incluye instrucciones para la transferencia de datos de operaciones, ALU operaciones,
operaciones de pila, 10 operaciones y

Introduccin a los sistemas integrados

Control de programa, la secuenciacin y la supervisin de las operaciones. El conjunto de instrucciones de uso


general siempre son especficos para una CPU especfica. Cualquier CPU deben poseer las siguientes unidades
funcionales bsicas:
1. Una unidad de control que recupera y controla el procesamiento secuencial de un comando o
instruccin y se comunica con el resto del sistema.
2. Un ALU que realiza las operaciones aritmticas y lgicas en bytes o palabras. Puede ser capaz de
procesar 8, 16, 32 o 64 bits palabras en un instante.
Un microprocesador es un solo chip VLSI que tiene una CPU y puede tener tambin algunas otras unidades
(por ejemplo, procesamiento de punto flotante de cachs, unidad aritmtica, canalizacin y superscaling
unidades) que estn adems presentes y que resultan en un procesamiento ms rpido de instrucciones.
La generacin anterior del microprocesador fetch-and-execute ciclo fue guiada por una frecuencia de reloj de
la orden de ~4 MHz. Ahora los procesadores funcionan a una frecuencia de reloj de 4 GHz y cuentan incluso con
varios ncleos. A principios de 2002, se hizo posible disear Gbps (Giga bit por segundo) transceptor y motores
de cifrado en un tew altamente sofisticados sistemas integrados usando procesadores que funcionan en
frecuencias de GHz. Un transceptor es una transmisin de cum circuito receptor que posee y controla las unidades
de procesamiento adecuadas, por ejemplo, para el control por bus de colisiones. Un motor de cifrado es un sistema
que cifra los datos que se transmiten en la red.
Intel 80x86 (tambin conocido como x86) los procesadores de 32 bits son los sucesores de 8086. (La t se
refiere aqu a una extendida 8086 para 32 bits.] Ejemplos de procesadores de 32 bits en serie 80x86 son Intel
80386,80486 y Pentiums (una nueva generacin de 32 y 64 bits de los microprocesadores Pentium classic series).
PCs de IBM utilizan 80x86 y la serie embedded systems incorporated en el interior de la PC para tareas
especficas (como acelerador de grficos, controladores de disco, la tarjeta de interfaz de red) utilice estos
microprocesadores.
Procesadores de alto rendimiento tienen canalizacin y arquitectura superescalar, rpido y ALU (unidades de
procesamiento de punto flotante FLPUs). (Una arquitectura de canalizacin significa que las instrucciones tienen
entre 3 y 9 etapas. Las instrucciones son diferentes en las distintas etapas de la tubera en cualquier momento
dado. Una arquitectura superescalar se refiere a dos o ms conjuntos de instrucciones que se ejecutan en tuberas
paralelas.!
La importancia de los microprocesadores utilizados en los sistemas integrados son el brazo. 68HCxxx, 80x86
y SPARC, familia de microprocesadores.
La Seccin 1.7 describe la incorporacin de un microprocesador GPP en sistemas complejos.
Un microprocesador se utiliza como procesador de propsito general, cuando grandes software incorporado
tiene
estar ubicado en el chips de memoria externa.
1.2.3queMicrocontrolador
Un microcontrolador es un chip integrado que tiene el procesador, la memoria y varias otras unidades de hardware
en ella; estos forman el microcomputador parte del sistema integrado. La figura 1.2 muestra los circuitos
funcionales presentes (en lmites slidos cuadros) en un microcontrolador. Tambin muestra las unidades
especficas de la aplicacin (en cajas de delimitacin discontinua) en una versin especfica de una determinada
familia de microcontroladores.
Igual que un microprocesador es la parte ms esencial de un sistema informtico, un microcontrolador es el
componente ms esencial de un control o un circuito de comunicacin. Un microcontrolador es un solo chip
unidad VLSI (tambin llamado 'mierpeomputetr), w'h(f,h, aunque con limitada capacidad computacional, posee
capacidades de entrada y salida mejorada y un nmero de unidades funcionales en el chip. [Consulte la Seccin
1.3 para distintas unidades de hardware funcional.] los microcontroladores son especialmente adecuados para su
uso en sistemas integrados para aplicaciones de control en tiempo real con el programa chip memoiy y
dispositivos.

Los sistemas integrados

Fig. 1.2 Diferentes circuitos funcionales (slido cajas de delimitacin) en un microcontrolador chip o ncleo en un
sistema integrado. Tambin se muestran las unidades especficas de la aplicacin (Cajas de delimitacin
discontinua) en una versin especfica de un microcontrolador

Los ltimos microcontroladores tambin disponen de doble ncleo y alta capacidad de procesamiento
superescalar y computacional. Importante chips microcontroladores para sistemas integrados son 8051, 8051, 68MX
Ixx HC1, HC12xx, HCloxx, PIC I6F84 o 16C76, 16F876, el microcontrolador PIC18 y mejoras de ARM9/ARM7
de ARM, Intel, Philips, Samsung y ST Microelectronics.
La figura 1.3 muestra los microcontroladores utilizados comnmente en pequeos, medianos y grandes sistemas
integrados. Elegir un microcontrolador como una unidad de procesamiento depende de las caractersticas especficas
de la aplicacin.
Un microcontrolador se utiliza cuando un pequeo o parte del software incorporado tiene que estar ubicado en
la memoria interna y cuando on-chip unidades funcionales como el manejador de interrupcin, el puerto, el
temporizador, ADC, PWM y controlador CAN son necesarios.

1.2.4 Procesadores de propsito nico


Procesadores de propsito nico utilizado en los sistemas integrados son:
1. Coprocesador (por ejemplo, para el procesamiento de punto flotante).

Introduccin a los sistemas integrados

Fig. 1.3 Microcontroladores utilizados comnmente en pequeos, medianos y grandes sistemas integrados

2. Procesador de grficos: Una imagen se compone de un nmero de pxeles. Por ejemplo. Cuarta parte de
formato intermedio comn-cuarto de imgenes CIF tienen 144 x 176 (eje x horizontal x vertical eje y)
pxeles. Los fotogramas de vdeo tienen 525 x 625 pxeles. El adaptador de grficos de vdeo (VGA)
Formato de correo electrnico y pginas web tiene 640 x 480 = 307,200 pxeles. Un procesador de
grficos independiente es necesaria para funciones como, por ejemplo, juegos, visualizacin de grficos
y bferes de memoria para mover (traducir en pantalla) y rotar una imagen o sus segmentos.
3. Coprocesador de pxel: imgenes de alta resolucin tienen formatos: 2592 x 1944 pxeles = 5.038.848
pxeles; 2592 x 1728 = 3,2 m; 2048 x 1536 = 3 m y 1280 x 960 = I M. Un pxel coprocesador es requerida
en las cmaras digitales para mostrar imgenes directamente o despus de operaciones como, por
ejemplo, girar a la derecha, girar a la izquierda, rotar, girar, cambiar a continuacin, cambiar a la anterior.
4. Motor de cifrado: un algoritmo adecuado se ejecuta en este procesador para cifrar los datos de transmisin
segura.
5. Motor de descifrado: un algoritmo adecuado se ejecuta en este procesador para descifrar los datos
cifrados en el receptor.
6. Una transformacin de coseno discreta (DCT) y transformacin inversa (DCIT) procesador es requerido
en el habla y el procesamiento de vdeo.
7. Procesador de pila de protocolo: una pila de protocolo, que tiene un nmero de palabras del cabezal, es
preparado antes de que una aplicacin se envan los datos a una red. En el receptor, la pila de protocolo
es recibida y datos de aplicacin es aceptada en consecuencia. Una pila de protocolo TCP/IP procesador
procesa datos de red TCP/IP.
8. Procesador de red: una red funciones del procesador son para establecer una conexin, acabado, enviar
y recibir confirmaciones, enviar y recibir peticiones de retransmisin y comprobar y corregir errores de
trama de datos recibidos. Las funciones del procesador de red incluyen todas las funciones de
procesamiento de la pila de protocolo.
9. Accelerator (por ejemplo, cdigos de Java en el acelerador). El acelerador es un coprocesador que
acelera los clculos tomando medidas anticipadas que se |Ust-in-time..comr^ations del siguiente objeto
de programas Java.
10. CODEC (codificador y decodificador): Un codec es un circuito de entrada del procesador que codifica y
decodifica la informacin codificada o bits o seales en un conjunto completo de bits o la seal original. La
voz, el habla

Los sistemas integrados

Imagen, las seales de vdeo y de bits estn codificados para el almacenamiento o la transmisin y
descodificada desde el almacenado o bits recibidos o seal para mostrar o reproducir. El cdec que
funciona como una unidad de compresin y descompresin de voz, voz, imagen o seales de vdeo.
11. CODEC JPEG: Este es un procesador de jpg compresin y descompresin. El JPEG (Joint Photographic
Experts Group) es una de las Telecomunicaciones de la Unin Internacional de Telecomunicaciones (UITT) y la Organizacin Internacional de Estndares (ISO) Comit.
12. El codec de MPEG: El Grupo de Expertos en Imgenes en movimiento (MPEG) recomienda estndares
de cdec de vdeo. MPEG3 Codec es un procesador para la compresin y descompresin de mp3. MPEG
2 o 3 o 4 de la compresin de datos de audio/video streams es hecho antes de almacenar o transmitir, y
descompresin se realiza antes de recuperar o reproducir archivos. Para MPEG algoritmos de compresin
y descompresin, si GPP-embedded software es ejecutar y, a continuacin, separar los DSPs son
necesarios para lograr un procesamiento en tiempo real.
13.Controlador (por ejemplo, para el perifrico, el acceso directo a memoria o bus).
Procesadores de propsito nico se utilizan para aplicaciones especficas o clculos o como controladores de
perifricos, accesos directo a memoria y buses.

1.3

Las unidades y dispositivos de hardware integrado en un sistema

1.3.1 Fuente de alimentacin


La mayora de los sistemas tienen una fuente de alimentacin propia. La tarjeta de interfaz de red (NIC) y un
acelerador de grficos son ejemplos de sistemas integrados que no tienen su propia fuente de alimentacin y
conexin a PC las lneas de suministro de energa. La oferta tiene un rango de funcionamiento especfica o un rango
de voltajes. Varias unidades en un sistema integrado funciona en uno de los siguientes cuatro rangos de potencia:
5,0 V + 0,25 V, 3,3 V + 0,3 V, 2,0 V + 0,2 V y l 0.5 V + 0,2 V. generalmente existe una relacin inversa entre el
retardo de propagacin en las puertas y la tensin de funcionamiento. Por lo tanto, el procesador del sistema y 5 V
unidades son usadas en la mayora de los sistemas de alto rendimiento.
Algunos sistemas no tienen una fuente de alimentacin propia: se conectan a una fuente de alimentacin externa
o son alimentados por el uso de bombas de carga (compuesto de un circuito del diodo y condensador que acumulan
a cargo de las seales de bus a travs del cual se conectan a la red o el host o de radiacin inalmbricos).

Operaciones de baja tensin


1. En porttiles o dispositivos de mano, como un telfono celular [cuando comparado a 5 V, 2 V circuito CMOS
disipacin de potencia se reduce en un sexto, ~ (2 V/5 V)2. Esto tambin aumenta el intervalo de tiempo
necesario para recargar una batera por un factor de 6.].
2. En un sistema con menor geometra global del sistema de baja tensin, procesadores y circuitos IO generen
menos calor y por lo tanto pueden ser envasados en un espacio menor.
Una fuente de alimentacin o una bomba de carga es esencial en cada sistema.

*1.3.2 Circuito oscilador de reloj y el reloj de unidades


El reloj controla el tiempo de ejecucin de una instruccin. Despus de la fuente de alimentacin, el reloj es la unidad
bsica de un sistema. Un procesador necesita un circuito de oscilador de reloj. El reloj controla los diversos requisitos
de reloj de

Introduccin a los sistemas integrados

11 |
___ Yo

El CPU del sistema de temporizadores y los ciclos de la CPU. Los ciclos de mquina son lor la obtencin de
cdigos y
Los datos de la memoria y luego decodificarla y ejecutarlas en el procesador y para transferir los resultados a
La memoria.
Para unidades de proceso, un oscilador altamente estable es necesaria y el reloj del procesador proporciona
la seal de reloj para sincronizar todas las unidades del sistema con el procesador.

1.3.3 Sistema de temporizadores y relojes de tiempo real


Un circuito temporizador est adecuadamente configurado como el reloj del sistema, que las garrapatas y genera
el sistema interrumpe peridicamente; por ejemplo, 60 veces. Las rutinas de servicio de interrupcin y luego
realizar la operacin requerida.
Un circuito temporizador est adecuadamente configurado como el reloj de tiempo real (RTC) que genera el
sistema interrumpe peridicamente para los planificadores, programas en tiempo real y de ahorro peridico de
fecha y hora del sistema.
El RTC o temporizador del sistema tambin se utiliza para obtener el software controla los retrasos y los
tiempos de espera. Un RTC funciona como controlador de software (temporizadores SWTs). [las secciones 3.6
y 3.8]
Los microcontroladores tambin proporcionan los circuitos del temporizador interno para el escrutinio y la
sincronizacin de dispositivos.
Para programar las diversas tareas y para la programacin en tiempo real, un RTC o reloj del sistema es
necesaria.
El reloj de
tambin
impulsa
los temporizadores
diversas necesidades de
cmputo y
1.3.4
Circuito
reset,
Reset
y Power-UPpara
Watchdog-Timer
restablecer
distribucin en un sistema.
El contador de programa (PC) contiene la direccin de donde la instruccin se debe obtener para su ejecucin.
En procesadores 80x86, el puntero de instruccin (IP) sostiene que la direccin. Un registro de segmento de
cdigo (CS) contiene la direccin base del cdigo de segmento de memoria. La direccin CS es igual al cdigo
que comienza cuando la direccin IP = 0 en el inicio de un segmento de cdigo. La IP aumenta cuando el
programa ejecuta los cdigos.
Rearme significa que el procesador comienza el procesamiento de instrucciones a partir de una direccin.
Esa direccin es la que se establece por defecto en el procesador de PC (o IP y CS en procesadores x86) en un
power-up. Desde esa direccin de memoria, instrucciones de programa se recuperan tras el reinicio del
procesador. Un programa que se restablece y se ejecuta en un power-up puede ser uno de los siguientes: (i) un
programa del sistema que se ejecuta desde el principio, (ii) un programa de arranque del sistema, (iii) un programa
de inicializacin del sistema.
En algunos procesadores, por ejemplo, 68HCII y HCI2, hay dos direcciones de inicio. Uno se basa en el
power-up vector reset y la otra en el vector de reset reset despus de la instruccin o despus de un tiempo de
espera (por ejemplo, un temporizador de vigilancia). El procesador recupera los bytes para el PC desde el primer
vector de reset de encendido durante el encendido. El procesador recupera los bytes para el PC desde el segundo
vector de reset en el temporizador de tiempo de espera o en la ejecucin de la instruccin de reset.
El circuito de reset se activa durante un periodo determinado (unos pocos ciclos de reloj) y luego se desactiva.
El circuito procesador mantiene activo el pin de reset y luego se desactiva para dejar que el programa contine
desde un principio la direccin predeterminada. El pin de reset o reinicializacin interna la seal, si est conectada
a otras unidades (por ejemplo, el 10 de interface o Interfaz de serie) en el sistema, se activa de nuevo el procesador;
ser,s.un pasador en curso para imponer un estado reset en otra hermana de dependencias del sistema. En la
desactivacin del reset, que sucede a la activacin del procesador, un programa se ejecuta a partir de una
direccin.
Restablecimiento puede ser activado por un circuito de reset externo que activa el encendido, sobre
conmutacin de reinicio del sistema o en deteccin de baja tensin (por ej. <4,5 V cuando lo que se requiere es
de 5 V en el sistema

Los sistemas integrados

Rieles de suministro). Este circuito se conecta a un pin de salida llamado el pin de reset del procesador. Este circuito
puede que un simple circuito RC, un circuito externo de 1C o una costumbre-construido 1C. Ejemplos de ICs son
MAX 6314 y Motorola MC 34064.
Alternativamente, tambin puede ser activado por cualquiera de los siguientes: (i) la instruccin de software:
(ii)-limc oul por un temporizador programado conocido como un temporizador watchdog (o sobre una seal interna
denominada COP en 68HC11 y 68HC12 familias); (iii) un reloj monitor detecta una desaceleracin por debajo de
determinadas frecuencias.
El temporizador watchdog es un dispositivo de distribucin que restablece el sistema despus de un tiempo
predefinido. Se activa en los primeros ciclos de reloj despus del encendido. Tiene un gran nmero de aplicaciones.
En muchos sistemas integrados por un reinicio Watchdog Timer es muy esencial porque ayuda a rescatar el sistema
si se desarrolla un fallo y el programa se atasca. En el reinicio, el sistema puede funcionar con normalidad. La
mayora de los microcontroladores tienen temporizadores tipo watchdog on-chip. El dispositivo temporizador
watchdog es descrito en detalle en la seccin 3.7.
Considere un sistema que controla la temperatura. Asumir que cuando el programa empieza a ejecutar, las
entradas del sensor funciona bien. Sin embargo, antes de alcanzar la temperatura deseada, el circuito del sensor
desarrolla algn fallo. El controlador continuar ofreciendo el nonstop actual si el sistema no se reinicia. Veamos
otro ejemplo de un sistema para controlar un robot. Supongamos que el circuito de control del motor de
interconexin en el brazo del robot desarrolla un fallo durante la carrera. En tales casos, el brazo del robot puede
continuar movindose a menos que exista un control Watchdog Timer. De lo contrario, el robot romper su propio
Cuando un programa ejecuta el programa contador o cambios. Un importante circuito que asocia un sistema
brazo!
es su circuito de reset que puede cambiar el contador de programa a un power-up valor predeterminado. Un
programa que se restablece y se ejecuta en un power-up puede ser uno de los siguientes: (i) un programa del
sistema que se ejecuta desde el principio, (ii) un programa de arranque del sistema, (iii) un programa de
inicializacin del sistema.
Restablecer el temporizador watchdog es una funcin necesaria en aplicaciones de control.

1.3.5 La memoria
E n un sistema, existen varios tipos de memoria. La figura 1.4 muestra un grfico para diversas formas de memoria
que estn presentes en los sistemas. Estos son como sigue:
1. La RAM interna de 256 o 512 bytes en un microcontrolador para registros, datos temporales y pila.
2. ROM interna/PROM / E2PROM acerca de Tor 4 kB a 64 kB de programa (en el caso de los
microcontroladores).
3. RAM externa de los datos temporales y stack (en la mayora de los sistemas) o cachs internas (en la
facilidad de ciertos microprocesadores).
Las diversas formas de memoria del sistema.

T
Interno
En RAM
MicroController

En RAM
SistemaSobreChip
O
Externa
RAM

Interno
Externa
RAM
Las cachs
Chip(s)
En
Microprocesador
(Mantenga copias de
la memoria del
sistema- , ps pginas]

Flash/
EEPROM
Externa
Y/O
Interno

Fig. 1.4 Las diversas formas de recuerdos en el sistema

ROM /
PROM.

La memoria
Direcciones
En
Los puertos del
sistema

Introduccin a los sistemas integrados

4. (Hash interna en muchos sistemas los resultados de procesamiento puede ser guardado en una memoria
no voltil: lor ejemplo, sistema .estado peridicamente e imgenes, canciones o discursos alter formal
adecuado de compresin).
5. Memory Stick (o tarjeta): vdeo, imgenes, canciones o discursos y gran capacidad de almacenamiento
en cmaras digitales y sistemas mviles. Sony Memory slick Micro (M2) es de tamao 15x12.5x1.2 mm
y tiene un hash de 2 GB de memoria. Tiene una velocidad de transferencia de datos de 160 Mbps (mega
bits por segundo) y PRO-HG 480 Mbps y 120 Mbps de escritura (desde diciembre de 2006.|
6. PROM o ROM externo para la incrustacin de software (en casi todos los sistemas distintos de los
sistemas basados en microcontrolador).
7. Bferes de memoria RAM en los puertos.
8. Las cachs (en canalizado y microprocesadores superescalares).
La tabla 1.1 detalla las funciones asignadas en los sistemas integrados a los recuerdos. ROM o PROM o
EPROM incrusta el software especfico para el sistema.
Cuadro 1.1 funciones asignadas a los recuerdos en un sistema
Memoria necesaria
ROM o EPROM o Flash

Funcin.'!
Almacenamiento de programas de aplicaciones de donde el procesador recupera los cdigos
de instruccin. Almacenar cdigos para arrancar el sistema, iniciando en la entrada inicial de
datos y cadenas. Cdigos para RTOS. Los punteros (direcciones) de varias rutinas de servicio
de interrupcin (ISR).

RAM (interna y externa) y la Almacenar las variables durante la ejecucin del programa y almacenar la comba. Almacenar
RAM para el buffer
los bferes de entrada o salida, por ejemplo, para la voz o la imagen.
Memory Stick
Un flash memory stick se inserta en el sistema informtico mvil o cmara digital. Almacena
el vdeo de alta definicin, imgenes, canciones o discursos despus de un formato adecuado
de compresin y grandes almacenes de datos persistentes.
Memoria EEPROM o Flash
Cache

El almacenamiento no voltil del procesamiento de los resultados.


Almacenar copias de instrucciones y datos externos previamente en la memoria primaria y
almacenando los resultados temporalmente durante el procesamiento.

Un sistema incrusta (busca) la siguiente, ya sea en el interior o flash ROM, PROM o en un flash externo o ROM
o PROM del microcontrolador: programa de arranque, datos de inicializacin, cadenas o pictograma de pantallapantalla o estado inicial del sistema, programas para diversas tareas, ISR y el kernel del sistema operativo. El
sistema tiene los carneros para guardar datos temporales, pila y tampones que son necesarios durante la
ejecucin de un programa. El sistema utiliza la memoria flash no voltil para almacenar los resultados.

1.3.6 Entrada, Salida y 10 puertos, 10 autobuses y 10 Interfaces


El sistema recibe entradas de dispositivos fsicos a travs de los puertos de entrada. Ejemplos arc como sigue:
1. Un sistema recibe entradas desde la pantalla tctil, teclas en un teclado o teclado, sensores y circuitos del
transductor.
2. Un circuito de controlador en un sistema obtiene entradas del sensor transductor y circuitos.
3. Un receptor de seales o una tarjeta de red recibe la entrada de un sistema de comunicacin. | Una
comunicacin
Sistema podra ser un fax, un mdem o un servicio de radiodifusin.|
4. Puertos recibe entradas desde una red o un dispositivo perifrico.

Los sistemas integrados

Examinar el sistema en una mquina expendedora automtica de Chocolate. Recibe entradas desde un puerto
que recoge las monedas que un nio se inserta.
Examinar el sistema en un telfono mvil. Un usuario introduce el nmero de mvil a travs de los botones,
directa o indirectamente (a travs de la recuperacin de la cantidad de su memoria). Las teclas del teclado se conectan
al sistema a travs de un puerto de entrada.
Un procesador identifica a cada puerto de entrada en su bfer de memoria, denominada Direcciones
Direcciones de puerto. Justo como una ubicacin de memoria sosteniendo un byte o palabra est identificado por
una direccin, cada puerto de entrada es tambin identificado por la direccin. El sistema obtiene las entradas por
las operaciones de lectura en las direcciones de puerto.
El sistema tiene los puertos de salida a travs de la cual se enva la salida de bytes para el mundo real. Ejemplos
de lo anterior son los siguientes:
1. La salida puede ser enviada a un diodo emisor de luz (LED), la pantalla de cristal lquido (LCD) o panel
de pantalla tctil. Por ejemplo, una calculadora o sistema de telfono mvil enva la salida de nmeros o
un mensaje SMS a la pantalla LCD.
2. Un sistema puede enviar la salida a una impresora.
3. La produccin puede ser enviado a un sistema de comunicacin o de la red.
4. Un sistema de control enva las salidas a las alarmas, actuadores, hornos o calderas.
5. Un robot es enviado para su salida de diferentes motores.
Cada puerto de salida est identificada por su memoria bfer de direcciones (llamadas direcciones de puerto).
El sistema enva la salida por una operacin de escritura en la direccin de puerto.
Tambin hay puertos de propsito general para la entrada y salida (10) las operaciones. Por ejemplo, un sistema
de telefona mvil enva la salida as como recibe a travs de un canal de comunicacin inalmbrica. Un sistema
informtico mvil enva la salida del sistema de pantalla tctil, as como obtiene entrada cuando un usuario toca el
men o la tecla en la pantalla.
Cada 10 puerto tambin est identificada por una direccin a la que tanto las operaciones de lectura y escritura.
Los puertos pueden tener comunicacin en serie o en paralelo con la direccin de sistema y los buses de datos.
Comunicacin en serie, un bit se utiliza la lnea de datos y bits se envan serialmente en sucesivos intervalos de
tiempo. Y el transmisor receptor asncrono universal (UART) es un protocolo de comunicacin popular para la
comunicacin serial. En paralelo, varias lneas de comunicacin de datos son utilizadas y los bits se envan en
paralelo.
Puerto puede tener un sistema para enviar la salida a varios canales. Un demultiplexor o circuito multiplexor es
luego usada.
Un demultiplexor es un circuito digital que enva salidas digitales en cualquier instancia a uno de los canales.
El canal al que se enva la salida es la que est dirigida por la direccin de canal en el desmultiplexor bits de entrada.
Un demultiplexor toma la entrada y lo transfiere al seleccionar la salida de canal entre los mltiples canales de salida.
Un multiplexor es un circuito digital que recibe entradas digitales en cualquier instancia de mltiples canales, y
enva la salida de datos slo desde un determinado canal a una instancia. La direccin de canal son los bits en el
multiplexor de entrada. Un multiplexor toma la entrada de uno de entre los mltiples canales de entrada y transfiere
un canal seleccionado la entrada a la salida.
Una unidad del sistema (por ejemplo, unidad de memoria o 10 poit o dispositivo) pueden seleccionarse entre las
varias unidades en el sistema y se activa. Un circuito decodificador cuando se utiliza como una direccin decoder
descodifica las direcciones de entrada y activa el canal de salida seleccionado de entre los muchos productos. Por
ejemplo, existen 8 unidades, de los cuales uno tiene que ser seleccionado. Una direccin, seleccione la entrada de 3
bits es la entrada para el decodificador. Basndose en la direccin de entrada, la salida, seleccione la lnea entre el 8
activa. Si la direccin de entrada es de 000 bits, entonces el 0LH salida est activa y el S'*1 unidad activa. Si el bit
de la direccin de entrada es i h'f el.'i'la 7 salida est activa y el 7ih unidad se activa.

Un bus de sistema podra tener que estar conectado a una serie de otros dispositivos y sistemas.
Un bus se compone de un conjunto comn de lneas para conectar varios dispositivos, Unidades
y sistemas de hardware para la comunicacin entre cualquier

Introduccin a los sistemas integrados

Dos de estos tit cualquier instancia dada. Un protocolo de comunicacin de bus especifica cmo se comunican
las seales en el bus. Un autobs puede ser un bus serie o paralelo que transfiere uno o varios bits de datos en una
instancia, respectivamente. El protocolo tambin especifica los siguientes: (i) las formas de arbitraje cuando
varios dispositivos necesitan comunicarse a travs del bus; (ii) las formas de sondeo requisito bus desde cada
dispositivo en una instancia; (iii) formas de encadenar los dispositivos para que el autobs se concede a un
dispositivo de acuerdo con la prioridad del dispositivo de la cadena.
Para la conexin en red de unidades distribuidas o sistemas, existen diferentes tipos de protocolos de bus serie
y paralelo: |:C. CAN, USB, ISA, EISA o PCI. Para las redes inalmbricas de los sistemas hay 802.11, IrDA,
Bluetooth y ZigBee protocolos.
El captulo 3 se describen los puertos, dispositivos, buses y protocolos en detalle.
Un sistema se conecta a dispositivos y sistemas fsicos externos en serie o en paralelo a travs de los puertos de
E/S. Demultiplexers multiplexores y facilitar la comunicacin de seales de mltiples canales a travs de un
camino comn. A menudo un sistema de redes para el resto de dispositivos y sistemas a travs de un bus de E/S:
por ejemplo. Ft, CAN. USB, ISA, EISA y el bus PCI.

1.3.7 DAC mediante un PWM y un ADC


DAC es un circuito que convierte digital de 8 o 10 o 12 bits a la salida analgica. La salida analgica es con
respecto a la tensin de referencia. Cuando todos los bits de entrada son iguales a I. entonces la salida analgica
es la diferencia entre el positivo y negativo de mosaico pasador de referencia voltajes de entrada; cuando todos
los bits es igual a 0, entonces la salida analgica -ve igual tensin del pasador de referencia (normalmente de 0
V).
Un sistema Stippose necesita darle a la salida analgica de un circuito de control para la automatizacin. La
salida analgica puede ser para un sistema de energa para el motor de corriente continua o del horno.
Modulador de ancho de pulso (PWM) con un integrador es el circuito usado para la DAC. Una unidad de
PWM del microcontrolador funciona de la siguiente manera: El ancho de pulso es proporcional a la salida
analgica necesaria. Las entradas son de PWM de 00000000 a 11111111 para una operacin de DAC de 8 bits.
Las salidas de la unidad de PWM a un integrador externo, que proporciona la deseada salida analgica. A partir
de esta informacin, la frmula para obtener la salida analgica de los bits en un determinado registro PWM con
los bits que van delante de 00000000 a 11111111 es como sigue: ANALOG OUTPUT V = k pw. donde k es una
constante y el pw es el ancho de pulso.
Supongamos un circuito (externo al microcontrolador) proporciona una salida de 1.024 V cuando el ancho
del pulso es el 50% del total de tiempo de pulso, y 2.047 V cuando la anchura es de 100%. Cuando la anchura es
de 25%. por reducir a la mitad el valor en el registro de control de salida PWM, la salida del integrador ser de
0,512 V. La constante k depende de la ganancia del amplificador integrador.
Asumir que el integrador opera con un doble (plus-minus) suministro. La unidad de PWM del
microcontrolador funciona mediante otro mtodo, que es la siguiente. Asumir que cuando un circuito integrador
proporciona una salida de 1,023 V. el ancho de pulso es del 100% del total de tiempo de pulso y de-1.024 V
cuando la anchura es de 0%. Cuando la anchura es de 25%, reduciendo a la mitad el valor de un registro de control
de salida, la salida ser integrador
0.
512 V: al 50% de la produccin ser de 0,0 V. A partir de esta informacin, la frmula para obtener la
salida analgica de los bits en un determinado registro PWM desde 00000000 a 11111111 en ambas situaciones
es como sigue: ANALOG OUTPUT V = 0,01. K\ (PW - 50), donde K' es constante y el pw es tiempo de ancho
de pulso en porcentaje con respecto al periodo de tiempo de pulso. K' depende de integrador de la ganancia del
amplificador.

Convertidor de analgico a digital ADC es un circuito que convierte la seal de entrada


analgica a digital 4, 8, 10 o 12 bits. La entrada analgica se aplica entre el positivo y
negativo de los pasadores y se convierte con respecto a la tensin de referencia. Cuando la
entrada es igual a la diferencia de referencia tensiones positivas y negativas, entonces todos

Los sistemas integrados

La ADC en el sistema microcontrolador puede utilizarse en muchas aplicaciones, tales como sistemas de
adquisicin de datos (DAS), cmaras digitales, sistemas de control analgico de voz y sistemas de digitalizacin.
Supongamos un sistema geles las entradas analgicas de los sensores de temperatura, presin, latidos de corazn y
de otras fuentes en un DAS. Supongamos un sistema geles las entradas analgicas de una cmara digital. Tiene
dispositivos de acoplamiento de carga (CCD) que tiene pxeles diminutos que cargue a la exposicin a la luz. La
carga de cada pxel depende de la intensidad de la luz en ese punto de la imagen. Las entradas analgicas al sistema
generar a partir de cada pxel. Cada pxel tiene entrada analgica para ser convertidos en bits para permitir el
procesamiento en la prxima etapa.
Supongamos que un sistema necesita para leer una entrada analgica de un transductor o sensor de circuito. Si
convertir a bits por la unidad de ADC en el sistema, entonces estos bits, despus del tratamiento, tambin puede dar
una salida. Esto proporciona un control para la automatizacin mediante el uso combinado de ADC y DAC
caractersticas.
Los convoc a bits puede ser dado al puerto significaba para pantalla digital. Los bits pueden ser transferidos
a una direccin de memoria, un puerto serie o un puerto paralelo.
Un procesador puede procesar la conversin de bits y generar un cdigo de pulso (PCM) salida modulada.
Seales PCM se utilizan para digitalizar la voz en un formato digital.
Puntos importantes sobre el ADC son como sigue.
1. Ya sea una sola o doble fuente de tensin de referencia analgica es necesaria en el ADC. Se establece el
lmite superior de entrada analgica o los lmites inferior y superior de ambos. Para una nica fuente de
referencia, el lmite inferior es ajustada a (! V (potencial de tierra). Cuando la entrada analgica es igual al
lmite inferior, el ADC genera todos los aciertos como so. y cuando es igual al lmite superior genera todos
los bits como es. (Como ejemplo, suponga que en un ADC el lmite superior o la tensin de referencia se
establece en 2.255 V. Deje que el lmite inferior ser de tensin de referencia de 0.255 V.
La diferencia en los lmites es de 2 V. Por lo tanto, la resolucin ser 2/256 V. Si el ADC de 8 bits- entrada
analgica es de 0.255 V, la conversin de 8 bits ser 00000000. Cuando la entrada es de 0.255 V + 1,000
V = 1.255 V, los bits ser 10000000. Cuando la entrada analgica es de 0.255 V + 0,50 V, la conversin de
bits ser 01000000. [a partir de esta informacin, la bsqueda de una frmula para obtener convertir bits
para una determinada entrada analgica = V voltio es como sigue: nmero binario de n bits alterar la
conversin en un ADC de n bits corresponde al nmero decimal N. Entonces N = v. (VldV - V RCL_)/2". Aqu.
Vrcf+ es la tensin de referencia que proporciona todos los bits que arc igual a 1 y el Vrc|- es la tensin de
referencia que proporciona todos los bits que son iguales a 0.|
2. Puede ser un ADC de 8. 10, 12, o 16 bits dependiendo de la resolucin necesaria para la conversin.
.2. El inicio de la conversin (STC) de la seal de entrada o inicia la conversin a 8 bits. En un sistema, una
instruccin o un temporizador indica el STC.
4. Hay un final de la conversin de la seal (EOC). Un fiag en un registro para indicar el final de la
conversin y el ADC genera una interrupcin: ISR lee los bits del ADC y guarda en el buffer de memoria.
5. Hay un lmite de tiempo en el cual la conversin la conversin es definitiva.
6. Un Muestreo y Retencin (S/H) unidad es usada para probar la entrada de tiempo fijo foros y mantngala
presionada hasta la conversin.
Unidad de un ADC puede ser utilizado repetidamente despus de los intervalos iguales al momento de la
conversin. Por lo tanto, uno puede digitaliza las seales del sensor CCD de DAS, seales, voz, msica o seales de
vdeo, o latidos del corazn seales del sensor en diferentes sistemas. Una unidad de ADC en un sistema
microcontrolador incrustado puede tener multichannels. Se puede entonces tomar las entradas en sucesin desde los
distintos polos interconectados a diferentes fuentes analgicas.
Para el control automtico y aplicaciones de procesamiento de seal, proporciona un sistema de circuito de
interconexin necesarios y software para la conversin de digital a analgico (DAC) y la unidad de conversin
de analgico a digital (ADC). Un DAC est operacin se realiza con la ayuda de una combinacin de una unidad
de PWM en la microcontrollet'y ,i<s integrador externo chip. ADC son las operaciones necesarias para la
adquisicin de datos, procesamiento de imgenes, procesamiento de voz, procesamiento de vdeo, sistemas de
instrumentacin y control automtico.

Introduccin a los sistemas integrados

17

- __ .

1.3.8 LCD, LED y pantallas tctiles


Requiere un sistema de circuito de interfase de estao IAM software para visualizar el estado o mensaje de una lnea, para
multilnea muestra, o Jor parpadeando muestra. Una pantalla LCD puede mostrar una pantalla multilnea de caracteres o tambin
muestran un pequeo grfico o icono (llamado un pictograma). Una reciente innovacin en el sistema de telfono mvil convierte
la pantalla azul para indicar una llamada entrante. La tercera generacin de telfonos tienen sistema de imgenes y p antallas
grficas. Una pantalla LCD necesita poca potencia. Una alimentacin o batera (un panel solar en la calculadora) poderes. La
pantalla LCD es un diodo que absorbe o emite luz y de 3 a 4 V y 50 o 60 Hz pulsos de voltaje con corrientes inferiores a -50 (iA
son necesarios. Los impulsos se aplica con la misma polaridad en el cristal plano frontal y posterior para ninguna luz, y con una
polaridad opuesta a la luz. Aqu, la polaridad significa lgica ' I ' o 'O'. Un controlador de pantalla se utiliza a menudo en el caso
de pantallas de matriz.

Para indicar el estado del sistema, puede haber un LED que se ilumina. Un LED intermitente puede indicar
que una tarea especfica se encuentra en su fase final o se est ejecutando o en estado de espera. El LED es un
diodo que emite en amarillo, verde, rojo o luz infrarroja en un controlador remoto de la aplicacin de una tensin
de entre 1.6-2 V. necesita corriente hasta 12mA por encima de 5 mA (menos en el modo de parpadeo de la
pantalla). Es mucho ms brillante que la pantalla LCD, por lo que es adecuado para pantallas de hash y para
muestra limitada a unos pocos dgitos.
Una pantalla tctil es una entrada as como un dispositivo de salida, que se puede utilizar para introducir un
comando, un men seleccionado o para dar una respuesta. La informacin es ingresada por tocar fsicamente a
una posicin de la pantalla con un dedo o un lpiz. Un lpiz es delgada objeto con forma de lpiz. Se celebra entre
los dedos y utiliza simplemente como una pluma. La pantalla muestra las opciones o comandos, mens, cuadros
de dilogo y los iconos. Pantalla La pantalla es similar a la pantalla de la unidad de pantalla de vdeo del ordenador.
Nueva pantalla tctil detecta los dedos, incluso desde la proximidad, por ejemplo, en el iPhone de Apple.
Las secciones 3.3.4 y 3.3.5 describir el LCD y dispositivos de pantalla tctil y sus conexiones con el sistema.
El sistema puede necesitar el circuito de interfaz y software necesarios para la salida (l la pantalla LCD y el
LED del controlador de puertos o interfaces para las I/Os con la pantalla tctil.

1.3.9 Teclado/Teclado.
El teclado o el teclado es un dispositivo importante para gelificar las entradas de usuario. El sistema proporciona la necesa ria
interconexin y clave del rebote de circuito, as como el software para el sistema para recibir los aportes de un conjunto de teclas
de un teclado, un teclado o teclado virtual. Una pantalla tctil proporciona un teclado virtual en un sistema de informtica mvil.
Un teclado virtual es un teclado aparece en la pantalla tctil, donde el usuario puede introducir las claves mediante un lpiz o el
dedo.

Un teclado tiene hasta un mximo de 32 teclas. Puede tener un teclado de 104 teclas o ms. El teclado o el
teclado pueden interactuar en serie o paralelamente al procesador directamente a travs de puertos o a travs de
un controlador. Los telfonos mviles pueden tener un teclado T9. Un T9 teclado tiene 16 teclas y cuatro arribaabajo-izquierda derecha teclas de men. Utilizando las teclas 0 a 9 mensajes de texto, tales como mensajes SMS,
se generan.
Para entradas, un teclado o la Junta tal interfaz para un sistema. El sistema proporciona el circuito de interfaz
y software necesarios para recibir entradas directamente desde las teclas o a travs de un controlador.

1.3.10 Marcador de pulso, el mdem y el transceptor


Para la conectividad de usuario a travs de la lnea telefnica, o una red inalmbrica, un sistema que proporciona
la necesaria interconexin y circuitos. Tambin proporciona el software para la marcacin por pulsos a travs de
la lnea telefnica, mdem

18

Los sistemas integrados

Interconexin de lax. para el enrutamiento de los paquetes de Internet y para transmitir y conectarse a un sistema
celular inalmbrico o red inalmbrica de rea personal. Un transceptor es un circuito que puede transmitir as como recibir
hyle arroyos.

En el sistema de comunicacin, un comunicador de pulso, mdem o transceptor se utiliza. Un sistema que


proporciona la interfaz de software y circuitos necesarios para marcar y para el mdem y el transceptor,
directamente o a travs de un controlador.

1.3,11 Manejador de interrupcin


Un dispositivo de distribucin enva un time-out interrumpir cuando transcurre un tiempo preestablecido o enva
una interrupcin cuando compara el tiempo actual equivale a la hora preestablecida. Suponga que los datos tienen
que ser transferidos desde un teclado a una impresora. Un puerto perifrico genera una interrupcin en la recepcin
de los datos de entrada o cuando se vaca el bfer de transmisin. Cada accin genera una interrupcin. Un sistema
puede tener una serie de dispositivos y el procesador del sistema tiene que controlar y manejar los requisitos de
cada dispositivo ejecutando una apropiada rutina de servicio de interrupcin (ISR) para cada uno. Un mecanismo de
manejo de interrupciones debe existir en cada sistema para manejar las interrupciones de diversos procesos y para el manejo de
interrupciones mltiples simultneamente pendiente para el servicio. El captulo 4 describe en detalle las interrupciones, ISR, y sus
mecanismos de manipulacin en un sistema. Puntos importantes acerca de las interrupciones y su manejo por el programa son las
siguientes.

1. Puede haber un nmero de fuentes de interrupcin y grupos de interrumpir las fuentes en un procesador.
[Seccin 4.3 ] Una interrupcin puede ser una seal de hardware que indica la ocurrencia de un evento.
[Por ejemplo, un reloj de tiempo real actualiza continuamente un valor en una direccin de memoria
especificada; la transicin de dicho valor es un evento que provoca una interrupcin.! Una interrupcin
tambin puede ocurrir a travs de temporizadores, a travs de una instruccin de interrupcin del procesador
programa o a travs de un error durante el procesamiento. El error puede surgir debido a un cdigo de
operacin ilegal fetch, una divisin por cero o provocar un desbordamiento o subdesbordamiento durante
una operacin de ALU. Tambin puede producirse una interrupcin de software a travs de un
temporizador. Una interrupcin de software pueden surgir en una condicin excepcional que puede haber
desarrollado mientras se ejecuta un programa.
2. El sistema puede priorizar las fuentes y el servicio correspondiente. [Seccin 4.5.[
3. Algunas fuentes no son ocultable y no pueden ser desactivados. Algunos tienen asignado la mxima
prioridad durante el procesamiento.
4. El programa actual del procesador tiene que desviar a una rutina de servicio para completar esa tarea sobre
la ocurrencia de la interrupcin. Por ejemplo, si se presiona una tecla, luego un ISR lee la clave y almacena
el valor de la clave en la direccin de memoria del procesador. Si una secuencia de teclas es pulsado, por
ejemplo en un telfono mvil, un Router ISR lee las teclas y pide tambin una tarea para marcar el nmero
de telfono mvil.
5. . Hay una unidad programable on-chip para el manejo de interrupciones mecanismo en un
microcontrolador.
6. El sistema operativo est previsto para controlar el manejo de interrupciones y ejecucin de rutinas para las
interrupciones en una aplicacin particular. El sistema siempre da prioridad a los ISRs durante las tareas de
una aplicacin.
El sistema proporciona un mecanismo de tratamiento de interrupcin para la ejecucin de los ISRs en caso de
interrupciones de los dispositivos fsicos, sistemas, instrucciones de software y excepciones de software.

Introduccin a los sistemas integrados

1.4

El software integrado en un sistema

El software es como el cerebro del sistema integrado.

1.4.1 Final de la mquina para un sistema de software aplicables


Un sistema integrado procesador ejecuta software que es especfico para una determinada aplicacin de ese
sistema. Los cdigos de instrucciones y datos en la fase final se colocan en la ROM o memoria flash para todas
las tareas que se ejecutan cuando se ejecuta el sistema. El software se llama tambin la imagen de la ROM. Por
qu? Como una imagen es una secuencia nica y disposicin de pxeles, embedded software es tambin una
singular colocacin y arreglo de bytes para instrucciones y datos.
Cada cdigo o datum slo est disponible en el formato de bits y bytes. El sistema requiere de bytes en cada
direccin de la ROM, de acuerdo a las tareas que se ejecutan. Un archivo de software aplicables de la mquina es, por
tanto, como una tabla que tenga en cada una de las filas de la direccin y bytes. Los bytes se guardan en cada direccin de la
memoria del sistema. La tabla tiene que ser alistado como imagen de ROM para el objetivo de hardware. La figura 1.5 muestra
la imagen de la ROM en un sistema de memoria; la imagen se compone de el programa de arranque, pilas, punteros de direccin
del contador del programa punteros de direccin, los programas de aplicacin. Isr. RTOS, datos de entrada y direcciones de
vectores.
F 2 bytes para dirigirme
PC-ADDR f
desde | Donde l sistema
2 bytes para
de arranque ( Ejecucin
Direccin de
en j Power Up ' (no
j!
Pila
necesario en !
"SP-ADDR
J
80X86.8051,80196,
"
............ >
En
J
ADDR-1
Restablecer
Bytes de datos
j i como insumos
ADDR-2
para cada
Interrumpir el
interrupcin
servicio I Vector de
ADDR-3
I- la rutina de servicio
rutina , las
ADDR-4
direcciones de 2
bytes cada I
Inicio
I
Programa \
Cdigos i

ADOR-5
ADDR-6

.1*

F ] cdigos de
mquina especfico
para cada >:
! Programa, ISR - L
y tarea

Cdigos
de
mquina! Yo en
tiempo
real
(RTOS
j
el
sistema
operativo)j
ROM del
sistema
La memoria

Fig. 1.5 Sistema de memoria ROM de la incrustacin del software, RTOS, datos y direcciones vectoriales

20

Los sistemas integrados

Etapa final de software es tambin llamado la imagen de la ROM. La mquina final aplicable para un producto
de software incrusta en el otrora Hash o ROM programable (PROM) o como una imagen en un frame. Bytes en
cada direccin debe estar definido para crear la imagen de la ROM. Por este cambio de imagen, la misma
plataforma de hardware funcionarn de manera distinta y puede utilizarse para aplicaciones totalmente diferentes
o para nuevas actualizaciones del mismo sistema.

1.4.2 Codificacin de Software en cdigos de mquina


Durante la codificacin en este formato, el programador define las direcciones y los bytes correspondientes o bits
en cada direccin. En la configuracin de algunos dispositivos fsicos especficos o subsistema, codificacin basada
en cdigo de mquina utilizada. Por ejemplo, en un transceptor, colocando algunos bits de cdigo mquina y puede
configurar para transmitir en determinados megabytes por segundo o en gigabytes por segundo, utilizando bus
especfico y protocolos de red. Otro ejemplo es la utilizacin de ciertos cdigos para configurar un control de registro
con el procesador. Durante un cdigo especfico de la seccin de procesamiento, el registro puede ser configurado
para activar o desactivar el uso de la cach interna. Sin embargo, la codificacin de los cdigos aplicables a la
mquina se realiza slo en situaciones especficas, ya que consume mucho tiempo, y el programador debe tener, en
primer lugar, comprender el conjunto de instrucciones del procesador y, a continuacin, memorizar las instrucciones
y sus cdigos de mquina.

1.4.3 Software en lenguaje de ensamblado especfico del procesador


Un programa o una pequea parte especfica puede ser codificado en lenguaje ensamblador usando un ensamblador
despus de comprender el procesador y su conjunto de instrucciones. Assembler es un software utilizado para
elaborar los cdigos en general.
Codificacin del lenguaje ensamblador es extremadamente til para la configuracin de dispositivos fsicos
como los puertos, una lnea de interfaz de pantalla. ADC y DAC AMI en la lectura o la transmisin de un bfer.
Estos cdigos tambin se llaman cdigos de bajo nivel para las funciones de controlador de dispositivo. (Secciones
1.4.7 y 4.2.4.] son tiles para ejecutar el procesador o caractersticas especficas de dispositivo y proporciona una
ptima solucin de codificacin.
La falta de conocimiento de la escritura de cdigos del controlador de dispositivo o cdigos que utilizan las
caractersticas especficas del procesador- invocando los cdigos en un Embedded System Design Team puede
costar mucho. Un proveedor puede cobrar por la API y tambin cobran tasas de propiedad intelectual para cada
sistema que se envan fuera de la empresa.
Para que todos los cdigos en lenguaje ensamblador puede, sin embargo, ser muy laboriosa. Codificacin
completa en general slo puede ser realizada por unos simples, sistemas de pequea escala, tales como juguetes,
mquinas expendedoras automticas de chocolate, robots o sistemas de adquisicin de datos.
La figura 1.6 muestra el proceso de conversin de un programa en lenguaje ensamblador en la mquina archivo
de software aplicables y, finalmente, la obtencin de un archivo de imagen de ROM.
1. Un ensamblador traduce el conjunto de software en la mquina de cdigos usando un paso llamado montaje.
2. En el paso siguiente, denominada vinculacin, un enlazador enlaces estos cdigos con los dems cdigos
requeridos. La vinculacin es necesaria debido a que el nmero de cdigos para vincularse por el archivo
binario final. Por ejemplo, existen los cdigos estndar para programar un retraso de tarea para la que no
hay una referencia en el programa en lenguaje ensamblador. Los cdigos para el retraso debe vincular con
el conjunto de cdigos. La demora es de cdigo secuencial comenzando desde una determinada direccin.
La Asamblea tambin es software de cdigo secuencial comenzando desde una determinada direccin.
Tanto los cdigos tienen que estar vinculadas a las distintas direcciones, as como a las direcciones
disponibles en el sistema. El archivo vinculado en binario para ejecutar en un ordenador es lo que
comnmente se conoce como un archivo ejecutable o simplemente un archivo '.exe'. Despus de la
vinculacin, tiene que haber una reasignacin de las secuencias de colocar los cdigos antes de colocar los
cdigos en la memoria.

Introduccin a los sistemas integrados

I 21

Fig. 1.6 El proceso de convertir un programa en lenguaje ensamblador en los cdigos de mquina y finalmente
obtener la imagen de la ROM

3. En el siguiente paso, el programa cargador realiza la tarea de reasignar los cdigos alter encontrar las
direcciones de memoria fsica disponible en un momento dado. El cargador es una parte del sistema
operativo y lugares cdigos en la memoria alterar la lectura del archivo '.exe'. Este paso es necesario
porque las direcciones de memoria disponible puede no arrancar desde 0x0000 y cdigos binarios deben
estar cargados en diferentes direcciones durante la carrera. El cargador se encuentra la direccin de inicio
apropiado. En un equipo, despus de la carga en una seccin de la RAM. El programa est listo para
funcionar.
4. El paso final del proceso de diseo del sistema es la localizacin de estos cdigos como una imagen de
la ROM. Los cdigos son colocados permanentemente en las direcciones realmente disponibles en la
ROM. En sistemas embebidos, no hay ningn programa especfico para realizar un seguimiento de las
direcciones disponibles en diferentes momentos durante la ejecucin. como en un ordenador. En sistemas
embebidos, por lo tanto, el paso siguiente en lugar de la cargadora, alterar la vinculacin es el uso de
un localizador, qu escenarios el 10 tareas y cdigos de controladores de dispositivo de hardware en
direcciones fijas. Puertos y direcciones de dispositivos se fija por un sistema determinado segn el
circuito de interfaz entre el sistema de autobuses y puertos o dispositivos. El programa localizador teal
localiza el archivo vinculado y crea un archivo de una ubicacin permanente de los cdigos en un formato
estndar. El archivo puede ser formal en el formato de archivo Hex de Intel o Motorola S-record formal.
El diseador tiene que definir las direcciones disponibles para localizar y crear archivos
permanentemente para localizar los cdigos.
5. Por ltimo, ya sea (i) un sistema de laboratorio, llamado dispositivo programador, toma como entrada el
archivo de imagen de la ROM y finalmente se quema la imagen en la PROM o hash o (ii) en la fundicin,
se crea una mscara para la ROM del sistema integrado desde el archivo de imagen de la ROM. |El
proceso de colocar los cdigos en PROM o hash tambin se denomina grabacin.] La mscara creada a
partir de la imagen da la ROM en 1C forma de chip.
Para configurar algn dispositivo fsico concreto o subsistema como el transceptor, cdigos de mquina puede
ser utilizada inmediatamente. Controlador de dispositivo fsico de cdigos o cdigos que utilizan las
caractersticas especficas del procesador-invocando los cdigos "especficos" de procesador general
Jangua^L es usado. A continuacin, se crea un archivo en tres pasos mediante un ensamblador, enlazador y el
localizador. El archivo tiene la imagen de la ROM en un formato estndar. Un dispositivo programador
vagabundos finalmente la imagen en el PROM o EPROM. Una mscara creada a partir de la imagen da

22

Los sistemas integrados

1.4.4 Software en lenguaje de alto nivel


Desde la codificacin en lenguaje ensamblador es muy cal consumiendo en la mayora de los casos, el software es desarrollado
en un lenguaje de alto nivel, 'C' o 'C++' o Visual C++ o 'Java' en la mayora de los casos. 'C- suele ser el idioma preferido.
El programador debe entender slo la organizacin de hardware cuando se codifican en lenguaje de alto nivel.
Como ejemplo, considere el siguiente problema.

Ejemplo 1.1.

Aadir 127, 29 y 40 e imprimir la raz cuadrada.


Jf
Un ejemplar del programa en lenguaje C para todos los procesadores es como sigue: i) ft incluyen
<stdio.h> Fj (ii) ft incluyen <math.h> (iii) void main (void) j (iv) int il. i2, i3. Un flotador; resultado; (v) il = 127 ml;i2 =
29; i3 = 40; a = il + <2 + i3; Resultado = sqrt (a); (vi) printf (resultado);}
Ff

La codificacin para la raz cuadrada necesitar


Comandos de preprocesador
muchas lneas de
Cdigo y slo puede hacerse mediante una asamblea de
Funcin principal
expertos
Las rutinas de servicio de interrupcin
Programador de lenguaje. Escribir el programa en un alto
Nivel de idioma es muy sencillo en comparacin con la
Tareas 1...N
escritura en
Y el planificador del kernel
El lenguaje ensamblador. "Los programas C tiene una
caracterstica que
Biblioteca estndar
Agrega el conjunto de instrucciones cuando utilice ciertos
Funciones incluidas
Protocolo de red
Caractersticas especficas del procesador y la codificacin
Funciones para
para un especfico
Envo y pila
La seccin, por ejemplo, un puerto de controlador de
Pila receptora
J!
dispositivo. Figura l 7.
Muestra la programacin de diferentes capas en una tpica
Fig. 1.7
Las diferentes capas de programas el
'C software incrustado. Estas capas son como sigue.
software incrustado en C
Comandos del procesador (i), (ii) la funcin principal.
Iii) la rutina de servicio de interrupcin, (iv) varias tareas, digamos.
I N. (v) y el planificador del kernel, (vi) Biblioteca
estndar
Funciones, manejo de protocolo y funciones de pila.
La figura 1.8 muestra el proceso de conversin de un
Programa C en el archivo de imagen de la ROM. Un
compilador
Genera el cdigo objeto. Rene los cdigos
Segn el conjunto de instrucciones del procesador y otras especificaciones. El compilador de C para sistemas
C, C++, Java, Visual C++ son los lenguajes utilizados para el desarrollo de software. Un programa C tiene
integrados
varias
capas:
procesador
comandos,
principal,
las tareas
y las funciones
de biblioteca,
las rutinas
de
Los
sistemas
deben,
como de
paso
final de lafuncin
compilacin,
utilice
un optimizador
de cdigo
que optimiza
los cdigos
servicio de interrupcin y el ncleo (scheduler). El compilador genera un archivo objeto. Mediante un enlazador
antes
locator, el archivo
de de
la imagen
de la ROM
se crea para
el objetivo
de hardware.
Layvinculacin.
Despus
la compilacin,
el enlazador
vincula
el cdigo
objeto con otros cdigos necesarios. Por
ejemplo, el
Linker incluye los cdigos de las funciones print/ y sqrt cdigos. Cdigos para dispositivos y controladores de dispositivo (
Cdigos de control) la gestin vincular tambin en esta etapa: por ejemplo, la gestin de dispositivos y controladores
de impresora
Los cdigos. Despus de la vinculacin, el resto de los pasos para crear un archivo de imagen de ROM son el mismo

Introduccin a los sistemas integrados

23

Fig. 1.8 El proceso de convertir un programa en C en el archivo de la imagen de ROM

1.4.5 Los modelos de programa para el diseo de software


El diseo del programa se ha simplificado la tarea si un programa est modelado.
La d i fferent modelos que son empleadas durante los procesos de diseo del software incorporado son como
sigue:
1. Modelo de programa secuencial
2. Modelo del Programa orientada a objetos
3. Grfico de flujo de datos y control de flujo de datos o sncrona (SDF) Grfico o Grfico de subproceso
mltiple (MTG) Modelo
4. Mquina de estado finito de ruta de datos
5. Modelo de multiproceso para procesamiento concurrente de procesos o subprocesos o tareas
UML (lenguaje de modelado Universal) es un lenguaje de modelado para programacin orientada a objetos.
Estos modelos son explicados en el Captulo 6.

1.4 Fi Software para el procesamiento concurrente y programacin de tareas


mltiples y ISR utilizando un RTOS
Un programa de sistema integrado es ms a menudo diseadas mediante varios procesos o multitarea o
multithreads. | Consulte las secciones 7.1 a 7.3 para la definicin y comprensin de los procesos, subprocesos y
tareas. | Las mltiples tareas se procesan con ms frecuencia por el SO no de manera secuencial, pero
simultneamente. Tareas de procesamiento concurrente puede ser interrumpido para ejecutar la ISR, y una tarea
de mayor prioridad anticipa la ejecucin de tareas de menor prioridad.
Un os ofrece para el proceso, memoria, dispositivos de 10s y gestin del sistema de archivos. Un sistema de
archivos especifica la forma en que se crea un archivo llamado, nombrado, utilizado, copiado, guardado o
eliminado, abiertos y cerrados. El sistema de archivos es el software para usar los archivos en un disco, memoria
flash, tarjeta de memoria o memory stick.
OS Software tiene funciones de programacin para todos los procesos (tareas, ISR y controladores de
dispositivos) en el sistema. Desde la ejecucin de las tareas y los ISRs pueden tener limitaciones en tiempo real
y los plazos para finalizar las tareas, un RTOS es requerida en un sistema integrado. El RTOS proporciona las
funciones del SO para la codificacin del sistema, proporciona comunicacin interproceso functicis
an.yAcontrols el paso de mensajes y seales a una tarea.
RTOS funciones son altamente complejos. Hay una serie de populares rtos y fcilmente disponibles. Los
captulos 8 a 12 se describe el RTOS funciones y ejemplos de aplicaciones en los sistemas integrados.

24

Los sistemas integrados

Rto es utilizado en la mayora de sistemas integrados y el sistema realiza el procesamiento simultneo de


mltiples tareas cuando las tareas tienen verdaderas limitaciones de tiempo y plazos;;;.

1.4.7 Software para la gestin de dispositivos y controladores de


dispositivos en un sistema operativo
Un sistema integrado est diseado para realizar mltiples funciones y tiene que controlar varios dispositivos
fsicos y virtuales. En un sistema integrado, puede haber varios dispositivos fsicos. Ejemplar arco dispositivos
fsicos temporizadores, teclados, pantalla, memoria flash, puertos paralelos y tarjetas de red.
Un programa tambin se desarroll utilizando el concepto de dispositivos virtuales. Ejemplos de dispositivos
virtuales son como sigue.
1. Un mosaico (de registros abiertos, ledo, escrito y cerrado y guardado como una secuencia de bytes o
palabras).
2. Un tubo (para enviar y recibir un flujo de bytes desde el origen al destino)
3. Un socket (para enviar y recibir un flujo de bytes entre el cliente y el software de servidor y entre
origen y destino los sistemas informticos)
4. Un disco RAM (para usar la memoria RAM de una manera similar a la teja en el disco)
Un archivo es una estructura de datos (o dispositivo virtual) que enva los registros (caracteres o palabras) a
un receptor de datos (por ejemplo, una funcin del programa) y que almacena los datos del origen de datos (por
ejemplo, una funcin del programa). Un mosaico en un ordenador tambin pueden ser almacenados en el disco
duro y en la memoria de hash en sistemas embebidos.
El trmino dispositivo virtual se desprende de la analoga que al igual que un teclado da una entrada al
procesador para una lectura, un mosaico tambin ofrece una entrada para el procesador. El procesador proporciona
una salida a una impresora para una escritura. Asimismo, el procesador escribe una salida al archivo.
Un dispositivo para fines de control, la manipulacin, la lectura y la escritura pueden tomarse medidas que
consta de tres componentes: i) un control de registro o palabra que almacena los bits que, en establecer o restablecer
por un controlador de dispositivo, el dispositivo de control de las acciones, (ii) un registro de estado o palabra que
proporciona las banderas (bits) para mostrar el estado del dispositivo para el controlador de dispositivo, (iii) un
dispositivo mecanismo que controla las acciones del dispositivo. Pueden existir los bferes de datos de entrada y
salida en un dispositivo, que puede ser escrito o ledo por un controlador de dispositivo'd. Acciones del controlador
de dispositivo neumtico para gel o enviar la entrada a la salida de los registros de control, los bferes de datos de
entrada, salida y los bferes de datos de registros del estado del dispositivo.
Un controlador de dispositivo es un software para la apertura, conexin o vinculante, la lectura, la escritura y
el cierre o controlar las acciones del dispositivo. Se trata de software escrito en un lenguaje de alto nivel. Controla
las funciones para abrir el dispositivo (configurar), conectar, enlazar, escuchar, leer o escribir o cerrar. El
controlador de dispositivo se ejecuta despus de la programacin del control de registro (o palabra) de un perifrico
o dispositivo virtual. El aprendizaje se denomina inicializacin del dispositivo o registro o archivo adjunto. El
controlador lee el registro de estado, obtiene las entradas y escribe los resultados. Se ejecuta sobre una interrupcin
a o desde el dispositivo.
Un conductor controla tres funciones: (i) la inicializacin, que se activa mediante la colocacin de bits
correspondientes en el registro de control o word, (ii) Llamar a un ISR en interrumpir o sobre el establecimiento
de un indicador de estado en el registro de estado y funcionando (conduccin) la rutina de interrupcin (ISR), (iii)
restablecer el estado fiag despus de una interrupcin de servicio. Ver dri puede ser diseado para operaciones
asincrnicas (uso mltiple por tareas uno despus de otro) o las operaciones sincrnicas (uso concurrente de las
tareas).
El uso de las funciones del sistema operativo, un controlador de dispositivo de codificacin puede ser tal que
el hardware subyacente est oculto tanto como sea posible. Una API define entonces el hardware por separado.
Esto hace que el conductor utilizable cuando el hardware del dispositivo de los cambios en un sistema.

Introduccin a los sistemas integrados

25

Un controlador de dispositivo accede a un puerto paralelo o serie, teclado, ratn, disco, red, visualizacin,
IDE, tubo y zcalo en .direcciones especficas. Tambin proporciona un sistema operativo, controladores de
dispositivo del sistema de cdigos de direcciones de puerto de lor y mecanismos de acceso de hardware.
Un software Device Manager proporciona cdigos para detectar la presencia de dispositivos, para inicializar
estas y para probar los dispositivos que estn presentes. El administrador incluye software para la asignacin y
registro de puerto (en realidad, puede ser un registro o memoria) las direcciones de los distintos dispositivos en
diferentes direcciones, incluyendo los cdigos para detectar cualquier colisin entre estos, si los hubiere. Se
asegura de que cualquier dispositivo accede a una tarea nica en cualquier momento dado. Toma en cuenta que
los dispositivos virtuales tambin pueden tener direcciones que arcjillocaled por el gestor.
Tambin proporciona un sistema operativo y ejecuta los mdulos de gestin de dispositivos que se asocie con
un sistema incorporado. El principio subyacente es que en un instante, slo un dispositivo fsico o virtual gel debe
acceder a o desde una tarea.
Las secciones 4.2.4 y 8.6.1 se describe la gestin de dispositivos y controladores de dispositivo en detalle. El
sistema operativo tambin proporciona y administra dispositivos virtuales como tuberas y tomas. Las secciones
7.14 y 7.15 describen estos en detalle.
Para el diseo de software embebido, dos tipos de dispositivos se consideran: fsico y virtual. Los dispositivos
fsicos incluyen teclado, impresora o unidad de visualizacin. Un dispositivo virtual puede ser un archivo o
un tubo o un disco de RAM. Los controladores de dispositivo y software Device manager son necesarios en
el sistema. El RTOS incluye dispositivo

1.4.8 Herramientas de software para disear un sistema integrado


La tabla 1.2 enumera las aplicaciones de herramientas de software para programar en lenguaje ensamblador,
lenguaje de programacin de alto nivel. RTOS, depuracin e integracin de sistemas.
TaMf" 1.2 mdulos de software y herramientas para el diseo de un sistema integrado

J Software T(/ol.\
Editor

Intrprete
Compilad
or
Ensamblador

Aplicacin

Para escribir cdigos mnemnicos de montaje C o utilizando el teclado del PC para


introducir los
Programa. Permite la entrada, adicin, eliminacin, insercin, anexar o lneas escrito
anteriormente.
Archivos, combinando el registro y archivos a las posiciones especficas. Crea un
Para la expresin
la expresin
(lneaelpor lnea) Traduccin a la mquina de cdigo ejecutable.
archivo
de cdigopor
fuente
que almacena
Archivo
editado.
Tambin
tiene
un Tambin
nombre puede
apropiado
(proporcionado
porar.d
el
Usa el conjunto completo de cdigos.
incluir
funciones ctxles,
programador].
expresiones de
(l rutinas de biblioteca. Crea un archivo llamado archivo de objeto.
Para la traduccin general mnemnicos a binario opcodes (instrucciones), es decir, en
Un archivo ejecutable denominado archivo binario y para hacer una lista de archivos
que se pueden imprimir. La lista
El archivo tiene la direccin, el cdigo fuente (en lenguaje ensamblador) y
hexadecimal pbject mnemnicos
Los cdigos. El archivo tiene las direcciones que reasignar durante la ejecucin real de
(cont)
la Asamblea*
Programa de idiomas.

! 26
Yo

Los sistemas integrados

Herramientas de software
Ensamblador cruzado
otro

Aplicacin
Para la conversin de cdigo objeto o ejecutable cdigos para un procesador a otros cdigos para
Procesador y viceversa. La cruz-ensamblador ensambla el conjunto de cdigos del procesador de
destino como el conjunto de cdigos que el procesador del PC utilizado en el desarrollo de un
sistema. Posteriormente, se proporciona el cdigo objeto para el procesador de destino. Estos
cdigos sern los que realmente hace falta en el ltimo sistema desarrollado.

Simulator
adicional.

Para simular todas las funciones de un sistema integrado que incluye circuitos o memoria
Y perifricos. Es independiente de un determinado sistema de destino. Tambin simula los
procesos que se ejecutan cuando los cdigos de un determinado procesador ejecutar.

Cdigo fuente
Para obtener el cdigo fuente de comprensin, navegacin y exploracin, editar, depurar la
configuracin
Ingeniera de software (activacin y desactivacin de las funciones de C++) y compilar.
RTOS

Consulte los captulos 8 a 10.

Estetoscopio
Demuestra

Dinmicamente para el seguimiento de los cambios en cualquier programa variable o parmetro.


La secuencia de mltiples procesos (tareas, roscas, las rutinas de servicio) que se ejecutan y
tambin registra todo el tiempo de la historia.

Alcance de traza
x. Una lista de

Para ayudar en el seguimiento de los cambios en los mdulos y las tareas con el tiempo en el eje
Las acciones tambin produce las escalas de tiempo deseado y el tiempo de espera para ser tomado
para diferentes tareas.

Este desarrollo integrado es un entorno de hardware y software de desarrollo que consta de simuladores con
Medio ambiente
Editores, compiladores, ensambladores, RTOS, depuradores, el estetoscopio, tracer, emuladores,
lgica
Analizadores, cdigo de aplicacin y quemadores en PROM o flash.
Prototyper

Esto simula y ingeniera de cdigo fuente no incluida la compilacin, depuracin y,


Navega y resumir el estado completo del sistema de destino final durante la fase de desarrollo.

Localizador*
localizador

Esto utiliza un cross-assembler salida y un mapa de asignacin de memoria y proporciona el

como
undearchivo
Es el paso
final del proceso de diseo de
* El programa de localizadorLa
de salida
salida del
estprograma
en el archivo
hex
Intel o hexadecimal.
Motorola S-record
formal.
software o un sistema integrado.

Se utilizan herramientas de software para desarrollar software para el diseo de un sistema integrado. Las
herramientas de depuracin, como un estetoscopio, trace el alcance y las sofisticadas herramientas tales como
un entorno de desarrollo integrado y las herramientas de desarrollo de prototipos, son necesarios para el
desarrollo integrado de hardware y software del sistema.

1.4.9 Herramientas de software necesarias en casos ejemplares


El cuadro 1.3 da las diferentes herramientas necesarias para disear sistemas de ejemplar.
.

.(b

Rto es esencial en la mayora de sistemas integrados para procesar varias tareas y ISR. Los sistemas integrados
de mediana escala y aplicaciones sofisticadas necesitan un nmero de software sofisticado y herramientas de
depuracin.

Introduccin a los sistemas integrados

27

Tabla 1.3 Herramientas de software necesarias en sistemas ejemplar


Software
Herramientas

Robot

Mobile
Voz
Sistema de Control
Telfono
Procesador
de crucero
adaptativo con
estabilidad de
cadena*
S
S
NR

Chocolate
mquina
expendedora
automtica*

Datos
Adquisicin
Sistema

Editor

Intrprete

NR

NR

NR

NR

Compilador

Ensamblador

No hay

No hay

No hay

Ensamblador cruzado

NR

No hay

No hay

No hay

Localizador

Simulator

NR

NR

NR

NR

RTOS

Seor

Estetoscopio

NR

NR

NR

Alcance de traza

NR

NR

NR

NR

NR

No hay

No hay

El cdigo fuente del software


de ingeniera

Entorno
integrado
Protolyper

de

desarrollo

Nota: NR significa que no es necesario. Seor significa puede ser requerida en un sistema complejo pero no obligatoriamente necesaria.

1.5

Ejemplos de sistemas integrados

Los sistemas integrados tienen aplicaciones muy diversas. Algunas reas de aplicacin de los sistemas integrados
son los de telecomunicaciones, tarjetas inteligentes, misiles y satlites, redes de computacin, electrnica digital
de consumo y automviles. La figura 1.9 muestra las aplicaciones de sistemas embebidos en estas reas.
Un fev." Ejemplos de aplicaciones de sistemas integrados a pequea escala son como sigue:
1. Terminales de punto de venta: mquinas expendedoras automticas de chocolate
2. Controladores de motor de pasos para un sistema robtico
3. Lavado o sistemas de coccin
4. Juguetes de multitarea
5. Basado en microcontrolador o multidisplay nico medidor de panel digital de tensin, corriente,
resistencia y frecuencia
6. Controlador de teclado
7. MMI, SD y tarjetas de acceso a la red
8. Unidad de CD-ROM o controlador de disco duro

Los sistemas integrados

9.

Los controladores de perifricos de ordenador, por ejemplo, un controlador de pantalla CRT, un controlador
de teclado, una controladora DRAM, un controlador DMA, un controlador de impresora, un controlador
de impresora lser, una LAN Controller, un controlador de unidad de disco
10. Fax o fotocopia o una impresora o un escner, mquina
11. Remoto (controlador) de TV
12. Telfono con memoria, pantalla y otras sofisticadas caractersticas
Smart
Tarjetas

Telecom

Yo

Misiles y
Los satlites

Un

Sg

Yo

- La informtica mvil
- Acceso mvil

(a)
Los sistemas de redes de
computadoras
y
perifricos

Yo
- Sistemas de redes
- Procesamiento
de
imagen
- Impresoras
- Tarjetas de redes
- Monitores y pantallas

M>

Y
o

- La banca
- La
Digital
seguridad
Consumidor
Electrnica
(b)

-DVD
- Set top boxes
- Televisores de alta
definicin
- Cmaras digitales
(e)

Un

Yo
- Defensa
- Industria
aeroespacial
- Comunicacin
(c)
Automocin

Yo
- Sistema de control del motor
- Control de crucero
- Seguridad Cuerpo/motor
- En la lnea de montaje de
robtica
- Entretenimiento para coche
- Car Multimedia

(0
Fig. 1.9 Aplicaciones de los sistemas embebidos en diversas zonas

13. Los sistemas de control del motor (por ejemplo, un control preciso de la velocidad y la posicin del motor
de D.C., el robot y la mquina CNC; aplicaciones de automocin como lazo cerrado de control del motor,
el control dinmico de la conduccin, y un sistema de frenado antibloqueo monitor
14. Adquisicin de datos electrnicos y sistema de control.
15. Los instrumentos electrnicos, como un controlador de procesos industriales
16. Electrnica inteligente sistema de indicacin de peso y un registrador de humedad industrial cum controller
17. Sistema de almacenamiento digital de una forma de onda de la seal o para instalaciones elctricas o de
agua del sistema de lectura de contador
18; analizador de espectro
. ,r*19. Sistemas biomdicos como un ECG PANTALLA LCD cum grabadora, un grabador de clulas sanguneas
analizador de esperma, y un sistema de monitor de paciente
Algunos ejemplos de sistemas integrados a escala media son como sigue:

Introduccin a los sistemas integrados

20. Los sistemas de redes de computadoras, ejemplo de Tor, un router, un procesador front-end en un servidor,
un switch, un puente, un cubo y una puerta de enlace
21. Para aparatos de Internet, existen numerosos sistemas de aplicacin (i) Una inteligente operacin,
administracin y mantenimiento del router (IOAMR) en una red distribuida, y (ii) la tarjeta de cliente de
correo para almacenar los mensajes de correo electrnico y direcciones personales e inteligentemente
conectarse a un mdem o servidor
22. Sistemas de entretenimiento como un video juego y sistema de msica
23. Los sistemas bancarios, por ejemplo, cajeros automticos de banco y transacciones con tarjeta de crdito
24. Los sistemas de rastreo de seal, por ejemplo, una seal automtica tracker y un destino tracker
25. Sistemas de comunicacin como una tarjeta SIM de comunicacin mvil, un buscapersonas numrico, un
telfono mvil, un terminal de televisin por cable y un transceptor de fax con o sin un acelerador de
grficos
26. Filtrado de imgenes, procesamiento de imgenes, el reconocedor de patrones, procesamiento del habla y
del procesamiento de vdeo
27. Video juegos
28. Un sistema que se conecta a un PC de bolsillo para el conductor del automvil telfono mvil y un receptor
inalmbrico. A continuacin, el sistema se conecta a un servidor remoto de Internet o e-mail o a un
ordenador remoto a un ASP (application service provider)
29. Un gestor de informacin personal mediante frame buffers en dispositivos de mano
30. [un thin client thin client ofrece nodos sin disco con capacidad de arranque remoto!. Aplicacin de thinclient accede a un centro de datos de un nmero de nodos; en un laboratorio de Internet accede a Internet
a travs de lneas arrendadas en un servidor remoto.
31. Embedded firewall / router usando ARM7 / multiprocessor con dos interfaces Ethernet y soporte para
interfaces PPP, TCP/IP y UDP.
Ejemplos de sofisticados sistemas integrados son como sigue:
32. Los telfonos inteligentes mviles y sistemas informticos
33. Equipo mvil
34. Sistemas integrados para LAN inalmbrica y de los dispositivos de tecnologa convergente
35. Sistemas integrados para vdeo, vdeo interactivo, banda ancha IPv6 (Internet Protocol version 6) Internet
y otros productos, voz y vdeo en tiempo real o sistemas de procesamiento multimedia
36. Embedded entrelazado y sistemas de redes de alta velocidad (400 MHz), plus ultra de alta velocidad (10
Gbps) y un gran ancho de banda: routers, switches LAN, y gateways. San (Storage Area Network) y WAN
(Wide Area Networks)
37. Los productos de seguridad y la seguridad de la red de alta velocidad. Tasa Tasa de codificacin de
1.6 productos
EMBEDDED
Gigabit System-on-chip (SoC) Y EL USO DE LA TECNOLOGA DE

DISEO DE CIRCUITOS VLSI


ltimamente, se estn diseando sistemas integrados en un nico chip de silicio, llamado Sistema en chip (SoC),
una innovacin de diseo. SoC es un sistema en un chip VLSI que cumple todos los requisitos necesarios, as
como analgicas circuitos digitales, procesadores y software.
Un SoC pueden ser integrados con los siguientes componentes:
1. Procesador integrado o como GPP1P core
2. Los ncleos de procesamiento de propsito nico o varios procesadores.
3. Un protocolo de bus de red ncleo,
4. Una funcin de cifrado de unidad,

30

Los sistemas integrados

5. Las transformaciones de coseno discreto para aplicaciones de procesamiento de seal,


6. Recuerdos,
7. Mltiples soluciones de fuente estndar, llamado IP (Propiedad Intelectual), Ncleos,
8. Y de dispositivos lgicos programables FPGA (Field Programmable Gate Array) Ncleos,
9. Otra lgica y equipos analgicos.
Una aplicacin ejemplar de tal incrustado un SoC es el telfono mvil. Procesadores de propsito nico, ASIPs
e IPs en un SoC estn configurados para el proceso de codificacin y desciframiento, marcando la modulacin,
demodulacin, interconectando el teclado y varios line L.CD matrix muestra o pantalla tctil, almacenamiento de
datos y la recuperacin de datos desde la memoria. La figura 1.10 muestra un SoC que integra ASICs interna,
procesadores internos (ASIPs), memorias compartidas e interfaces de perifricos, sobre un bus comn. Adems de
un procesador, las memorias y los circuitos digitales con software integrado para aplicaciones especficas, el SoC
puede poseer los circuitos analgicos.

Un sistema en un chip
! Propsito nico:
Procesadores ; ri

Los autobuses
I1
DIGITAL

; ASIPS j
....... ----------------- : -----

|
!

; circuitos- 1
Temporizador. j
MUXs ......... ;

(
; ; IPs
La direccin de datos j
1 generador :
------ Tr -------------------- ...
I PROGRAMA :
Yo
Direccin :
! Generador :
' ' ' ................. ..........
Yo
Yo
MULTIProcesador 1 |
Yo DSP : j
[ 1 - -

: PUERTO ;
INTERFACES :

J
Yo
Programa |
Datos
Y EL PUERTO
La memoria

Yo DMAC

|
J
Yo

- -

.... -................ Ll_ ..


Interrumpir
! CONTROLLER
1

ANALOG
1 circuitos,

JI

: A/D :

; GPP :
----------------- J
: FIASH :
O E2PROM.

- 15-20%
rea

-60%
rea

-20-25%
rea

Fig. 1.10 Un sistema incorporado de SoC y su bus comn con interna ASIPs, procesadores internos, IPs, memorias
compartidas e interfaces de perifricos

Introduccin a los sistemas integrados

1.6.1 Aplicaciones especficas (ASIC) IG


ASICs estn diseados utilizando las herramientas de diseo de circuitos integrados con el procesador GPP o
ASIP y circuitos analgicos incrustado en el diseo. El diseo se realiza mediante la automatizacin del diseo
electrnico (EDA) herramienta. [Para el diseo de un ASIC, un lenguaje de diseo de alto nivel (HDL) se utiliza|.

1.6.2 IP Core
En un chip VLSI, puede existir la integracin de componentes de alto nivel. Estos componentes poseen gate-nivel
sofisticacin en circuitos por encima de la encimera, registrar, multiplicador, el funcionamiento de la unidad de
punto flotante y ALU. Una solucin estndar de cdigo fuente para la sntesis de un componente de alto nivel
mediante la configuracin de una FPGA o un ncleo de VLSI circuito puede estar disponible como una propiedad
intelectual, llamado (IP). El diseador o la empresa de diseo mantiene el copyright sobre el diseo sintetizado de
un componente de alto nivel para la ejecucin a nivel de la compuerta de una IP. Uno podra tener que pagar
regalas por cada chip enviado. Un sistema integrado puede incorporar varias IPs.
Una direccin IP puede proporcionar hardwired diseo implementable de
una transformacin, un algoritmo de cifrado o descifrado de un algoritmo.
Una direccin IP puede proporcionar un diseo de filtrado adaptativo de una seal.
Una direccin IP puede proporcionar un diseo para la aplicacin de Protocolo de transferencia de
hipertexto (HTTP) o el protocolo de transferencia de archivos (FTP) o protocolo Bluetooth para
transmitir una pgina web o un archivo en Internet.
Una IP puede ser diseado para un controlador de bus PCI o USB. [secciones 3.10.3 y 3.12.2]

1.6.3 FPGA con uno o varios procesadores


Supongamos un sistema integrado est diseado con miras a mejorar las funcionalidades en el futuro. Un FPGA
es luego usada en los circuitos. Se compone de un gran nmero de puertas programable en un chip VLSr. Hay una
serie de puertas en cada clula, llamado FPGA macro celda. Cada clula tiene varias entradas y salidas.
Interconexin de todas las celdas como un array (matriz). Cada interconexin es programable a travs de la RAM
asociada en una herramienta de programacin de FPGA. Una FPGA puede utilizarse con un nico o mltiples
procesadores.
Examinar los algoritmos para las siguientes: Transformada de Fourier (FT) y su inversa (1FT), DFT o la
transformada de Laplace y su inversa, la compresin o descompresin, cifrar o descifrar, reconocimiento de
patrones especficos (para el reconocimiento de una firma o huella dactilar o la secuencia del ADN). Podemos
configurar un algoritmo en las puertas de la lgica de la FPGA. Da hardwired aplicacin para una unidad de
procesamiento. Es especfico para las necesidades del sistema integrado. Un algoritmo del software incorporado
puede implementar en una de las secciones de FPGA y otro algoritmo en su seccin.
FPGA ncleos con una sola o varias unidades del procesador en chip son utilizados. Un ejemplo de ese ncleo
es Virtex-Il FPGA Xilinx XC2VP Pro125. XC2VP125 de Xilinx tiene lgica 125136 clulas en la FPGA con
cuatro IBM PowerPCs. Se ha utilizado como una solucin de seguridad de datos con motor de cifrado y la
velocidad de datos de 1,5 Gb/s. Otros ejemplos de sistemas integrados con lgica integrada son matrices de FPGA
DSP-enabled, vdeo en tiempo real de los sistemas de procesamiento y eliminadores de lnea echo para las redes
de telecomunicacin pblica conmutada (PSTN) y las redes de conmutacin de paquetes. [Un paquete es una
unidad de un mensaje o un fluir datos de modo que se pueda seguir una ruta programable entre el nmero de abrir
rutas opcionales disponibles en una instancia].

Los sistemas integrados

1.7

Diseo de sistemas complejos y procesadores

1.7.1 Incrustacin de un microprocesador


Un microprocesador procesador de propsito general puede estar incrustado en un chip VSLI. La tabla 1.4 enumera

las diferentes secuencias de microprocesadores embebidos en un complejo sistema de diseo.


Tabla 1.4 Importante microprocesadores utilizados en sistemas integrados

Familia de
microprocesadores

Fuente

CISC o RISC o ambas funciones

68HCxxx

Motorola

CISC

80x86

Intel

CISC

El flujo 3

SPARC

Sun

RISC

Secuencia 4

El brazo

El brazo

Stream
Stream I
Secuencia 2

Funcionalidad con CISC RISC

1.7.2 Incrustar un microcontrolador


Microcontrolador VLSI ncleos o chips para sistemas integrados son generalmente entre las cinco corrientes de
familias dadas en la Tabla 1.5.
Tabla 1.5 Principales microcontroladores* utilizados en los sistemas integrados

Stream
Secuencia
1
Secuencia
2
El flujo 3
Stream 4'

Familia de microcontroladores

Fuente

CISC o RISC o ambos

68Ixx HCI. HCI2xx. HCI6xx

Motorola

CISC

8051. MX 8051

Intel. Philips

CISC

PIC I6F84 o 16C76, 16F876 y el PIC 18

Microchip

CISC

Mejoras de microcontrolador CORTEX-M3,


ARM9/ARM7 de Philips, Samsung y ST
Microelectronics

Brazo, Texas. Philips,


Samsung y ST
Microelectronics, etc.

Ncleo RISC con CISC


funcionalidad

Otros microcontroladores populares son como sigue: (i) la familia y HSx Hitachi SuperH 7xxx. (ii) Mitsubishi 740,7700, Ml6CY
M32C familias, (iii) la National Semiconductor COP8 y CR16 /!6C. (iv) Toshiba TLCS 900S (v) Texas Instruments MSP 430 para
sistema basado en una batera de bajo voltaje, (vi) Samsung SAM8. (vii) Ziglog eZ80 y Z80

1.7.3

Incrustacin de un DSP

Un procesador de seal digital (DSP) es un ncleo de procesador o Chip para las aplicaciones que procesan las
seales digitales. [Por ejemplo, el filtrado, la cancelacin de ruido, eliminacin de eco, compresin y cifrado
aplicaciones.] as como un microprocesador es la unidad ms fundamental de un sistema informtico, un DSP es
unidad esencial del embedded

33

Introduccin a los sistemas integrados

Sistema en un gran nmero de aplicaciones que necesitan procesamiento de seales. Las aplicaciones son
ejemplares en procesamiento de imgenes, multimedia, audio, video, HDTV, mdem DSP de telecomunicaciones
y sistemas de procesamiento. DSPs tambin encontrar su uso en sistemas de reconocimiento de patrones de imagen
o secuencia de ADN.
DSP como un archivo .ASIP es un nico chip o ncleo en una unidad VLSI. Incluye las prestaciones
informticas de un microprocesador y se multiplican y se acumulan (MAC) unidades. Un tpico MAC tiene una
unidad MAC 16 x 32.
DSP se ejecuta en tiempo discreto, instrucciones de procesamiento de seales. Tiene muy grandes (Palabra
de instrucciones VLIW) capacidades de procesamiento; procesa Single Instruction Multiple Dala (SIMD) las
instrucciones; los procesos de transformacin de coseno discreta (DCT) e inversa DCT (IDCT) funciones. Estas
ltimas son utilizadas en los algoritmos para el anlisis de la seal, la codificacin, el filtrado, la cancelacin de
ruido,Cuadro
eliminacin
de eco, comprimir
etc.
1.6 Importante
procesadorydedescomprimir,
seal digital utilizado
en los sistemas integrados
DSPs importantes para sistemas integrados son de las tres secuencias dadas en la Tabla 1.6.
Stream

Familia de DSP

Fuente

Secuencia 1

TMS320Cxx OMAP1

Secuencia 2
Stream .3

Tiger SHARC
5600xx

Texas
El dispositivo
analgico.
Motorola

Secuencia 4

PNX 1300, 15002

Philips

Por ejemplo, el sistema TMS320C62xx de un punto fijo de 200 MHz DSP (Seccin 2.3.5).
Procesador de medios multimedia, que adems de operaciones de DSP, tambin los datos de la secuencia de procesamiento
de paquetes de red.
2

1.7.4 Incrustar un RISC


Un microprocesador RISC proporciona el rpido procesamiento de instrucciones, cada una de ellas en un solo

ciclo de reloj. Esto facilita la canalizacin y procesamiento superescalar. Adems capacidades muy mejoradas
antes mencionados, hay un gran aumento de la velocidad en la que una instruccin de un conjunto es procesada.
Pulgar'10 conjunto de instrucciones es un nuevo estndar de la industria que da tambin una reduccin en la
densidad del cdigo ARM procesador RISC. RISCs se utiliza cuando el sistema necesita realizar clculo intensivo,
por ejemplo, en un sistema de procesamiento de voz.

1.7.5 Incrustar un ASIP


Pisa es un procesador con un conjunto de instrucciones diseadas para reas de aplicacin especficas en un VLSI
chip o ncleo. Microcontrolador ASIPexainples son, DSP, 10, medios de comunicacin, red u otro procesador
especfico del dominio.
Utilizando las herramientas de diseo de circuitos integrados, la ASIP con conjuntos de instrucciones
necesarias en las reas de aplicacin especficas pueden ser diseadas. La ASIP est programado siguiendo las
instrucciones de las siguientes funciones: DSP, seales de control processi ng, transformaciones de coseno
discreto, y el protocolo de comunicacin de filtrado adaptativo-funciones de ejecucin.

1.7.6 Incrustacin de un multiprocesador o Dual Core utilizando GPPs


En un sistema integrado, varios procesadores o procesadores dual core pueden ser necesarios para ejecutar un
algoritmo rpido dentro de un plazo estricto. Por ejemplo, en el procesamiento de vdeo en tiempo real, el nmero
de operaciones necesario MAC por segundo puede ser ms de lo que es posible a partir de una unidad DSP. Un
sistema incorporado luego incoiporatjjs dos o ms procesadores que ejecutan en la sincronizacin. Un ejemplo del
uso de varias ASIPs es la televisin de alta definicin de procesamiento de seales. [alta definicin significa que
las seales son procesadas por un libre de ruidos y eco-cancelado la transmisin, planas y para obtener una imagen
de alta resolucin (1920 x 1020 pxeles) en la pantalla de la televisin.] un telfono celular o una cmara digital
es otra aplicacin con mltiples ASIPs.

! 34

Los sistemas integrados

En un telfono celular, un nmero de tareas que han de realizarse: (a) la seal del habla-compresin y
codificacin, marcado (B) (c) la modulacin y demodulacin de transmisin (D) y (e) de la seal de recepcin de
decodificacin y descompresin (f) Interfaz del teclado y manejo de interfaz de pantalla (g) El servicio de mensajes
cortos (SMS) es un protocolo de mensajera basado en (H) Visualizacin de mensajes SMS. Para todas estas tareas,
un nico procesador no es suficiente. Convenientemente sincronizado se utilizan varios procesadores.
Considere la posibilidad de un sistema de videoconferencia. En este sistema, una cuarta parte de formato
intermedio comn cuarto--CIF es utilizado. El nmero de pxeles de la imagen es de 144 x 176, frente a 525 x 625
pxeles en una imagen de vdeo en el televisor. Incluso entonces, las muestras de la imagen tienen que ser tomados
a una tasa de 144 x 176 x 30 = 760320 pxeles por segundo y tienen que ser procesados por compresin antes de la
transmisin de las telecomunicaciones o en una red privada virtual (VPN). [Nota: El nmero de fotogramas por
segundo 25 o 30 (segn la norma adoptada) para real
Mltiples procesadores o procesadores dual core son utilizados cuando un solo microprocesador no satisfacen
las necesidades de las diferentes tareas que se ejecutan de forma simultnea. Las operaciones de todos los
procesadores estn sincronizados para obtener un rendimiento ptimo.

1.7.7 Procesador Embebido/microcontrolador incrustado


Un procesador incorporado es un procesador con caractersticas especiales que le permiten incorporar mltiples
procesos en el sistema.
Procesamiento de imgenes en tiempo real y la aerodinmica son dos reas donde el rpido, preciso y clculo
intensivo y rpido cambio de contexto (de un programa a otro) son esenciales. Procesador incorporado es el trmino
usado a veces para un procesador que ha sido especialmente diseado que tiene las siguientes funciones:
1. Rpido cambio de contexto y, por lo tanto, menores latencias de las tareas complejas en aplicaciones de
tiempo real. [4.6] Seccin de rpido cambio de contexto significa que el llamado programa o servicio
interrumpido la rutina de guardar y recuperar registros de la CPU Fast |Seccin 4.6].
2. 32-bit o 64-bit de suma y multiplicacin, atmica y ningn problema de datos compartidos en las
operaciones con grandes operandos con cada operando colocados en dos o cuatro registros. |Seccin 7.8.1
]
3. Ncleo RISC de 32 bits para un rpido, ms preciso y clculos intensivos por el software incorporado.
Microcontrolador integrado es el trmino usado a veces para microcontroladores especialmente diseados que
han
Las siguientes capacidades:
1. Cuando un microcontrolador dispone de RAM interna, grande o ROM flash, temporizador, manejador de
interrupcin, dispositivos y perifricos, y no hay memoria externa o dispositivo o perifrico requerido para
la aplicacin dada.
2. Rpido cambio de contexto y, por lo tanto, menores latencias de las tareas complejas en aplicaciones de
tiempo real. Por ejemplo, el brazo y microcontroladores 68HClx guardar todos los registros de la CPU fast
Un procesador incorporado es un trmino usado para procesadores con un procesamiento rpido, rpido cambio
de contexto y ALU operaciones atmicas. Un microcontrolador incrustado es el trmino utilizado para un
microcontrolador que tiene la RAM interna, grande o ROM flash, temporizador, manejador de interrupcin,
dispositivos internos y perifricos internos y no hay memoria externa o dispositivo o perifrico requerido para la
aplicacin dada.

Introduccin a los sistemas integrados

35

Los procesadores integrados de sistemas complejos Cuadro 1.7 ofrece diferentes


procesadores que pueden integrar en un sistema complejo.
Cuadro 1.7 Procesadores en complejos sistemas integrados

Procesador
Microprocesador de
propsito general

Microcontrolador

DSP

Procesadores de
propsito nico y
especfico de la
aplicacin procesador
del sistema
Procesador de doble
ncleo

Aplicacin
Cuando se requieren
clculos intensivos, las
cachs son utilizados y
canalizacin y
superescalar y grandes
son necesarias
operaciones de software
incrustado se localiza en
los ncleos o chips de
memoria externa.
Se utiliza con memoria
interna, dispositivos y
perifricos y software
incorporado cuando se
encuentra en el interior
de la ROM o flash.
Se utiliza con
instrucciones
relacionadas con
procesamiento de seal
para filtros, imagen,
audio y video codec y
operaciones.
10 y el control de las
operaciones de
autobuses y perifricos y
dispositivos.

Para mejorar
significativamente el
rendimiento del sistema.

Accelerator
Para acelerar la
ejecucin de cdigos. Un
coprocesador de punto
flotante acelera operaciones
matemticas y Java 1
acelerador
acelera la ejecucin
del cdigo Java.

Ventaja
No hay costo de
ingeniera para disear el
procesador.

Desventaja
Las unidades de
ejecucin redundante
adicional que no son
necesarios en el
diseo del sistema

No hay costo de
ingeniera para disear el
procesador interno
niemoty, dispositivos y
perifricos.

Otros
Los costes de
fabricacin y
aplicacin redundante
de unidades que no
sean necesarios en el
diseo del sistema.
Coste de fabricacin
puede ser alto.

No hay costo de
ingeniera para disear
El procesador de seal.

Se admiten otras
unidades de
procesamiento en el
sistema y ejecutar
procesos rpido de
hardware especfico.
Reducidos costes de
ingeniera.

Mejora el rendimiento
mediante el coprocesamiento con el
procesador principal.

En casa costo de
ingeniera de
desarrollo, los pagos
de regalas para un IP
core de procesador y
tiempo-costo de
mercado.
El
coste de
fabricacin, como los
procesadores de doble
ncleo son costosos.
' coste de ingeniera
de desarrollo o
regalas para IP core
de procesador y
tiempo-costo de
mercado.

Los sistemas integrados

Un DSP para telfonos mviles, por ejemplo, OMAP de Texas Instruments, utiliza los mtodos eficaces de
disipacin de potencia de conmutacin dinmica tanto para la fuente de alimentacin de voltaje y frecuencia de
funcionamiento del ncleo de la CPU.
Para una serie de aplicaciones, los DSPs ncleos pueden no ser suficientes. Dominio ASIPs especficos tienen
conjuntos de instrucciones especficas. Para IOs. red, medios o aplicaciones de seguridad, smart card, video juego,
palm top computadora, telfono celular, internet mvil, sistemas embebidos de mano. Gbps transceptores, Gbps
sistemas LAN, satlite o sistemas de misiles, necesitamos unidades de procesamiento especiales en un circuito VLSI
diseado para funcionar como un procesador con un conjunto de insiruction programabilidad. Estas unidades
especiales se denominan ASIP especficos del dominio.

1.7.8 Incrustacin de procesador ARM


Ejemplos de Stream 4 GPP en la Tabla 1.4 son 7 brazo y brazo 9. El ncleo de estos procesadores pueden estar
integrados en un chip o VLSI una SoC. Un brazo-procesador VLSI-arquitectura est disponible como un chip de
CPU o para integrarlo en VLSI o SoC. ARM, Intel y Texas Instruments y varias otras compaas han desarrollado
dichos procesadores. ARM provee funcionalidad con arquitectura CISC RISC en el ncleo. Los ncleos de ARM7,
ARM9
y sus
mejoras
DSP
estn
disponibles
para
incrustar
en
systeins.
[Consulte
http:/ www.ti.com/sc/ /docs/niodules asic/arm7.htm y arm9.htm].
El brazo se integra con otras caractersticas (por ejemplo DSP) en Nueva GPPs, que estn disponibles de varias
fuentes, por ejemplo, Intel y Texas Instruments. Brazo ejemplar 9 aplicaciones son cajas de instalacin, cable mdem
y conexin inalmbrica a dispositivos como telfonos mviles.
ARM9 tiene un ciclo nico de 16 x 32 Se acumulan mltiples unidad. Funciona a 200 MHz. Utiliza 0.15 pm
CMOSs GS30. Tiene cinco etapas. Incorpora Ncleo RISC con CISC funciones. Se integra con un DSP .vlien ASIC
diseado para una solucin. Un ejemplo es su integracin con es DSP TMS320C55x de Texas Instruments. (Consulte
http:/www.ti.com/sc/docs/asic/modules/arrn7.htm y arm9.htm]
Un menor rendimiento pero muy popular versin de ARM9 es ARM7. Funciona a 80 MHz. Utiliza 0.18 pm pm
CMOSs basado GS20. Usando ARM7, ARM9 y Cortex-M3, un gran nmero de sistemas embebidos odio
recientemente disponibles.
ltimamente, una nueva clase de sistemas integrados ha surgido que adems incorpora ASSP chips o ncleos
en su diseo.

1.7.9 Incrustacin de ASSP


Suponer que existe un sistema integrado de procesamiento de vdeo en tiempo real. Surge el procesamiento en tiempo
real para televisin digital, decodificadores de TV de alta definicin, configuracin de los cuadros. DVD (Digital
Video Disc) jugadores, telfonos web, videoconferencia y otros sistemas. Un ASSP dedicado a estas tareas
especficas solo proporciona una rpida solucin. El ASSP est configurado y conectado con el resto del sistema
integrado.
Suponer que existe un sistema integrado que utiliza un protocolo especfico, interconexiones, sus unidades a
travs de la arquitectura de bus especfico a otro sistema. Adems, suponer que el cifrado y el descifrado adecuada
es necesaria. [La salida bit stream Encryption protege los mensajes o diseo de transferir a una entidad externa
desconocida.] para estas tareas, adems de la incrustacin del software, tambin puede ser necesario incorporar
algunas caractersticas de las RTO [1.4.6]. Si el software solo se utiliza para las tareas anteriores, puede tomar ms
tiempo que una solucin cableada para un procesamiento especfico de aplicacin. Un ASSP chip proporciona una
solucin de ese tipo. Por ejemplo, un chip [ASSP de i2Chip (http://www.i2Chip.com)] tiene un TCP, UDP, IP, ARP
y Ethernet 10/100 MAC (Media Access Control) lgica cableada incluida en ella. El chip de i2Chip, W3I00A, es una
exclusiva solucin de conectividad a Internet con cable. Mucho de la pila TCP/IP necesita software de procesamiento
para tareas de red est disponible como una solucin cableada. Esto proporciona una salida cinco veces ms rpido
que una solucin de software mediante el sistema de GPP. Tambin es un RTOS, menos solucin. Utilizando el
mismo microcontrolador incrustado en el sistema para que este chip ASSP

Introduccin a los sistemas integrados

37

Interfaces Ethernet, conectividad pueden bo aadido. Otro ASSP, que ya est disponible, es el 'serial-lo-Ethcrnet
Converter (IIM7I00). Lo hace en tiempo real por el hardware de procesamiento de datos pila de protocolo. No
necesita ningn cambio en la aplicacin de software o firmware ami proporciona el ms barato y ms pequeosolutinn RTOS.
Un ASSP se utiliza como unidad de procesamiento adicional para ejecutar tareas especficas de aplicacin en
lugar de transformacin utilizando el software incorporado.

" Proceso de diseo 1.8 en sistemas embebidos


Los conceptos utilizados durante un proceso de diseo son como sigue.
1. Abstraccin: cada componente con problemas primero se abstrae. Por ejemplo, en el diseo de un
sistema robtico, el problema de la abstraccin puede ser en trminos de control de los armamentos y
motores.
2. Arquitectura de hardware y software: Arquitecturas deben comprenderse bien antes de un diseo.
3. Propiedades funcionales adicionales: funcionalidades extra que se requiere en el sistema estn
desarrollados deben ser bien entendidos por el diseo.
4. Relacionado con el sistema de los diseos de la familia: Familias de sistemas conexos desarrollado
anteriormente debe ser takenrfnto consideracin durante el diseo.
5. Diseo modular: diseo modular conceptos deben ser utilizados. El diseo del sistema es rpido por la
descomposicin del software en mdulos que se van a implementar. Los mdulos deben ser tales que
pueden ser compuestos (acoplados o integrada) ms adelante. Diseo modular efectivo debe garantizar
la efectiva independencia de funcin (i), (ii) (iii) la cohesin y acoplamiento.
(a) Los mdulos deben ser claramente entendidos y deben mantener la continuidad.
(b) Asimismo, son necesarias estrategias de proteccin adecuado para cada mdulo. Un mdulo no est
autorizado a cambiar o modificar la funcionalidad de otro mdulo. Por ejemplo, la proteccin de un
controlador de dispositivo modificando la configuracin de otro dispositivo.
6. Mapeo: mapeo en diferentes representaciones se realiza a partir de los requisitos del software. Por
ejemplo, el flujo de datos en la misma ruta durante el flujo del programa puede asignarse
conjuntamente como una sola entidad. Asignacin de transaccin y transformacin de los procesos de
diseo son utilizadas en el diseo. Por ejemplo, una imagen es la entrada de datos a un sistema: puede
tener un nmero diferente de pixels y colores. El sistema no procesa cada pxel y color por separado.
Asignacin de transformacin de imagen se realiza mediante algoritmos de compresin y
almacenamiento apropiado. Asignacin de transaccin se realiza para definir la secuencia de imgenes.
7. El diseo de la interfaz de usuario: el diseo de la interfaz de usuario es una parte importante del diseo.
Las interfaces de usuario estn diseados segn las necesidades de los usuarios, anlisis del entorno y
las funciones del sistema. Por ejemplo, en una mquina expendedora automtica de chocolate (ACVM)
del sistema, la interfaz de usuario es una pantalla grfica LCD multilnea. Puede mostrar un mensaje de
bienvenida, as como especificar las monedas necesarias para insertarse en la mquina para cada tipo
de chocolate. El mismo ACVM pueden ser diseados con pantalla tctil de interfaz de usuario (GUI), o
puede ser diseado con interfaces de usuario de voz (VUIs). Cualquiera de estos diseos de interfaz tiene
que ser validada por el cliente. Por ejemplo, el cliente ACVM que instala la mquina debe validar el
idioma del mensaje y los mensajes que se mostrarn antes de un diseo de interfaz puede proceder a la
etapa de ejecucin.
8. Mejoras: cada componente y mdulo de diseo debe ser refinada iterativamente hasta que se convierte
en el
Ms apropiadas para su aplicacin en el equipo software.
,jis
El proceso de diseo de software puede requerir el uso de lenguaje de descripcin de arquitectura (ADL). Se
utiliza para representar los siguientes: Jerarqua de control (i) (ii) (iii) Particin estructural Estructura y jerarqua
de datos
(iv) Los procedimientos de software.

38

Los sistemas integrados

La figura 1.11 muestra las actividades para el ciclo de diseo de software durante un proceso de desarrollo de
software integrado y el ciclo puede repetirse hasta las pruebas demuestran la verificacin de especificaciones.
Desarrollo
Proceso
/analyze modelo
Requisitos de
Sistema

Uno
La vida
Ciclo

Diseo
Estructura de datos,
software
Arquitectura, Interfaces
Y algoritmos

Linear
Secuencia

Aplicacin
De diseo

Prueba
Lgica interna y
Funciones externas

Fig. 1.11 Las actividades para el diseo de software durante un proceso de desarrollo de software integrado

1.8.1 Parmetros de diseo


Un proceso de diseo toma en cuenta parmetros de diseo. Hay varios parmetros de diseo para un sistema
incorporado
Y estos se muestran en la Tabla 1.8.

1.8.2 Abstraccin de pasos en el proceso de diseo


Proceso de diseo se denomina de abajo a arriba diseo si se construye a partir de los componentes. Un
proceso de diseo
Llamado de arriba a abajo diseo si primero inicia con la abstraccin del proceso y, a continuacin, despus de la
abstraccin
Los detalles son creados. De arriba a abajo enfoque de diseo es el enfoque ms favorecida. A continuacin se
enumeran los cinco
Los niveles de abstraccin de arriba a abajo en el proceso de diseo:

Introduccin a los sistemas integrados

(I} Requisitos: definicin y anlisis de requisitos del sistema. Es slo por una completa claridad de propsito, entradas, salidas, funcionamiento,

(cuadro 1.8) y vaiulation requisitos para finalmente desarrollado sistemas especificaciones


que un sistema bien diseado puede ser creado. Tiene que haber coherencia en los requisitos.
diseo metrics

Tabla 1.8 parmetros de diseo utilizados en los sistemas integrados

Parmetros de diseo
Descripcin
Disipacin de
Para muchos sistemas, especialmente los sistemas que funcionan a batera, como el
potencia
telfono mvil o cmara digital la potencia consumida por el sistema es una caracterstica
importante. La batteiy necesita ser recargada con menos frecuencia si la disipacin de
potencia es pequea.
Rendimiento
Instrucciones en tiempo de ejecucin el sistema mide el rendimiento. Menor tiempo de
ejecucin significa un mayor rendimiento. Por ejemplo, un telfono mvil, procesado de
seales de voz entre la antena y el altavoz en 0,1 s muestra el rendimiento del telfono.
Considerar otro. Por ejemplo, una cmara digital, disparar una imagen fija de 4M de
pxeles en 0.5s muestra el rendimiento de la cmara.
Plazos de proceso

Tamao de las

Hay una serie de procesos en el sistema, por ejemplo, el procesamiento de entrada de


teclado, pantalla grfica actualizar, procesamiento de seales de audio y procesamiento
de seales de vdeo. Estos tienen plazos dentro de los cuales cada uno de ellos puede ser
necesaria para terminar los clculos y dar resultados.
Estos incluyen teclado gui y VUIs.

interfaces de usuario Tamao del sistema se mide en trminos de (i) el espacio fsico necesario, (ii) en kB de
RAM y memoria flash interna requisitos en MB o GB para ejecutar el software y para el
almacenamiento de datos y (iii) nmero de millones de puertas lgicas en el hardware.
Costo de ingeniera
Costo inicial de desarrollar, depurar y probar el hardware y el software se denomina costo
de ingeniera y es un momento de costes no recurrentes.
Coste de fabricacin Coste de fabricacin de cada unidad
flexibilidad

Flexibilidad en el diseo permite, sin ningn coste significativo para la ingeniera, el


desarrollo de las diferentes versiones de un producto y las versiones avanzadas ms
adelante. Por ejemplo, mejora software agregando funciones adicionales requeridas por
el entorno cambiante y la reingeniera de software.

Desarrollo de

Tiempo en das o meses para desarrollar el prototipo y pruebas internas para

prototipos time-to-

funcionalidades del sistema. Incluye el tiempo de ingeniera y realizar el prototipo de

market

tiempo.
Tiempo en das o meses despus de que el desarrollo de prototipos para poner un
La
seguridad
en trminos
de cadas accidentales desde la mano o una tabla,
producto
paradel
los sistema
consumidores
y usuarios.
el robo (por ejemplo, un telfono capacidad de bloqueo y rastreo de capacidad) y en
trminos de seguridad para el usuario cuando se utiliza un producto (por ejemplo,
automviles o freno motor).
Mantenimiento significa mutabilidad y adiciones al sistema; por ejemplo, aadir o
actualizar el software, los datos y el hardware. Ejemplo de software de mantenimiento es
servicio adicional o la funcionalidad del software. Ejemplo del mantenimiento de datos
es adicional'ring-iifries, wallpapers, video-clips en el telfono mvil o la tarjeta de
ampliacin expiiy fecha en caso de tarjeta inteligente. Ejemplo del mantenimiento del
hardware es la memoria adicional o cambiar la memory stick en el ordenador porttil y
la cmara digital.

El sistema y la
seguridad del
usuario.
Mantenimiento

Los sistemas integrados

(2) Especificaciones:

especificaciones claras del sistema requerido se debe.


Especificaciones deben ser lo precisa. Gua de especificaciones para las expectativas de
los clientes del producto. Asimismo, el sistema de gua de la arquitectura. El diseador
necesita especificaciones para (i), por ejemplo, hardware, perifricos, dispositivos
especificaciones de procesador y memoria, (ii) los tipos de datos y especificaciones de
procesamiento, (iii) el comportamiento esperado del sistema especificaciones, (iv) las
limitaciones de diseo, y (v) el ciclo de vida esperado de las especificaciones. Las
especificaciones del proceso son analizados por hacer listas de entradas a eventos,
salidas en eventos y cmo los procesos activar en cada evento (interrupcin).
(3) Arquitectura: diseos para el modelado de datos de atributos de estructura de datos,
flujo de datos grficos (Seccin 6.2), los modelos de programa (seccin 6.1), las capas
de la arquitectura de software y arquitectura de hardware estn definidos. Capas de
arquitectura de software son como sigue:
1. La primera capa es un diseo arquitectnico. Aqu, el diseo de la arquitectura del sistema es
desarrollado. Se plantea la cuestin de cmo los diferentes elementos de las estructuras de datos, bases
de datos, algoritmos, funciones de control, las funciones de transicin de estado, proceso de datos y
flujo de programa sern organizadas.
2. La segunda capa se compone de datos de diseo. Las preguntas en esta etapa son como sigue. Qu
diseo de estructuras de datos y bases de datos sera ms apropiado para el problema dado? Si los datos
se organiza como una estructura tipo rbol- ser el adecuado? Cul ser el diseo de los componentes
de los datos? [Por ejemplo, el vdeo de la informacin tendr dos componentes, la imagen y el sonido.
|
3. El tercer nivel consiste en el diseo de la interfaz. Preguntas importantes en esta etapa son como sigue.
Cules sern las interfaces para integrar los componentes? Cul es el diseo para la integracin de
sistemas? Cul ser el diseo de interfaces utilizadas para tomar insumos de los objetos de datos, las
estructuras y las bases de datos y para la entrega de los productos? Cul ser la estructura portuaria
para recibir entradas y salidas de transmisin?
(4) Componentes: la cuarta capa es un diseo a nivel de componentes. La cuestin en esta

etapa es como sigue. Cul ser el diseo de cada componente? Hay un requisito
adicional en el diseo de sistemas integrados, que cada componente debe ser
optimizado para el uso de memoria y la disipacin de energa. Los componentes de
hardware, procesos, interfaces y algoritmos. A continuacin se enumeran los
componentes de hardware comunes:
1. Procesador, ASIP y procesadores de propsito nico en el sistema
2. Memoria RAM, ROM o flash interno y externo o memoria secundaria en el sistema
3. Perifricos y dispositivos internos y externos al sistema
4. Puertos y buses en el sistema
5. Fuente de alimentacin o una batera en el sistema
Durante el proceso de desarrollo de software podemos modelar los componentes como orientado a objetos. El
cuadro 1.9 muestra las fases como componentes orientados a objetos basados en el proceso de desarrollo de software.
(5) Integracin de sistemas: construido componentes estn integrados en el sistema. Los

componentes pueden funcionar bien independientemente, pero cuando est integrada


puede no satisfacer los parmetros de diseo. El sistema est hecho para funcionar y
validado. Pruebas apropiadas son elegidos. Herramientas de depuracin son usados
para corregir funcionamiento errneo.
Cada uno de los componentes del sistema y su interfaz est integrada despus de la etapa de diseo. La ejecucin
del programa est en un idioma y puede utilizar un entorno de desarrollo integrado (IDE), cdigo fuente y
herramientas de ingeniera, que deberan seguir el modelo, arquitectura de software y especificaciones de diseo. La
sencillez del programa debe mantenerse durante el proceso de aplicacin.

Introduccin a los sistemas integrados

41

Cuadro 1.9 componentes orientados a objetos basados en proceso de desarrollo de software.


I-ffon

Actividades

Deficiencia del modelo

Los componentes que pueden ser utilizados en el desarrollo de software


identificado Seleccin de clases disponibles (solo lgicamente la servidumbre

Necesidad de robustas
interfaces

Etapa 3

Componentes
biblioteca de recursos
grupos) desde soltware
un
Ordenar los componentes, los cuales estn disponibles y reutilizable por reingeniera y
Que no estn disponibles

En caso de desarrollo lento


y reutilizable

Etapa 4

Re-disear componentes y crear los componentes no disponibles

Fase 1 Fase 2

Fase 5 Fase 6

Los componentes no estn


disponibles en requerido
Nmeros

La construccin de los componentes de software y probarlos iterativamente


construir hasta la validacin final del software

Acciones en cada paso de la investigacin por parte de expertos en ingeniera de software


han demostrado que, en promedio, un diseador debe gastar alrededor del 50% del tiempo
para la planificacin, el anlisis y el diseo, el 40% de las pruebas, la validacin y la
depuracin y el 10-15% de la codificacin. Accin requerida para ser tomadas en cada paso
del proceso de diseo se muestran en la Tabla 1.10.
Cuadro 1.10 de las medidas que deben adoptarse en cada paso del proceso de diseo
Parmetros de diseo
Anlisis

Descripcin
Se analiza el diseo

Pasos para mejorar la El resultado del anlisis se utiliza para mejorar el diseo para satisfacer las especificaciones y
verificacin

parmetros de diseo del sistema debe ser verificado para asegurarse de que cumple con los
parmetros de diseo indicados en la Tabla 1.8

1.8,3 Retos en el diseo de sistemas integrados: optimizacin de parmetros


de diseo
Los siguientes son los problemas que surgen durante el proceso de diseo.
La cantidad y el tipo de hardware necesario: optimizar el requisito de microprocesadores, ASIPs y nico
propsito de procesadores en el sistema sobre la base del rendimiento, la disipacin de energa, costos y otros
parmetros de diseo son los desafos en el diseo del sistema. Un diseador tambin elige el hardware apropiado
(memoria RAM, ROM o flash interno y externo o memoria secundaria, perifricos y dispositivos puertos internos
y externos rido autobuses y fuente de alimentacin o batera) teniendo en cuenta las mtricas de diseo indicados
en la Tabla 1.8; por ejemplo, disipacin de energa, tamao fsico, nmero de puertas y la ingeniera, el desarrollo
de prototipos y los costes de fabricacin.
Optimiza el consumo y la disipacin de potencia: potencia, consumo durante el funcionamiento y estado de
inactividad del sistema debe ser ptimo. Los siguientes mtodos se utilizan para satisfacer los desafos de diseo.

Reduccin de la tasa de reloj disipacin de potencia normalmente reduce 2,5 pW por 100 kHz
de reduccin de velocidad de reloj. Por lo tanto, la reduccin de 8000 kHz a 100 kHz, reduce
la disipacin de energa por aproximadamente 200 pW, que es casi similar a cuando el reloj
no funciona. [Recuerde, el total de la potencia disipada (energa necesaria) no podrn
reducir. Esto es porque en la reduccin de la velocidad del reloj, los clculos se llevar ms
tiempo y energa total requerida es igual a la disipacin de energa por segundo multiplicado
por el tiempo de clculo).

42

__ ,

Los sistemas integrados

La potencia 25 |iW es tpicamente la disipacin residual necesaria para operar los temporizadores y algunas
otras unidades. Accionando el reloj a una frecuencia menor o durante el modo de baja potencia del procesador, las
ventajas son las siguientes: (i) prdida de potencia debido a la generacin de calor, (ii) reduce las interferencias de
frecuencia de radio tambin se reduce debido a la reduccin de la disipacin de energa dentro de las puertas.
[irradiada de Radiofrecuencia (RF) de energa depende de la corriente de RF dentro de una puerta, la cual se reduce
debido al aumento de la resistencia del estado "ON" y el canal de drenaje entre cada transistor MOSFET y que
reduce la generacin de calor.]

Reduccin de tensin en porttiles o dispositivos de mano, como un telfono celular,


comparado con 5 V FUNCIONAMIENTO, un circuito CMOS disipacin de potencia se reduce por
un sexto, ~(2V/5 V)2, 2,0 V en funcionamiento. As, los intervalos de tiempo necesarios para
la recarga de la batera aumenta por un factor de 6.
Espere, detener y deshabilitar la cach de instrucciones incorporado un sistema puede
necesitar que se ejecute continuamente, sin ser cortado; el diseo del sistema, por lo tanto,
est limitada por la necesidad de limitar la disipacin de energa mientras est encendida,
pero est en estado de inactividad. El consumo total de energa por el sistema mientras est
en marcha, esperando y estados inactivos deben ser limitados. Un microcontrolador debe
proporcionar para ejecutar esperar y dejar instrucciones para el modo de baja potencia. Una forma de
reducir la disipacin de potencia es ingeniosamente incorporar en el software y dejar de esperar instrucciones.
Otra es hacer funcionar el sistema en los ms bajos niveles de voltaje en el estado inactivo y seleccionando el modo
de apagado en ese estado. Otro mtodo es para desactivar el uso de ciertas unidades estructurales del procesador,
operaciones
pueden realizarse
en bajay tensin
o reduce
velocidad
de reloj para
el controlde
deestructura
disipacinque
por Las
ejemplo,
cachs-cuando
no es necesario
para mantener
enlaestado
desconectado
las unidades
de energa.
Para
embedded
system de
software,
anlisis
rendimiento
durantepor
su fase
de diseo
debe incluir
no son
necesarios
durante
la ejecucin
un programa
dede
software
en particular,
ejemplo,
temporizadores
o 10
tambin el anlisis de disipacin de potencia durante la ejecucin del programa y durante la espera. Un
unidades.
sistema integrado tiene que realizar tareas de forma continua de encendido a apagado e incluso pueden
mantenerse 'ON' continuamente. Clever la programacin de tiempo real utilizando 'WAIT' y 'Stop'
instrucciones y desactivacin de ciertas unidades, cuando no es necesario. Es un mtodo de ahorro de energa
durante la ejecucin del programa.

Proceso y plazos de cumplimiento del plazo de todos los procesos en el sistema manteniendo
la memoria, disipacin de potencia, velocidad de reloj del procesador y el coste al mnimo
es un reto.
Flexibilidad y capacidad de actualizacin flexibilidad y capacidad de actualizacin en el
diseo mientras mantiene el costo mnimo y sin ningn coste significativo para la ingeniera
es un reto. Flexibilidad y capacidad de actualizacin avanzada y permitir que diferentes
versiones de un producto que se introdujo en el mercado ms adelante.
Fiabilidad disear un producto fiable mediante un diseo adecuado, las pruebas y la
comprobacin en profundidad, es un verdadero reto. El objetivo de las pruebas es encontrar
errores y validar que el software est implementado segn las especificaciones y los
requisitos. La verificacin se refiere a una actividad para asegurarse de que determinadas
funciones se han implementado correctamente. La validacin se refiere a una actividad para
que el sistema que
se ha
creadoDEL
es segn
los requisitos acordados en la fase de
"asegurar
1.9 FORMALIZACIN
DEL
DISEO
SISTEMA
anlisis, y para asegurar su calidad.
Formalizacin del diseo del sistema se realiza mediante un enfoque de arriba abajo por la abstraccin (Seccin
1.8.2) y por detallando los requisitos y especificaciones de hardware y software

Introduccin a los sistemas integrados

43

Definicin de arquitecturas de hardware y software


Codificacin y ejecucin como por arquitectura
Pruebas, validacin y verificacin del sistema
Desde un modelo diagramticas borra los conceptos de diseo mejor que la abstraccin, un lenguaje de
modelado, formalizacin puede ser utilizado. El lenguaje de modelado Universal (UML) se utiliza. En UML, un
diseador describe lo siguiente:
1. Diagrama de 'Usuario', Diagrama de objetos Diagrama de 'Secuencia'', 'State', 'DIAGRAMA diagrama de
clase" y "Diagrama de actividad'
2. Clases y objetos que describen la identidad, atributos, componentes y comportamiento
3. Las herencias de las clases y objetos
4. Las interfaces de los objetos y su aplicacin a los objetos
5. Descripcin estructural de los componentes del diseo
6. Una descripcin del comportamiento en trminos de estados, el estado de la mquina y seales (Seccin
6.3)
7. Descripcin de los eventos.
La seccin 6.5 se describe en detalle de UML. Los captulos 11 y 12 describen el modelo ejemplos de diseo
en detalle.

1.10 Proceso de diseo y ejemplos de diseo


1.10.1 Ejemplos del proceso de diseo del sistema
Los captulos 11 y 12 se describen ejemplos de diseo en detalle.

1.10.2 Mquina expendedora automtica de Chocolate (ACVM)


Consideremos una mquina expendedora automtica de chocolate. Este interesante ejemplo dado aqu ayuda al
lector a entender varios conceptos de programacin de un sistema integrado como un sistema multitarea.
La figura 1.12 muestra la representacin esquemtica de ACVM. Supongamos que ACVM tiene los
siguientes componentes:
1. Tiene teclado numrico en la parte superior de la mquina. Que le permite al nio interactuar con l a la
hora de comprar un chocolate. El propietario tambin puede ordenar e interactuar con la mquina.
2. Tiene una unidad de pantalla LCD en la parte superior de la mquina. Muestra los mens, texto escrito
en el ACVM y pictogramas, bienvenida, gracias y otros mensajes. Permite al nio, as como el propietario
ACVM grficamente a interactuar con la mquina. Tambin muestra la fecha y la hora. (para interfaces
grficas de usuario, teclado y pantalla LCD de pantalla tctil o unidades son unidades bsicas).
3. Tiene una ranura de insercin de moneda y un clasificador de monedas mecnicos para que ese nio
pueda insertar monedas para comprar un chocolate.
4. Tiene una ranura de entrega para que ese nio pueda recoger el chocolate y monedas, si ser reembolsado.
5. Tiene un puerto de conexin a Internet utilizando un mdem inalmbrico basado en USB, de modo que
el propietario puede conocer el estado de las ventas ACVM desde una ubicacin remota.

ACVM ACVM funciones, se supone que las funciones son como sigue:
1. El ACVM muestra la GUI y si el nio desea introducir informacin de contacto, informacin de
cumpleaos
U obtener respuesta a preguntas frecuentes, muestra el men adecuado.
2. Se muestra un mensaje de bienvenida cuando est en estado de inactividad. Tambin continuamente
muestra la hora y la fecha en la esquina inferior derecha de la pantalla. Tambin puede mostrar
intermitentemente datos meteorolgicos, noticias o publicidad o informacin importante de inters
durante el estado inactivo.

Los sistemas integrados

44

3. Cuando la primera moneda es insertado, tambin se inicia un temporizador. Se anticipa que el nio requiere
insertar todas las monedas en 2 minutos.
4. Despus de 2 minutos el ACVM mostrar una consulta al nio si el nio no insertar una cantidad suficiente
de monedas. Si la consulta es no contest las monedas son reembolsados.
5. Dentro de 2 minutos si una cantidad suficiente de monedas son recogidos, se muestra el mensaje, "gracias,
espere unos momentos, por favor!", ofrece el chocolate a travs de la ranura de entrega y muestra el
mensaje. Recoger el chocolate y vuelva a visitar, por favor!"

Las unidades de hardware ACVM incrusta las siguientes unidades de hardware.


1.
2.
3.
4.

Microcontrolador o ASIP (especficos de la aplicacin un conjunto de instrucciones de procesador)


RAM para almacenar variables temporales y holgura
ROM para cdigos de aplicacin y RTOS cdigos para programar las tareas
Memoria flash para almacenar las preferencias del usuario, los datos de contacto del usuario, direccin,
usuario, fecha de nacimiento, cdigo de identificacin de usuario, respuestas a preguntas frecuentes
5. Y Timer Interrupt Controller
6. Un puerto TCP/IP (Internet de banda ancha) en el ACVM para control remoto y para el propietario para
obtener informes de estado ACVM
7. ACVM hardware especfico para clasificar monedas de diferentes denominaciones. Cada denominacin
moneda genera un conjunto de estado y bits de entrada y el puerto de interrupciones. Utilizando un Router
ISR para ese puerto, el procesador ACVM lee el estado del puerto de entrada y visitas. Los xitos dan la
informacin acerca de qu moneda se ha insertado. Alterar cada operacin de lectura, los bits de estado se
restablecen la rutina
H. Fuente de alimentacin
Teclado
numrico
interfaz
usuario

para
de

Pantalla LCD o la pantalla tctil para el usuario


Hardware basado en microcontrolador

USB_Wireless.
. Clasificador de
Mdem
RTOS
El software integrado
monedas
mecnicos
Jr.yV . .Chocolate andrefunded7monedas;collectib.n:bowl j c j

Fig. 1.12 representacin esquemtica del ACVM

Componentes de software ACVM incorpora los siguientes componentes de software:


1.
2.
3.
4.
5.
6.

Tarea de lectura de entrada del teclado


Mostrar tarea
Leer monedas tarea para encontrar monedas ordenados
Entregar la tarea de chocolate
La pila TCP/IP de la tarea de procesamiento
La pila TCP/IP de la tarea de comunicacin

1.10.3 Smart Card

.,n

La tarjeta inteligente es uno de los ms utilizados actualmente en el sistema integrado. Se utiliza para el crditodbito bankcard, tarjeta ATM, monedero electrnico o e-Wallet Card, tarjeta de identificacin, tarjeta mdica (por
historia y diagnstico) y detalles para una tarjeta

! 45

Introduccin a los sistemas integrados

Nmero de nuevas aplicaciones innovadoras. | Reader puede referirse a un sitio web actualizado con frecuencia,
http:// www.sguthery@tiac.net para las respuestas de las preguntas ms frecuentes sobre tarjetas.| el aspecto de
seguridad es de primordial importancia para el uso de la tarjeta inteligente. Cuando se usa lor financieras y
transacciones
relacionadas
con
la
banca.
|
lector
puede
consultar http://www.home.hkstar.eom/~alanchan/paper.s/.smartCardSecurity/ y http://www.research.
Ibm.com/secure_systems/scard.htm para ms detalles de los requisitos de seguridad de la tarjeta.]
La tarjeta inteligente es una tarjeta de plstico dimensiones de la norma ISO, de 85.60 x 53.98 x 0.80 mm. Es
un sistema integrado en una tarjeta: System-On-chip (SoC). Normas ISO07816 recomendado es(1 a 4) de hostmquina basada en tarjetas de contacto y JS0I4443 (parte A o B) para las tarjetas sin contacto. El chip de silicio
est a pocos multmetros en tamao y se esconde entre las capas. Su reducido tamao protege la tarjeta de dobleces.
La figura 1.13 muestra los componentes de hardware del sistema embebido para una tarjeta inteligente sin
Un sistema incorporado
contacto.
Tarjeta inteligente sin contacto
componentes

Sistema de alimentacin de la antena del transceptor


en la tarjeta

Fig. 1.13 los componentes de hardware integrado en una tarjeta inteligente sin contacto

Hardware integrado componentes de hardware integrado son los siguientes:

Microcontrolador o ASIP
RAM para variables temporales y pila
Una vez programable ROM para cdigos de aplicacin y RTOS cdigos para programar las tareas
Flash para almacenar los datos del usuario, la direccin de usuario, cdigos de identificacin de usuario,
nmero de tarjeta y fecha de caducidad
Y Timer Interrupt Controller
Una frecuencia portadora ~16 MHz, generando circuito tecla desplazada y amplitud de modulacin (ASK)
Circuito de interfaz para el IOs
Bomba de carga para suministrar alimentacin a la antena para la transmisin y para el sistema de circuitos.
La bomba de carga cobran recibidas de radiofrecuencia (RF) en la antena de la tarjeta en sus proximidades.
[La bomba de carga es un circuito simple que consta del diodo y alto valor basado en material
ferroeltricas condensador. |
Los detalles de las unidades bsicas de hardware son los siguientes:

46

Los sistemas integrados

1. El microcontrolador utilizado puede ser MC68HCI IDO o PICI6C84 o una tarjeta inteligente procesador
inteligente de Philips XA ora ASIP procesador similar. MC68HCI HA IDO RAM interna de 8 kB y 32 kB
de memoria EPROM y 2/3 cable memoria protegida. La mayora de las tarjetas de uso de CPU de 8 bits.
La reciente introduccin de las tarjetas es ol' una CPU RISC de 32 bits. Una tarjeta inteligente CPU deben
tener caractersticas especiales, por ejemplo, un bloqueo de seguridad. Con el bloqueo de ciertas secciones
de la memoria. Un poco de proteccin en el microcontrolador puede proteger I kB o ms datos de
modificacin y acceso de cualquier fuente externa o instrucciones fuera de esa memoria. Una vez que el
bit de proteccin se coloca en la ROM de mscara en el microcontrolador, las instrucciones o datos dentro
de esa parte de la memoria son accesibles desde las instrucciones en que slo una parte (internamente) y
no son accesibles desde el exterior o instrucciones instrucciones fuera de esa parte. La CPU puede
deshabilitar el acceso bloqueando el ciclo de escritura la colocacin de los bits de datos en los autobuses
para las instrucciones y la proteccin de datos en la memoria fsica despus de determinadas fases de la
inicializacin de la tarjeta y antes de la emisin de la tarjeta para el usuario. Otra forma de proteger es la
siguiente: la CPU puede tener acceso mediante las direcciones fsicas, que son diferentes de la direccin
lgica utilizada en el programa.
2. La ROM se usa en la tarjeta. El tamao habitual es de 8 o 64 kB para lo habitual o avanzadas funciones
criptogrficas en la tarjeta, respectivamente. Completo o parte de bus ROM activa slo despus de una
comprobacin de seguridad. El procesador protege una parte de la memoria de acceso. La ROM almacena
la siguiente.
i. Clave de fabricacin, que es una nica clave secreta para cada tarjeta. Se inserta durante la fabricacin.
ii. Tecla de personalizacin, que se inserta a continuacin del chip es probado en una placa de circuito
impreso. Las direcciones fsicas se utilizan en la fase de pruebas. La llave conserva la clave de
fabricacin y esta insercin de la llave conserva la personalizacin de tarjetas. Despus de la insercin
de esta clave, RTOS y aplicaciones utilice nicamente direcciones lgicas.
iii. Cdigos RTOS
iv. Cdigos de aplicacin
v. La utilizacin de un bloqueo para impedir la modificacin de dos patillas y para impedir el acceso a
las instrucciones del SO y de las aplicaciones. Almacena una vez que la tarjeta entra en la fase de
utilizacin.
3. EEPROM o Flash es escalable. Estos significa que solamente la parte de la memoria requerida para una
operacin determinada se desbloquearn para su uso. El autorizador utilizar la parte requerida; la
aplicacin utilizar la otra parte. Est protegido por las condiciones de acceso almacenadas en el mismo.
Almacena los siguientes:
i. PIN (Nmero de Identificacin Personal), la asignacin y la escritura de los cuales es el autorizador
(por ejemplo, un banco) y su uso es posible en la ltima nicamente mediante la fabricacin y
personalizacin de las teclas. Es para identificar la tarjeta de usuario en futuras transacciones. Tarjeta
de usuario se da esta clave. Alternativamente, una contrasea modificable se otorga al usuario y
contrasea abre la clave PIN.
ii. Un pin de desbloqueo para su uso por el autorizador (digamos el banco). A travs de este circuito. La
tarjeta clave identifica el autorizador antes del desbloqueo. Datos del usuario desbloquea para el
autorizador y almacenamiento de la informacin en la tarjeta es posible por el autorizador a travs del
host.
iii. Las condiciones de acceso a diversos archivos de datos jerrquicamente ordenada.
iv. Tarjeta de datos de usuario, por ejemplo, nombre del banco, sucursal y nmero de cuenta y nmero de
identificacin o detalles de seguros de salud.
v. Datos post problema que genera la aplicacin. Por ejemplo, en el caso de e-cartera, los detalles de las
transacciones anteriores y el saldo actual. Historial mdico y detalles de diagnstico y/o reclamaciones
de seguros anterior y pendiente de registro de reclamaciones de seguros en el caso de una tarjeta
mdica.
vi. Tambin almacena la aplicacin de datos no voltil.
vii. Nulidad enviado por el host de bloqueo tras el perodo de caducidad de la tarjeta o el uso indebido y
la demanda de cierre de la cuenta de usuario. Bloquea los archivos de datos del maestro o elemental

Introduccin a los sistemas integrados

47

5. La tensin de alimentacin del chip extractos por un circuito de la bomba de carga. La bomba extrae el
encargado de las seales desde el host anloga a lo que hace un ratn en un ordenador y proporciona la
tensin regulada a la tarjeta chip, memoria y sistema 10. Las seales pueden ser de la antena o del pin de
reloj. En una tpica operacin de tarjeta usando tecnologa de 0.18 pm, de 1,6 a 5,5 V es el lmite del
umbral y de 0,35 pm tecnologa, de 2,7 a 5,5 V.
6. Sistema IO de interactuar a travs de host y chip UART serie asncrona (seccin .3.2.3) a 9.6 k o 106 k o
115,2 K baudios/s. El chip interconecta a una tarjeta el sistema de hosting (lector y escritor) o bien a travs
de los contactos de oro o a travs de un centmetro de tamao en cada lado de la antena. Este ltimo
proporciona al contacto de interconexin entre los pasadores de IO, el neumtico que signific para la interaccin
basada en el contacto, RST (Reset host) y delantero de la seal de reloj (desde el host).

7. Comunicacin inalmbrica para IO interaccin es por las radiaciones a travs de la antena de bobinas para
contacto . La interaccin. La tarjeta host y de interactuar a travs de un mdem y una tarjeta mdem host.
La unidad de datos de protocolo de aplicacin (APDU) es un estndar para la comunicacin entre la tarjeta
y el ordenador host. La modulacin es con un 10% de ndice de modulacin de amplitud de portadora
13.66-13.56 Mbps ASK (amplitud de incrustacin desplazado) se utiliza para la comunicacin sin contacto
a velocidades de datos de I-Mbps. Un decimosexto frecuencia subportadora se modula mediante cambio
de fase binaria (BPSK) de incrustacin.

El software integrado de tarjeta inteligente incorpora los siguientes componentes de


software:
1.
2.
3.
4.
5.
6.
7.
8.

El Arranque, Inicializacin y os programas


Tarjeta inteligente sistema de archivos seguro
Establecimiento y terminacin de conexin
La comunicacin con el host
Algoritmo de criptografa
La autenticacin del host
Autenticacin de tarjeta
Adems guardar los parmetros o los ltimos datos enviados por el nuevo host (por ejemplo, saldo actual
a la izquierda)
La tarjeta inteligente es un seguro ejemplar sistema integrado con software de seguridad. La tarjeta necesita
Software criptogrfico. El software integrado en la tarjeta necesita caractersticas especiales en su sistema operativo
por encima de las de MS-DOS o UNIX, las caractersticas del sistema. Caractersticas especiales necesarios son
los siguientes:
1. Medio ambiente protegido. Significa que el software debe l almacenado en la parte protegida de la ROM.
2. Entorno de ejecucin restringida de cal.
3. Su sistema operativo. cada mtodo, clase y la biblioteca de tiempo de ejecucin debe ser escalable.
4. Tamao de cdigo generado debe ser ptimo. El sistema necesita no debe superar los 64 kB de memoria.
5. Uso limitado de tipos de datos; matrices multidimensionales, largo entero de 64 bits y canotaje puntos y
un uso muy limitado de los identificadores de error, excepciones (Seccin 4.2.2). Las seales (Secciones
6.5 y 7.10), la serializacin, depuracin y perfilado. | La serializacin es el proceso de convertir un objeto
en una secuencia de datos para transferirla a la red o desde un proceso a otro. El dc-serializcd datos son el
receptor final |.
6. Tres capas de un sistema de archivos para los datos. Un archivo para el archivo maestro para almacenar todos
los encabezados de los archivos. Una plataforma significa el estado de los archivos, las condiciones de acceso y el
archivo de bloqueo. El segundo archivo es un archivo dedicado a mantener un archivo de agrupacin y cabeceras de
archivos elementales el sucesor inmediato del grupo. El tercer archivo es el archivo elemental para sujetar el encabezado
del archivo y su archivo de datos.

7. Existe un archivo de longitud fija o de longitud variable de gestin gestin fiie con cada archivo ,el tener
un desplazamiento predefinidos.
8. Clases para la red, enchufes, conexiones de datos, gramos, carcter y flujos de entrada y salida, seguridad
La gestin, certificacin digital, simtrico y asimtrico basado en claves de cifrado y las firmas digitales.
'

Los sistemas integrados

48

1.10.4 Cmara digital


Las cmaras digitales pueden tener de 4 a 6 megapxeles imgenes fijas, visualizacin clara (ClcarVid) sensor
CMOS. Amplia pantalla LCD de 7 cm, pantalla fotogrfica Enhanced Imaging Processor, doble solucin contra
imgenes borrosas y el motor de procesamiento de alta velocidad. ptico 10x y zoom digital de 20X y tambin
puede grabar clips de vdeo de alta definicin. Por lo tanto, tiene micrfono altavoz(s) con alta calidad de sonido
grabado. Tiene un puerto de salida de audio/vdeo para conectar a un TV/reproductor de DVD o PC.
Supongamos que la cmara es slo una cmara. Las figuras 1.14(a) y (b) muestran los componentes de
hardware y software en una simple cmara digital. Asumir que la cmara tiene los siguientes componentes:
O PANTALLA TCTIL LCD para visualizacin
de fotogramas

| Keys |

DAC

| ADC

Bluetooth

Microcontrolador,
temporizador,
DMAC

Memoria Flash

Puerto USB

_L.
(a)

. La ASIP CCDDSP

El software integrado

Serie COM

Equipo

CCD

Yo

Microcontrolador

JPrihlefL

; la Luz, Flash y controladores de


dispositivo de visualizacin
de tareas de procesamiento de
seal
CCD j | Pixel
Codificador
JPEG co- Decodificador JPEG

(b) L

procesamiento
LCD, Bluetooth,tarea
COMj Y PUERTO USB device drivers

Fig. 1.14
(a) los componentes de hardware de cmara digital (b) componentes de software de la
cmara digital
1. Tiene teclas en la cmara. Que permite al usuario manejar la cmara. Tiene botones de navegacin para
desplazarse por las imgenes hacia atrs y hacia adelante.
2. Shutter, la lente y el CCD (dispositivo de acoplamiento de carga), matriz de sensores para imgenes en
tamaos de 2592 x 1944 pxeles = 5038848 pixeles, VGA (E-mail) 640 x 480 = 307200 pxeles 2592 x
1728 = 3,2 M pxeles, 2048 x 1536 pxeles = 3 M pxeles o 1280 x 960 pxeles = I M pxeles.
3. Tiene una buena resolucin de calidad fotogrfica de la unidad de pantalla LCD en la parte posterior de la
cmara para mostrar fotografas o clips de vdeo grabados. Muestra el texto como ttulo de la imagen, los
datos de grabacin y la hora y el nmero de serie. Muestra mensajes. Muestra los mens de la interfaz
grfica de usuario cuando el usuario interacta con la cmara.
4. Tiene un temporizador de lmpara de flash.
5. Memoria flash interna para almacenar el SO y el software integrado, y un nmero limitado de archivos de
imagen.
6. Flash memory stick de 2 GB o ms para gran capacidad de almacenamiento.

Introduccin a los sistemas integrados

49

7. Es Luis puerto USB (Universal Serial Bus) (Seccin 3.10.3) o interfaz Bluetooth, el cual se conecta a una
computadora y una impresora.

Las funciones de la cmara asume que las funciones de la cmara es la siguiente:


1. La vista muestra el fotograma en la pantalla LCD, de modo que el usuario puede ajustar la inclinacin de
la cmara antes de disparar el bastidor.
2. Muestra las imgenes guardadas en el LCD mediante las teclas de navegacin.
3. Cuando una llave para abrir el obturador est presionado, se enciende la luz del flash y el circuito
temporizador apaga la luz automticamente.
4. La trama la luz cae sobre la matriz CCD, que transmite los bits de cada pxel en cada fila de la trama a
travs de un ADC. Bits de zona oscura pxeles en cada fila se utilizan para compensar las correcciones en
la seal CCD para intensidades de luz en cada fila.
5. Los bits de cada pxel CCD en cada fila y columna son compensados corregido mediante un procesador
de seal CCD (CCDSP).
6. Las seales procesadas estn comprimidos con un codec JPEG y guardados en un archivo jpg para cada
fotograma. Un DSP realiza compresin mediante la transformacin de coseno discreta (DCTs) y
descompresin por DCT inversa. Posteriormente, tambin lo hace la codificacin Huffman para
compresin JPEG.
7. Un DAC enva los insumos para la unidad de visualizacin. El DAC obtiene la entrada del procesador de
pxeles, que recibe las entradas de los archivos JPEG para las imgenes guardadas y obtiene entrada
directamente desde el CCDSP a travs del procesador de pxeles o en el marco de la presente opinin.

Las unidades de hardware Digital La cmara incorpora las siguientes unidades de hardware.
1.
2.
3.
4.
5.

6.
7.
8.
9.

Microcontrolador o ASIP
Mltiples procesadores (CCDSP, DSP. pixel procesador y otros)
RAM para almacenar variables temporales y pila
ROM para cdigos de aplicacin y RTOS cdigos para programar tareas
Temporizador. Memoria Hash lor almacenar las preferencias del usuario, los datos de contacto del
usuario, direccin, usuario, fecha de nacimiento, cdigo de identificacin de usuario. ADC. DAC y el
controlador de interrupciones (Secciones 1.3.3, 1.3.5, 1.3.7 y 1.3.11).
Controlador USB (Seccin 3.10.3)
Controlador de acceso directo a memoria (Seccin 4.8)
El controlador de LCD (Seccin 3.3.4)
Batera

Componentes de software de la cmara incorpora los siguientes componentes de software:


1.
2.
3.
4.
5.
6.
7.

Procesamiento de seal CCD para correccin de off-set


Codificacin JPEG
Descodificacin JPEG
Procesamiento de pxeles en la pantalla antes de
Memoria y sistemas de archivos.
Luz, Flash y controladores de dispositivo de visualizacin
COM, puerto USB y los controladores de dispositivos Bluetooth para las operaciones portuarias de la
impresora y el equipo de control de comunicaciones
- ,IW

1.10.5 Telfono mvil


Los telfonos mviles de hoy tiene un gran nmero de caractersticas. Cuenta con sofisticados hardware y
software.

50

__

Los sistemas integrados

Las unidades de hardware un telfono mvil incorpora una SoC (System-on-Chip) integracin
mueren a raz de las unidades de hardware.
1. Microcontrolador o ASIP (como!P est configurado para procesar corteza de codificacin y desciframiento
otro la compresin de voz. Tercera marca ASIC, modula y demodula, interfaces del teclado y pantalla
tctil LCD de lnea o de mltiples pantallas grficas y procesa la entrada de datos y la recuperacin de los
datos de la memoria].
2. DSP core, CCDSP, DSP, vdeo, voz y procesadores de pxeles
3. Flash, memory stick, EEPROM y SRAM
4. Circuitos perifricos, ADC y DAC y el controlador de interrupciones
5. Controlador de acceso directo a memoria (Seccin 4.8)
6. El controlador de LCD (Seccin 3.3.4)
7. Batera

Componentes de software las herramientas de desarrollo de software de telfono mvil son


como sigue:
1. So (Windows Mobile, Palm, Symbian) o cerveza
2. Java 2 Micro Edition (J2ME) junto con KVM como una Mquina Virtual Java (Seccin 5.7.4)
3. Java Wireless Toolkit con JDK (Java Development Kit).
El telfono mvil incorpora los siguientes componentes de software:
1. Memoria y sistemas de archivos.
2. Pantalla LCD, teclado, serie, USB, 3G o 2G Puerto de controladores de dispositivo para las operaciones
portuarias de teclado, impresora y
Equipo de control de comunicacin
3. SMS (Short Messaging Service) y la creacin del mensaje communicator, contacto y gestor de
informacin personal (PIM), la tarea de hacer manager y correo electrnico
4. Mobile imager para cargar imgenes y mensajes MMS (servicio de mensajera multimedia)
5. Navegador mvil para el acceso a la Web
6. Descargador de juegos Java, tonos, juegos, papeles de la pared
7. Con cmara simple (Seccin 1.10.4)
8. Sincronizacin Bluetooth. IrDA y conexiones WAP soporte (Seccin 3.13)

1.10.6 Equipo mvil


El ordenador porttil tiene Windows CE o Windows Mobile como sistema operativo. Tiene una pantalla tctil de
interfaz grfica de usuario (GUI). El usuario utiliza un lpiz para escribir comandos. Tiene un teclado virtual (el
teclado aparece en la pantalla y entradas de texto y comandos es mediante el lpiz ptico.
Adems de telfono, un equipo mvil dispone de los siguientes componentes de software:
1. So (Windows CE, Windows Mobile, PocketPC, Palm OS o Symbian OS)
2. Interfaces de pantalla tctil, memoria y sistemas de archivos.
3. Memory Stick
4. Outlook, Internet Explorer, Word, Excel, Powerpoint y texto manuscrito procesador
5. Aplicaciones o software para empresas

1.10.7 Un juego de robots


Considerar un conjunto de 8 robots. Un robot es el robot master (director musical) y siete son robots esclavos
(conductores). Supongamos que el conjunto se utiliza para tocar en una orquesta. Las figuras 1.14(a) y (b) muestran
los componentes de hardware y software del juego de robots. Supongamos que el robot tiene los siguientes
componentes.
1. Las seales del robot maestro y esclavo de los comandos robots jugar en consecuencia.

Introduccin a los sistemas integrados

51

2. Cada robot se supone que tienen 5 grados de libertad. Cada robot tiene un sistema mecnico de cinco
Grados de libertad. En cada grado de libertad, hay un servomotor. Un servomotor controla por
Mtodo PWM (Seccin 1.3.7). Cada motor est controlado en una secuencia para que el robot realice (l
La accin deseada.
3. Cada robot tiene un microcontrolador con puertos de expansin, PO,..., P8. Realmente puede realizar un
solo ASIC
Puerto de mltiples funciones de un microcontrolador. Sin embargo, puesto que el coste de ingeniera de
desarrollo ASIC
Es alta, de propsito general del microcontrolador 68HCI2 o 8051 es utilizado.
4. Las salidas de puerto conectar los motores y salidas PWM acciona los motores de cada robot.
5. Cada robot tiene una serie 10 con el protocolo IrDA. (Seccin 3.13.1.)
6. Hash de memoria interna para almacenar el sistema operativo, el software integrado y la limitada
cantidad de msica.
7. Hay un procesador de archivos de msica para reproducir la msica. Robots esclavos tienen salidas de
altavoz para reproducir
La msica.

Asumir las funciones de robot master robot master que el funcionamiento es el siguiente:
1. Que recibe los comandos de un mando a distancia para iniciar y detener la msica y el cdigo para el tipo
especfico de
Orquesta para reproducirse.
2. Enva seales de PWM a los puertos para mover los palos en ambas manos, como por el programa.
Esclav
3.o Establece y enlaza el sockels (los dispositivos virtuales) relacin con los esclavos. Enva las seales
1. A travs de sockets usando protocolos IrDA. Las secuencias de bytes de respuesta a los clientes como por
2. la msica
Archivo a ser desempeado por el esclavo.
3.

Las funciones del robot robot esclavo asume que el funcionamiento es el siguiente:
Establece y enlaza los sockets (los dispositivos virtuales) la conexin con el maestro.
Recibe de una toma master los comandos aceptan () y escribir (): tambin recibe comandos para
Iniciar y detener la reproduccin de msica y el cdigo para la orquesta para ser jugado.
Recibe las seales a travs de sockets usando protocolos IrDA. Las secuencias de bytes del servidor son
tan
Por el archivo de msica que se est reproduciendo.

Las unidades de hardware Robots incrustar las siguientes unidades de hardware.


1. Microcontrolador o ASIP
2. Procesador de archivos de msica
3. RAM para almacenar variables temporales y pila
4. ROM para cdigos de aplicacin y RTOS cdigos para programar acciones y tareas del robot
5. Temporizador. Memoria de hash para almacenar las preferencias del usuario y archivos de msica.
6. Controlador IrDA (Seccin 3.13.1.)
7. Controlador de acceso directo a memoria (Seccin 4.8)
8. Fuente de alimentacin o batera

Componentes de software Robots incrustar los siguientes componentes de software:


1. Funciones de Socket.
2. Codificacin de msica
3. Decodificacin de msica
4. Memoria y sistemas de archivos.
5. Luz, Flash y controladores de dispositivo de visualizacin .
6. IrDA y controladores de dispositivo de puerto de socket
7. Controladores de motor

Los sistemas integrados

52

Montaje mecnico

Dispositivo de sonido J

J~ Bluetooth ^ J

Memoria Flash

IrDA

"Yo --

Robot

(a)

Motores

L
l

Microcontrolador,
Y
temporizador, OMAC, o
PWM

Y
o
!

Los sockets de servidor y cliente


Procesamiento de archivos Robot::
de msica
La pila de protocolos IrDA
(b)

Protocolo Bluetooth

T instrumento musical y controladores de dispositivo Bluetooth o IrDA

Fig. 1.15 (a) Componentes de hardware en el juego de robots (b) componentes de software en el juego de robots
en el que un maestro de los comandos y seales de robots robots esclavos jugar de acuerdo con las
seales del maestro

1.11

Clasificacin de sistemas integrados

Podemos clasificar los sistemas integrados en tres tipos como sigue.


1. Sistemas integrados de pequea escala: Estos sistemas estn diseados con un solo 8 o

16 bits de microcontrolador: tienen poca complejidad de hardware y software e


involucrar en el diseo a nivel de placa. Incluso pueden ser operados a batera. Al
desarrollar el software integrado para estos, un editor, ensamblador y ensamblador
cruzado, un entorno de desarrollo integrado (ISE) herramienta especfica bajo el
microcontrolador o procesador utilizado, el arco de las principales herramientas de
programacin. Utilizando el lenguaje "C", los programas se compilan en la asamblea y
cdigos ejecutables estn ubicadas correctamente en la memoria del sistema. El
software tiene que caber dentro de la memoria disponible y tener en cuenta la
necesidad de limitar la disipacin de energa cuando el sistema est funcionando
continuamente.
2. Media escala de sistemas integrados: estos sistemas suelen estar diseados con una
sola o unas 16 o 32 bits, DSPs o RISCs microcontroladores. Estos sistemas tambin
pueden emplear el disponibles procesadores de propsito nico e IPs (explicada ms
adelante) para las diversas funciones (por ejemplo, interfaces de bus. [ASSPs e IPs
tambin tienen que estar configurados correctamente por el software del sistema antes
de ser integrados en el sistema de bus. 1 medianos sistemas integrados tienen
complejidades tanto de hardware como de software. Para el complejo diseo de
software, las siguientes opciones estn disponibles: herramientas de programacin
C/C++ o Visual C++/Java, RTOS, cdigo fuente herramienta de ingeniera, simulador, debugger y
un entorno de desarrollo integrado. Herramientas de software tambin ofrecen soluciones a las
complejidades del hardware.
3. Sofisticado: sofisticados sistemas integrados sistemas integrados tienen un enorme

hardware, -ahtfSoftw.Cte complejidades y puede necesitar varias IPs, ASIPs, escalable, o


procesadores procesadores configurables y matrices lgicas programables. Se utilizan
para aplicaciones de vanguardia que necesitan hardware y software co-diseo y los

Introduccin a los sistemas integrados

| 53 ;

___ J
Y descifrar los algoritmos de transformacin de coseno discreta y algoritmos de transformacin inversa.
TC'P/ apilamiento de protocolo IP y las funciones de controlador de red se implementa en el hardware
para obtener velocidades adicionales. El software implementa algunas de las funciones de los recursos de
hardware en el sistema. Herramientas de desarrollo para estos sistemas pueden no estar disponibles a un
costo razonable, o pueden no estar disponibles en todos. En algunos casos, un compilador o un compilador
redestinable podra tener que ser desarrollados para estos. [Un compilador redestinable es uno que se
configura segn el destino dado la configuracin en un sistema.|

1.12

Habilidades requeridas para un diseador de sistemas integrados

Un diseador de sistemas integrados para desarrollar un producto utilizando las herramientas disponibles dentro
de las especificaciones,
Coste y tiempo. [Captulos 6. 13 y 14 se cubren los aspectos de diseo de sistemas integrados.1
1. Habilidades para el diseador de sistemas integrados a pequea escala: Autor Tim

Wilmshurst en su libro indica que los siguientes son las habilidades necesarias en la
persona.::"""! o equipo que est desarrollando un sistema a pequea escala: "plena
comprensin de microcontroladores con un conocimiento bsico de la arquitectura de
computadores, electrnica, diseo digital, comunicacin de datos de ingeniera de
software, ingeniera de control, motores y actuadores, Sensores y Mediciones, diseo
electrnico analgico y 1C diseo y fabricacin". Habilidades especficas sern
necesarias en situaciones especficas. Por ejemplo, ingeniera de control
conocimientos sern necesarios para el diseo de sistemas de control y diseo
electrnico analgico conocimiento ser necesaria a la hora de disear las interfaces
del sistema. Los aspectos bsicos de los temas siguientes se describen en este libro
para preparar el diseador que ya tiene un buen conocimiento del microprocesador o
microcontrolador para ser utilizado, (i) la arquitectura informtica y organizacin, (ii)
Recuerdos, (iii) la asignacin de memoria, (iv) la interconexin recuerdos, (v) Quema
(trmino utilizado para portar) los cdigos de mquina ejecutable en PROM o ROM.
(v) el uso de descodificadores y demultiplexers, (vi) los accesos de memoria directa,
vii), viii) Los puertos de controladores de dispositivos en general, (ix) autobuses,
simple y sofisticado (x), temporizadores, (xi), mecanismo de servicio de interrupcin
(xii) elementos de programacin C, (xiii), optimizacin de memoria (xiv) Seleccin de
hardware y el microcontrolador, (xv) el uso de emuladores de In-Circuit (ICE), crossmontadores y equipos de pruebas, (xvi), la depuracin de los errores de software y
hardware utilizando vectores de prueba. Conocimientos bsicos en otras reas de la
ingeniera de software, comunicacin de datos, ingeniera de control, motores y
actuadores, Sensores y Mediciones, diseo electrnico analgico y IC diseo y
fabricacin pueden ser obtenidos a partir de los libros de texto estndar disponibles.
Un diseador interesado en pequea escala pueden no necesitar sistemas integrados
en todos los conceptos de latencias de interrupcin y plazos y su manipulacin, el RTOS
herramientas de programacin descritos en los captulos 9 y 10 y el programa modelos
que figuran en el Captulo 6.
2. Habilidades para el diseador de sistemas integrados a escala media: Conocimientos
de 'C7C++/Java, RTOS programacin programacin y modelado de habilidades se
deben disear de mediana escala del sistema integrado. Conocimiento de los
siguientes aspectos son fundamentales, (i) las tareas o subprocesos y su programacin
por parte de las RTO. (ii) y la Cooperativa preemptive scheduling (iii) Entre las
funciones de comunicacin del procesador, (iv) el uso de datos compartidos, y la

Los sistemas integrados

Slo conocen la organizacin de hardware y el uso de estas API. El microcontrolador o procesador


entonces representa un pequeo elemento de sistema para el diseador y un poco de conocimiento puede
ser suficiente.
3. Habilidades para el sofisticado sistema integrado de diseo: en un equipo es necesario

para el co-diseo de alto nivel y resolver las complejidades del diseo de hardware y
software. Los ingenieros de hardware incorporados del sistema debe tener
habilidades en las unidades de hardware y conocimientos bsicos de 'C7C++ y Java.
RTOS y otras herramientas de programacin. Los ingenieros de software deben tener
un conocimiento bsico de hardware y un conocimiento profundo de 'C\ RTOS y otras
herramientas de programacin. Un diseo ptimo de la solucin final se obtiene
entonces por la integracin del sistema.

Resumen
Un sistema integrado es uno que tiene el software integrado en un sistema de hardware, lo cual lo hace un
sistema dedicado para la(s) solicitud(es) o una bandeja especfica de una aplicacin o de un producto o de
una parte de un sistema mayor.
El procesador del sistema integrado puede ser un procesador de propsito general elegido de varias familias
de microprocesadores. Alternativamente, la ASIP por ejemplo microcontroladores, procesadores
embebidos y dsp pueden ser diseadas para aplicaciones especficas en un chip VLSI. Aplicacin de un
conjunto de instrucciones especficas del procesador (ASSP) puede ser tambin utilizado para la rpida
implementacin de hardwired una cierta parte del software incorporado. Un sofisticado sistema integrado
tambin pueden utilizar un multiprocesador o unidad de dual core.
Los sistemas integrados localizar una imagen de software en la ROM. La imagen a menudo consta de los
siguientes elementos: (i) programa de arranque, datos de inicializacin (ii), (iii) las cadenas para una
pantalla inicial o del estado del sistema, (iv) programas para las mltiples tareas que el sistema perforins,
(v) RTOS kernel.
El embedded system necesita una fuente de alimentacin de energa y disipacin de potencia controlado y
optimizado de la energa total requerida. Una bomba de carga proporciona un suministro de energa menos
de sistema en ciertos sistemas integrados.
Necesidades del sistema incorporado reloj y restablecer los circuitos. Uso del reloj manager es una innovacin
reciente.
El sistema necesita interfaces integradas: entrada salida (10) puertos, serie UART y otros puertos para
accepl entradas y salidas para enviar interactuando con perifricos, unidades de pantalla, teclado o teclado.
El sistema incorporado pueden necesitar controladores de bus para sus autobuses de networking con otros
sistemas.
Necesidades del sistema incorporado de temporizadores y un temporizador para el sistema y el reloj de
tiempo real para la programacin y control.
El embedded system necesita una unidad de control de interrupcin.
El sistema incorporado puede necesitar un ADC para tomar entrada analgica desde uno o varios orgenes.
Se necesita un DAC mediante PWM para enviar la salida analgica a motores, altavoces, sistemas de
sonido, etc.
El sistema incorporado puede necesitar un LED o LCD o pantalla tctil, teclado y teclado unidades de
pulso, comunicador, mdem, transmisor, multiplexores y demultiplexers.
El software integrado generalmente se hace en los lenguajes de alto nivel C, C++, Java o Visual C++ con
algunas caractersticas aadidas, habilitado o deshabilitado para la programacin. Uso de 'C' y
C++ tambin facilita la incorporacin de cdigos de lenguaje ensamblador.
El sistema integrado ms a menudo necesita un sistema operativo de tiempo real para la programacin en
tiempo real y programacin, controladores de dispositivos, sistema de archivos o la gestin de dispositivos
y la multitarea.
El sistema necesita un depurador integrado.
Un gran nmero de aplicaciones y productos emplean sistemas integrados. Una serie de herramientas de
software son necesarias en el desarrollo y en la fase de diseo de un sistema integrado.
Cinco aplicaciones se describen en detalle: una mquina expendedora automtica de chocolate, una tarjeta
inteligente, cmara digital, telfono mvil, Mobile sompu/IIS y robots tocar en una orquesta.
Un VLSI chip puede incrustar o ASIP GPP core e IPs para la aplicacin especfica. Un sistema on-chip es el
concepto de sistemas integrados; por ejemplo, un telfono mvil en el que los circuitos analgicos y digitales,

Introduccin a los sistemas integrados

55

\_ /

El proceso de diseo se abstrae por (i) Definiciones y anlisis de requerimientos, diseo del sistema
Metrics (cuadro 1.8) y requisitos de validacin de especificaciones de los sistemas desarrollado
finalmente. Tiene que haber coherencia en los requisitos de las especificaciones, (ii) (iii) (iv) arquitectura
de componentes (v) la integracin del sistema.
Parmetros de diseo son la disipacin de potencia, rendimiento, plazos de procesos, interfaces de usuario,
tamao, coste de ingeniera, el coste de fabricacin, la flexibilidad, el tiempo de desarrollo de prototipo,
el tiempo de salida al mercado, el sistema y la seguridad del usuario y de mantenimiento.
El desafo en el proceso de disear el sistema para optimizar los parmetros de diseo que compiten.

Palabras clave y sus definiciones


ADC

La
ASIP
(aplicacin
especfica) Conjunto de
instrucciones
Ensamblador
ASSP
(aplicacin
especfica) del procesador
del sistema
Autobs

Cache

Reloj

CODEC

Coder
Compilad
or

Un circuito que convierte la seal de entrada analgica a digital de 8,10 o 12


bits. La entrada analgica se aplica entre positivo y negativo de los pasadores
y se convierte con respecto a la tensin de referencia(s). Cuando la entrada de
referencia de igual voltaje positivo y negativo, entonces todos los bits de
salida es igual a 1, 0, y cuando todos los bits de salida igual a 0.
Un procesador con un conjunto de instrucciones diseadas para aplicaciones
especficas en un VLSI chip; por ejemplo, el microcontrolador, DSP, 10,
medios de comunicacin, red u otro procesador especfico del dominio.
Un programa que traduce el lenguaje ensamblador software en los cdigos de
mquina se colocan en un archivo llamado \exe' (archivo ejecutable).
Una unidad de procesamiento para el sistema de tareas especficas, por
ejemplo, procesamiento de imgenes, compresin y descompresin, y que
est integrado a travs de los buses con el procesador principal en sistemas
embebidos.
Un bus se compone de un conjunto comn de lneas paralelas para conectar
varios dispositivos, Unidades y sistemas de hardware para la comunicacin
entre dos de estos en cualquier momento dado. Un protocolo de comunicacin
especifica las modalidades de comunicacin de seales de bus. Protocolo
tambin especifica las formas de arbitraje cuando varios dispositivos
necesitan comunicarse a travs de la parada de autobs o formas de mesas de
los requisitos del dispositivo del bus en una instancia.
Una rpida lectura y escritura de memoria on-chip para la unidad de ejecucin
del procesador. Almacena instrucciones y datos obtenidos previamente de
ROM o RAM para su uso en la unidad de ejecucin y para volver a escribir
los datos de la RAM. Tiene la ventaja de que la unidad de ejecucin del
procesador no tiene que esperar para instrucciones y datos de los buses
externos y no volver a escribir ms rpido de datos destinado a la RAM.
Impulsos de frecuencia fija que un oscilador circuito genera y que controla
todas las operaciones durante el procesamiento y todas las referencias de
distribucin del sistema. La frecuencia depende de las necesidades de los
circuitos del procesador. Un procesador, si es que necesita un reloj de 100
MHz entonces su instruccin mnimo tiempo de procesamiento es un
recproco de la misma, que es de 10 ns en un nico ciclo por instruccin de
procesamiento.
Un circuito para la codificacin de la informacin de entrada en menos bits y
para decodificar la informacin codificada en el conjunto completo de la
original. La voz, el habla y las seales de vdeo e imagen de bits se pueden
codificar y descodificar. El cdec tambin funciona como una unidad de
compresin y descompresin de voz, voz, imagen y seales de vdeo. Un
codificador que forma parte del circuito es el cdec utilizado para codificar la
informacin de entrada. Un programa que, de acuerdo con las
especificaciones del procesador, genera cdigos de mquina de lenguaje de
alto nivel. Los cdigos se llama cdigo objeto.

Los sistemas integrados

Ciclo

DAC

Decodificador

Demultiplexor
Parmetros de
diseo

de

controlador de
dispositivo
Programador de
Dispositivos del
Administrador de
dispositivos
Archivo de sistema

integrado
FPGA de sistema de
archivos

GPP (procesador de
propsito general)

Entrada (10) puertos


de salida
Interrupt Controller
(controlador)

Un ciclo consiste en obtener de una instruccin de RAM/ROM, su ejecucin en


el procesador anti hack por escrito los resultados de las operaciones.
Bits digitales (8 o 10 o 12) convierte la seal analgica a escalar a una tensin
de referencia. Cuando todos los bits de entrada igual I, entonces la salida
analgica es igual a la diferencia entre el positivo y negativo de pasador de
referencia voltajes de entrada; cuando todos los bits es igual a 0, entonces la
salida analgica es igual a la tensin de referencia del pasador es negativo.
Un circuito decodificador que decodifica la direccin de entrada y activa una
salida seleccionado entre las muchas salidas. Se utiliza para seleccionar uno
entre varias unidades direccionables. Un descodificador tambin decodifica los
bits codificados y genera la salida bits, seal o informacin.
Un circuito digital que tiene salidas digitales en mltiples canales. El canal al
que se enva la salida a partir de la entrada es el que est dirigido por la direccin
de canal en el desmultiplexor bits de entrada. Un demultiplexor toma la entrada
y lo transfiere al seleccionar la salida de canal entre los mltiples canales de
salida.
Los parmetros que definen los requisitos de diseo y debe tenerse en cuenta en
cada etapa del proceso de diseo.
Las funciones del lenguaje de alto nivel, tales como abrir (configurar), conectar,
enlazar, escuchar, leer o escribir o cerrar el dispositivo. Cada funcin llama a
una rutina de servicio de interrupcin (software) que se ejecuta despus de la
programacin del control de registro (o palabra) de un dispositivo perifrico (o
dispositivo virtual) para permitir que el dispositivo de entradas o salidas. La
rutina lee el registro de estado el estado del dispositivo, obtiene las entradas del
dispositivo y escribe el resultado en el Software del dispositivo para gestionar
mltiples dispositivos y sus controladores.
Toma las entradas de un archivo generado por el localizador y vagabundos el
vnculo fusable realmente para almacenar los datos y cdigos del sistema en el
ROM.
Un sistema que ha incorporado el software en un equipo de hardware que hace
que un sistema dedicado para una aplicacin o una parte especfica de una
aplicacin o de un producto, o de una parte de un sistema mayor.
Una estructura de datos (o dispositivo virtual) que enva los registros (caracteres
o palabras) a un receptor de datos (por ejemplo, un programa) y que almacena
los datos del origen de datos (por ejemplo, un programa). Un archivo en un
ordenador tambin pueden ser almacenados en el disco duro.
Un sistema de archivos especifica las maneras en que un archivo puede ser
creado, llamado named, utilizado, copiado, guardado o eliminado.
Estos son Field Programmable Gate Arrays en un chip. El chip tiene un gran
nmero de matrices con cada elemento con enlaces. Cada elemento de la matriz
consta de varias XOR, Y, O, multiplexor y demultiplexor puertas triestado. Las
funciones de circuitos digitales complejos son creados por una programacin
adecuada de los enlaces sobre la transferencia de datos desde la memoria.
Un procesador de varias familias de procesadores, procesadores integrados,
microcontroladores y procesadores de seal digital (DS Ps) con un conjunto
de instrucciones de uso general y compiladores disponibles para permitir la
programacin en un lenguaje de alto nivel.
El sistema obtiene las entradas y salidas de estos. A travs de estos, el teclado
o la pantalla LCD o la pantalla tctil de unidades o perifricos sistemas ilal extel
ridas conectarse al sistema.
Unidad que controla las operaciones del procesador (identificadores) derivadas
de una interrupcin de una fuente.

Introduccin a los sistemas integrados

Kernel

Pantalla LCD

LED

Linker
Lder

Localizador
Mscara y mscara
ROM
La memoria
Memory Stick

Multiplexor

Microcontrolad
or
Mdem
Tubo de
dispositivo
fsico de
multitarea

Proceso

Un SO programa con las siguientes funciones: asignacin y desasignacin de


memoria, planificacin de tareas, comunicacin entre procesos, gestin eficaz
de acceso a memoria compartida mediante seales, excepcin (error) manejo
de seales, semforos, colas, buzones, tubos y zcalos de E/S, el sistema de
archivos, gestin de control de interrupciones (controlador), controladores de
dispositivos y la administracin de dispositivos.
Pantalla de cristal lquido de un cristal que absorbe o emite luz en aplicacin
de 3 a 4 V a 50 60 Hz impulsos de voltaje con corrientes - 50 pA. Y
multisegmento LCD multilnea unidades son usadas para una pantalla de
dgitos, caracteres, grficos, pictogramas y mensajes cortos con muy baja
disipacin de potencia.
Diodo de emisin de luz que emite un diodo rojo, verde, amarillo o luz
infrarroja en adelante polarizacin entre 1,6 V a 2 V y corrientes entre 8-15
mA. Multisegmento y multiline unidades LED se utilizan para pantalla
brillante de dgitos, caracteres, grficos y mensajes cortos.
Un programa que vincula los cdigos compilados con otros cdigos y
proporciona una entrada para una pala cargadora o un localizador.
Un programa que asigna las direcciones de memoria fsica para cargar en la
memoria RAM del sistema. Reasignacin es necesaria, como la memoria
disponible puede no arrancar desde 0x0000 en cualquier momento del
procesamiento en un ordenador. El cargador es una parte del sistema operativo
en un equipo.
Un programa para reasignar los archivos vinculados de la aplicacin del
programa y el RTOS cdigos en las direcciones reales de la memoria ROM.
Se crea un archivo en un formato estndar. El archivo se llama imagen ROM.
Creado en una fundicin para la fabricacin de un chip. La ROM de mscara
se cre a partir de un archivo de imagen de ROM.
Este almacena todos los programas, datos de entrada y datos de salida. El
procesador obtiene instrucciones de l y le da los resultados procesados de
vuelta a ti.
Un memory stick (tarjeta) es una unidad de memoria de vdeo, imgenes,
canciones o discursos y se utiliza como gran almacenamiento en cmaras
digitales y sistemas mviles. Por ejemplo, Sony Memory Stick Micro (M2)
tiene tamao 15x 12,5 x 1,2 mm3 y funciones como la memoria flash de 2
GB.|
Un circuito digital que tiene entradas digitales en cualquier instancia en
mltiples canales. El canal para el que la salida es enviada desde la entrada es
el que est dirigido por la direccin de canal multiplexor de bits en la entrada.
Un multiplexor toma la entrada entre las transferencias mltiples canales de
entrada y un canal de entrada seleccionado al canal de salida.
Una unidad con un procesador. Memoria, temporizadores un temporizador
watchdog, controlador de interrupciones, ADC o PWM, y as sucesivamente
son proporcionados como requerido por la aplicacin.
Un circuito para modular la salida en impulsos de bits utilizado normalmente
en la lnea telefnica y desmodular los impulsos entrantes en bits para los
mensajes entrantes. Los cdigos de procesamiento para las diferentes tareas
de acuerdo a lo indicado por el sistema operativo.
Un dispositivo, como una impresora o un teclado conectado al puerto del
sistema.
Una estructura de datos (o dispositivo virtual), que se enva una secuencia de
bytes a partir de un origen de datos (por ejemplo, un programa) y que
proporciona la secuencia de bytes para un receptor de datos (por ejemplo, una
impresora).
Un programa o tarea o hilo que tiene una clara asignacin de memoria propia
y tiene uno o ms funciones o procedimientos para un trabajo especfico. El
proceso puede compartir

58

Los sistemas integrados

La memoria (datos) con otras tareas. Un procesador puede ejecutar varios


procesos por separado o simultneamente como dirigido por el sistema operativo.
: Un procesador ejecuta la instruccin ciclos y ejecuta un proceso o muchos como
por el comando (instruccin).
Modulador de ancho de : un modulador que modula el ancho de pulso como por los bits de entrada.
pulso (PWM)
Proporciona un ancho de pulso de salida analgica a la escala deseada. Sobre la
integracin de salida PWM del DAC se logra la operacin deseada.
Sistema operativo en
: el software del sistema operativo de tiempo real para la programacin y la
tiempo real
planificacin, el proceso y el administrador de memoria, controladores de
dispositivos,
gestin
de dispositivos
y lade
multitarea.
RAM
: Este
es un acceso
aleatorio
de memoria
lectura y escritura que el procesador
Procesador

utiliza para almacenar programas y datos que son voltiles y que desaparecen
cuando se apaga o se desconecta.
Registra

Restablecer

Circuito de reset

ROM
Sistema
Sistema en un chip
Timer

Pantalla tctil

UART
Dispositivo virtual

: Estos estn asociados con el procesador y almacenar temporalmente los valores de


las variables de la memoria y de la unidad de ejecucin durante el procesamiento
de una instruccin.
Procesador: un estado en el que los registros del procesador adquirir valores
iniciales y desde el que se inicia un programa inicial; este programa es
normalmente uno que tambin se ejecuta en el encendido.
: un circuito para forzar un estado RESET que se activa por un corto perodo en el
poder. Reset cuando est activado, el procesador genera una seal de
restablecimiento para las otras unidades que requieren reiniciar el sistema.
: la memoria de slo lectura que localiza la siguiente en l-embedded software, datos
iniciales y cadenas y sistema operativo o RTOS.
Una forma de trabajar, organizar o hacer uno o una serie de tareas siguiendo un
plan fijo, el programa y el conjunto de reglas.
: un sistema en un chip VLSI que tiene todo lo necesario analgica necesaria as
como circuitos digitales; por ejemplo, en un telfono mvil.
: una unidad para proporcionar el tiempo del reloj del sistema y operaciones en
tiempo real y planificacin. Se genera interrupciones en tiempos de espera como
por el tiempo preestablecido o de desbordamiento o en comparacin con xito
del tiempo presente, con un tiempo preestablecido o en capturar el tiempo en un
evento.
: Una
entrada as como un dispositivo de salida que se utiliza para introducir un
comando, elegir un men o dar al usuario respuesta como entrada por tocar
fsicamente a una posicin de la pantalla con el dedo o un lpiz. Un lpiz es
delgada objeto con forma de lpiz. Se celebra entre los dedos y utiliza
simplemente como una pluma se utiliza para marcar un punto. La pantalla
muestra las opciones o comandos, mens, cuadros de dilogo y los iconos, de
forma similar a una pantalla de ordenador.
: y el transmisor receptor asncrono universal.

: un archivo o un casquillo o tubo-como el dispositivo que es programable para


abrir, cerrar, leer y escribir) similar a un dispositivo fsico.
VLSI chip temporizador
: un circuito integrado a gran escala realizados en silicio con - y Hoove
transistores. : un temporizador que restablece el procesador en caso de que el
Watchdog
programa se atasca durante un tiempo inesperado.

Introduccin a los sistemas integrados

I 59 ,

Yo

Preguntas de repaso
1. Definir un sistema. Ahora definen un sistema incorporado.
2. Cules son las unidades estructurales fundamentales en el siguiente? (a) un microprocesador (bi un
procesador embebido
(c) Un microcontrolador (<i) un DSP (el de la ASIP. Lista cada uno de estos.
3. Cmo funciona un DSP difieren de un procesador de propsito general (GPP)? [las secciones 1.2.1.
1.7.3 y 2.3.3|.
4. Cules son las ventajas y desventajas de los siguientes? (a) un procesador con slo una unidad
aritmtica de punto fijo y (b) un procesador adicional con aritmtica de coma flotante unidad de
procesamiento.
5. Cmo funciona un microcontrolador difieren de un DSP? [las secciones 1.2.3, 1.7.2, 2.1 y 2.3.5|.
6. Explicar el propsito nico procesadores utilizan la tecnologa de convergencia en los sistemas
integrados (a) telfono mvil inteligente con el cliente de correo electrnico, conectividad a Internet y las
descargas de fotograma de la imagen y (b) la cmara digital.
7. Compare las caractersticas de una familia chip (o ncleo) de cada uno de los siguientes: un
microprocesador, microcontrolador, procesador RISC. DSP y ASSP.
8. Por qu sistemas de generacin posterior el procesador funcione en voltajes bajos (< 2 V) y realizar en
IOs (-3,3 V)?
9. Cules son las tcnicas de gestin de energa y potencia en un sistema?
10. Cul es la ventaja de ejecutar un procesador a menor velocidad de reloj en determinadas secciones de
instrucciones y a toda velocidad en otras secciones?
11. Cul es la ventaja de los siguientes? (a) instruccin Stop (b) esperar instrucciones (cl el funcionamiento
en modo de inactividad del procesador
(d) Deshabilitar el uso de la cach de instrucciones (e) con cach multiways y bloques en un sistema
integrado.
12. Qu entendemos por la bomba de carga? Cmo funciona una bomba de carga de alimentacin en un
sistema incorporado sin utilizar
Las lneas de suministro de energa?
13. A qu te refieres bv 'en tiempo real' y 'real' reloj de tiempo?
14. Cul es la funcin de restablecimiento del procesador y el restablecimiento del sistema?
15. Explicar la necesidad de Watchdog Timer y reset tras la mir el tiempo.
16. Cul es la funcin de la RAM en un sistema incorporado?
17. Por qu necesitamos acciones mltiples y mltiples tareas de control de dispositivos en un sistema
incorporado? Explicar, usando como ejemplo el sistema integrado, el control remoto de la TV.
18. Cundo es necesario so multitarea?
19. Cundo es necesario un RTO?
20. Por qu debe el sistema integrado RTOS ser escalable?
21. Explicar los trminos ncleo IP. FPGA. CPLD. PLA y PAL
22. A qu te refieres con System-on-chip (SoC)? Cmo ser la definicin de un sistema integrado con un
cambio de sistema en chip?
23. Cules son las ventajas de una FPGA para disear un sistema integrado?
24. Cules son las ventajas ofrecidas por un ASIC para disear un sistema integrado?
25. Cules son las ventajas ofrecidas por la ASIP para disear un sistema integrado?
26. Las necesidades de procesamiento de vdeo en tiempo real sofisticados sistemas integrados con duras
restricciones en tiempo real. Por qu? Explicar.
27. Por qu un sistema procesador siempre necesitan un "Controlador de Interrupciones (Interrupt
Controller)'?
28. Qu papel juegan un vinculador?
29. Por qu usamos un cargador en un sistema informtico y un localizador en un sistema incorporado?
30. Por qu un programa residen en la ROM en el sistema integrado?
31. Definir la imagen de la ROM y explicar cada seccin de una imagen de la ROM en un sistema.
32. Cuando es el programa y los datos comprimidos en ROM usado? Cinco ejemplos de sistemas embebidos

60

Los sistemas integrados

35. Definir parmetros de diseo de sistemas integrados. Cules son los diferentes parmetros de diseo competidoras'."
Cules son las limitaciones de Embedded System Design".
56. Cmo es la disipacin de energa optimizado?
37. Cules son los desafos enfrentados en mosaico de disear un sistema integrado?

38. Buscar las definiciones de sistema integrado en los libros mencionados en la seccin Referencias' .y tabular
estos con las definiciones en la columna I y los nombres de referencia en la columna 2.
39. Clasificar los sistemas integrados a escala pequea, mediana escala y sistemas sofisticados. Ahora reclasificar
estos sistemas integrados con y sin respuesta en tiempo real (Restringida) de cal sistemas y dan 10 ejemplos
de cada uno de ellos.
40. Un sistema de control de crucero del automvil se ha diseado en un proyecto. Cules sern las capacidades
necesarias en el equipo de ingenieros de hardware y software?
41. Tome un valor. \ = 1.7320508075688. Es cuadrado nuevamente por una aritmtica de punto flotante unidad
de procesador. Ahora' x es cuadrado por un entero de 16 bil aritmtica de punto fijo' unidad de procesamiento.
Cmo difieren los resultados? \Noie: unidad de punto fijo se multiplicarn slo 17320 a 17320. Divida el
resultado por 10000 y luego divida el resultado por 10000.|
42. Disear una tabla de cuatro columnas. Escriba dos ejemplos de sistemas integrados en las columnas 2 y 3. En
la columna I. Escriba el tipo de procesador necesarios entre las siguientes: microprocesadores,
microcontroladores, procesadores embebidos, procesador de seal digital. Como5P, nico propsito y
procesador de medios. Dle a su razonamiento en la columna 4.
43. Por qu un CMOS disipacin de potencia del circuito 10 reducir en comparacin a 5 V, el factor de la mitad.
-(3.3/5)". En funcionamiento 10 3.3 V1'.
44. Cul ser la reduccin de la disipacin de potencia de un circuito CMOS cuando la tensin se reduce de 5 V a 1.8 V
operacin?

45. Enumerar los distintos tipos de recuerdos y aplicacin de cada una de las siguientes: robot, Electrnica inteligente sistema

46.
47.
48.

49.
50.
51.
52.
53.

de indicacin de peso. ECG L-C'D display-cum-recordcr. router, cmara digital, procesamiento del habla, .smart card,
embedded firewall/router, tarjeta de cliente de correo y sistema transreeeiver con control de colisiones y jabber control.
|Collisis>n control significa transmisin y recepcin cuando ningn otro sistema de la red est usando ihe red. Jabber control
significa control de flujos continuos de datos aleatorios que fluye en una red, que finalmente se estrangula una red. |
Las unidades de hardware Tubulate necesarios en cada uno de los sistemas: cmara, equipo mvil y el robot.
Dar dos ejemplos de sistemas embebidos, que necesitan una o ms de las siguientes unidades (A) usando un DAC (PWM)
(b! ADC (e) pantalla LCD displays LED (d) (e) Teclado (0 pulso dialer (g) (h) Transreeeiver Mdem.
Ail ADC es un ADC de 10 bits. Tiene tensiones de referencia. l/r,r__ = 0,0 V y l'ro|+ = 1,023 V. cul ser el ADC outpuls
cuando las entradas son (a) (b) -0.512 V +0,5 V I 2 y e) +2047V? Cules sern las salidas de ADC en tres situaciones w'licn
(i) Pa,r = 0,512 V y = 1,023 V (ii) P,r = 1,024 V y Prd> = 2.047 V anti (iii l'.,, = -1.024 V y F", = +2.047 V.
Tabula las ventajas y desventajas de usar lenguajes de codificacin como sigue: (a) la mquina de codificacin (b) General
(e) C (d) C++ y Java (e).
Lista de las herramientas de software necesarias en el diseo de cada una de las cmaras del sistema integrado, el telfono
mvil y el robot.
Justificar el uso de controladores de dispositivos fsicos y virtuales en sistemas integrados.
El costo del diseo de un sistema integrado puede ser miles de veces mayor que el costo de su procesador y unidades de
hardware. Explicar esta afirmacin.
Una FPGA (Field Programmable Gale Arrays) core integrado con una unidad de procesador nico o mltiple en el
chip. Cmo estos ayudan en el diseo de sofisticados sistemas integrados para el procesamiento de vdeo cal

real?
54. Enumerar las unidades de memoria y de procesador necesarios en una tarjeta inteligente.

8051 y arquitecturas
avanzadas de procesador,
memoria y organizacin del
mundo real
Interconexin
Mi
K.

En el captulo anterior se abordaron las siguientes:


T

U
n
C
[

Embedded System integra software y RTOS.


" Sistema integrado de software incrusta en hardware
Compuesto
de
microprocesador
o
microcontrolador
O DSP o ASIP y procesadores de propsito nico.
" Sistema integrado tiene memoria (RAM y ROM,
Memoria cach), puertos, temporizadores,
dispositivos e interfaces
Los circuitos.
* Microcontrolador
hardware
consiste
de
procesamiento
Unidad, RAM, ROM, distribucin y manejo de las
interrupciones.
Dispositivos y otras unidades como una aplicacin
especfica
nico chip o VLSI core.
* Parmetros de diseo, procesos y retos.
Software, controladores de dispositivo y el
dispositivo-manager.

L
<L
Un

Yo

*c
Q

C
<1
Yo

<
E
S

En este captulo, vamos a ver el siguiente


1. Arquitectura de 8051 en breve y su procesador, memoria, puertos,
contadores/temporizadores,
10 de serie y unidades de controlador de interrupcin
2. La interconexin del mundo real, y los buses internos y externos que interconectan
los
Procesador con el sistema de memorias, 10 dispositivos y todas las dems unidades
del sistema
3. Ejemplos de interfaz con el teclado, pantallas, ADC y DAC
4. Avanzados procesadores x86, ARM y arquitecturas SHARC
5. Organizacin de memoria y procesador
6. El paralelismo a nivel de instruccin y arquitectura superescalar, el procesamiento,
la canalizacin y cach
Unidades para mejorar el rendimiento computacional del procesador ms rpido
Ejecucin del programa
7. Diversos tipos de memoria y sus usos
8. Los dispositivos y las asignaciones de direcciones de memoria
9. Las mtricas de rendimiento para medir el rendimiento de un procesador
10. Seleccin del procesador para sistemas integrados
2.1
Arquitectura
11. Seleccin
de memoria8051
para sistemas integrados
En las subsecciones siguientes se resume la arquitectura 8051 en breve. Un lector puede
Consultar un texto estndar para ms detalles.

2.1.1 Arquitectura de microcontrolador 8051


La figura 2.1 muestra la arquitectura clsica del microcontrolador 8051. Medios clsicos
La versin original, segn la cual las nuevas mejoras y versiones son proporcionados.
La versin clsica se compone de los siguientes componentes de hardware:
1. Un reloj de 12 MHz. Tiempo de ciclo de instruccin del procesador es |1.
2. Una ALU de 8 bits. El ancho de bus interno es de 8 bits.
3. CISC (Computadora de conjunto de instrucciones complejas) de la arquitectura. [CISC
ofrece muchas
Los modos de direccionamiento de los operandos en aritmtica, lgica y otras
instrucciones.
Varias instrucciones complejas tardan ms de un ciclo de tiempo. Complejo
Instrucciones implementar en hardware no por separado los circuitos de lgica
cableada
Para cada instruccin, sino por un circuito de control microprogram.]
4. Instrucciones especiales de manipulacin de bits.
5. Un contador de programa, en el que el valor inicial por defecto para reposicionar el
valor definido por la
Procesador es 0x0000.
6. Un puntero de pila, en la cual el valor inicial por defecto definido por el procesador es
0x07.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


63real

Restablecer j

Fig. 2.1 Arquitectura de 8051

7. Una arquitectura sencilla, con ningn procesador de punto flotante, sin cach, sin unidad de gestin de
memoria, sin unidad de operaciones atmicas, ninguna canalizacin y ningn paralelismo a nivel de
instruccin. (Secciones 2.3 y 2.5). No hay ningn controlador DMA (Seccin 4.8) en el clsico y la
mayora de las otras versiones.
8. Una arquitectura de memoria de Harvard (Seccin 2.4.2). La memoria de programa y memoria de datos
tienen distintos espacios de direcciones de 0x0000 y separar la seal de control(s).
9. En chip de RAM de 128 bytes. La versin 8052 ofrece para RAM de 256 bytes; 32 bytes de RAM se
utilizan tambin como cuatro bancos (conjuntos) de registros. Cada registro-set (banco) tiene ocho
registros. La memoria de pila/datos externos se pueden aadir hasta 64 kB en la mayora de las versiones.
En algunas mejoras en 8051, este lmite ha sido mejorada a 16 MB.
10. Hay registros de funcin especial (SFRs). Estos son PSW (estado del procesador word), A (acumulador),
B registro puntero de pila (SP) y se registra para IOs de serie, temporizadores, puertos y controlador de
interrupciones.
11. La versin 8351 tiene el chip de ROM, EPROM 8951 versin 8751; versin EEPROM on-chip o
memoria flash de 4 kB. Proporcionar varias versiones de ROM de mayor capacidad. Programa adicional
se puede aadir memoria externa de hasta 64 kB. En 8051 y ampliado el espacio de direcciones unificada
(8051 versiones EX y MX versiones), este lmite se ha ampliado a 16 MB.
12. Dos pasadores de interrupcin externa, EN e INTI.
13. Cuatro puertos P0, P1..P2 a P3^d de 8 bits cada uno en modo de un solo chip. (Seccin 2.1.3) Existen
dos temporizadores (Seccin 2.1.5) y una interfaz serie (IS). Puede ser programado para tres modos full
duplex UART para una serie IO. [IO con cada bit de una palabra transmitida sucesivos en la lnea de
datos durante un intervalo de tiempo.] si tambin puede programarse para half duplex IO sincrnica
(Seccin 2.1.6).

Los sistemas integrados

14. Versin clsica no tiene modulador de ancho de pulso y proporciona apoyo al DAC. (Seccin 1.3.7) no
tiene mdem, sin temporizador watchdog, no ADC. Ciertas versiones de apoyo y ahora son ms finos
watchdog ADC. Siemens sab 80535-N admite ADC con tensin de referencia programable. Las versiones
avanzadas compatibles con estas caractersticas y eleccin de versin depende de requisitos del sistema.
(Seccin 2.8 y 2.9).

2.1.2 Conjunto de instrucciones


La figura 2.2 muestra los tipos de instrucciones en el conjunto de 8051. Existen siete tipos de instrucciones.
Conjunto de instrucciones completo e instrucciones en detalle puede ser contemplado desde el microcontrolador
texto o manual. Las instrucciones son las siguientes:

Las instrucciones de transferencia de datos instrucciones de transferencia de datos Mover


(Copiar) un operando de origen a otro destino. Un MOV MOV, Rn y Rn un son para mover (copia) de
los datos en una desde la RN anti R". R" es el n'' registro en un conjunto de 8 registros. PSW bits RSO y RS1
predefinir el conjunto.
Las instrucciones de transferencia de datos MOV A, 0RT Y MOV 0R, un son para mover (copiar) los
datos a una de 3R y R; es el registro en una ith.set de 8 registros. PSW bits RSO y RSI predefinir el conjunto. @R;
medios de transferencia de datos de 8 bits a la direccin apuntada por el contenido de la i'h registrarse en el juego.
Cuatro instrucciones de transferencia de datos son directas, MOV #datos, MOV A,#data, MOV,

Rn,#datos y MOV 0RJ, #datos para mover datos de 8 bits en directo o un o


Rn o 0R; medios directos para la transferencia de datos a una direccin de 8 bits internos de E28B RAM o direccin
de SFR. @R; medios de transferencia de datos de 8 bits a una direccin apuntada bv, el contenido de la i,h registrarse
en el conjunto (i = 0 o I).
Siete instrucciones de transferencia de datos son MOV directo, directo, MOV A,directo,

direct, un MOV MOV, directo, Rn, MOV R^, directo, MOV, directa @R; y MOV
0RL, directos son para mover datos entre los 8 bits de direccin directa
o directa o Rn o 0R,. Medios directos para la transferencia de datos a o desde un 8- direccin de bil I28B
RAM interna o direccin de SFR. ("-R, medios de transferencia de datos de 8 bits a la direccin apuntada por fomenta
de ilh registrarse en el conjunto (i = 0 o 1).
Existe una memoria externa de 16 bits puntero de datos. DPTR. El MOV DPTR, datal6 se utiliza
para enviar instrucciones de 16 bits especificado en datos 16 A DPTR.
Mueva la instruccin MOVX (externo) transferir los datos a o desde memoria de datos externo. Estas
instrucciones areMOVX A, 0DPTR y MOVX 0DPTR, A. ft'DPTR significa la direccin apuntada por 16
bits de DPTR. Para una memoria externa de 8 bits de la direccin, en lugar de DPTR, @R, se utiliza (i = 0 o 1).
MOVC (mor e cdigo de instrucciones de memoria de programa externo) transferir los datos de la memoria de
programa externo. Instrucciones MOVC ARC A, 0A + y MOVC DPTR A, 0A+PC.
Para comba, existen operaciones PUSH y POP directo instrucciones directas.

Instrucciones de manipulacin de bits cada bit de ciertos SFRs y una RAM interna de 8 bytes se
asignan las direcciones de bits en 8051 hardware. Hay instrucciones de manipulacin de bits
para borrar, set y o. MOV el bit.
Instrucciones de manipulacin Bvic hay instrucciones de manipulacin de bytes para girar a la
derecha, girar a la izquierda, girar a la derecha una con llevar, girar a la izquierda una con
llevar, un complemento, un claro e intercambie con un nibble inferior y superior (conjunto de 4
bits).
Instrucciones aritmticas instrucciones aritmticas del operando de origen se almacena en el
acumulador y el resultado de la operacin tambin se almacena en el acumulador. Por ejemplo,
agregue un, Rn. Se agrega el byte en una con el byte en el registro nlh. (A <- + Rn). Tres instrucciones
aritmticas son Add, ADDC (agregar incluso transportar bits) y SBBB (restar incluyendo prestados bits). Llevar bit
se establece a 1 cuando una operacin se traduce en cany o

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


!65real

Pedir prestado. Pedir prestado es guardado en el llevar a golpear. El segundo operando puede ser K". directo, (ff
Rj o #dala (i = 0 o I). El significado de estos es el mismo que en el caso de que los datos transferidos instrucciones
(explicado anteriormente). He aqu tambin una instruccin para ajustar hexadecimal decimal adems de adicin.
Las instrucciones de transferencia de datos
Mueva el byte entre acumulador (SFR) y
registrarse en un banco de registros
Mover un byte desde SFR/RAM interna directa a otro
Mover indirecto
Mover inmediata, MOV DPTR inmediata
Y indirecta MOVX MOVC

Direct Push Direct Pop.

Manipulacin de bits (Boolean) Instrucciones de procesamiento


Claro, establecido. Se complementan. Y O O O MOV el bit
Instrucciones de manipulacin de bytes
Claro, se complementan. Swap y girar instrucciones
Instrucciones de lgica
Y, XOR, o instrucciones de funcionamiento _
Instrucciones aritmticas
Instrucciones aritmticas
Instrucciones Increment-Decrement

Instrucciones de control de flujo de programa


Instrucciones de rama
Saltos condicionales
Decremento y salto condicional
Comparar y luego salto condicional
La llamada de subrutina instrucciones
NOP
Retraso
Interrumpir las instrucciones de control de flujo
Interrumpir el control de flujo de bits de mscara, bits de prioridad
RETI

Fig. 2.2 Tipos de instrucciones del conjunto de instrucciones en 8051


Las instrucciones Inc y Dec a aumentar (I) y disminucin (i) los bits de una! La fuente. El origen puede ser
R". directa. <&'R; o A.
MUL y DIV AB AB son utilizados para encontrar A - B <- A x B y A - B "- A + B. La multiplicacin
se traduce en menores de un byte y superior en la Divisin B. Resultados cociente se almacena en una y el resto
en B.

Instrucciones de lgica instrucciones de lgica uno de los operandos es fuente directa o del
acumulador y el resultado de la operacin es tambin en el acumulador o directa. Por
ejemplo. ANL, RnandANL directa, Rn. Lgico ys el byte en una o directamente con el byte en
nlh inscribirse en el registro. (Un""- A^R,,). Tres instrucciones de lgica son ANL (y la lgica), ORL (o lgica)
y XRL (lgica XOR). El segundo operando de origen es @R; o Rn o directamente cuando la primera fuente cum
es un destino, y es A y #datos cuando la primera fuente cum destino es directa. [el significado de estos comieron
el mismo como en el caso de las instrucciones de transferencia de datos (explicado anteriormente).!

Los sistemas integrados

Programa El Programa de instrucciones de control de flujo (bajo control se realiza por instrucciones de salto corto
de Tor, absoluta jump o salto de longitud o salto. Breve instruccin de salto es una direccin relativa dentro de 128 y +127. La instruccin de salto absoluta es dirigir la direccin de 11 bits en la memoria del programa.
Instrucciones de salto de longitud es directamente a la direccin de 16 bits en la memoria del programa. Instruccin
de salto es apuntado por un + (s'DPTR.
Instrucciones de control de flujo condicional del programa estn tambin presentes. Instrucciones de control de
bucle estn tambin presentes en el que valor de recuento de salto en Rn o directo, y desplazamiento. Ambos estn
especificados en la instruccin de control de bucle.
Control de flujo de programa en una subrutina llamada por llamada absoluta o largo la instruccin Call. La
instruccin call absoluta es llamar a una determinada direccin de 11 bits directamente en la memoria del programa.
La instruccin de llamada larga es llamar a un determinado telfono direccin de 16 bits directamente en la memoria
del programa.
Volver desde una rutina es llamado por instruccin RET y regreso de rutina de servicio de interrupcin es POR
RETI.

2.1.3 10 puertos, circuitos y programacin 10


La figura 2.3(a) muestra PO, PI, P2 y P3 de 10 puertos en 8051.8051 en modo de un solo chip tiene cuatro puertos.
Chip nico significa que no hay chips de memoria externa o puertos o puerto serie o perifrico conectado al puerto.
La seccin 2.1.4 dar un circuito en modo ampliado.
Las capacidades de conduccin de puerto especficos dependen de la versin de 8051. PO es un drenaje abierto
de 8 bits 10 puertos bidireccionales y PI a P3 son casi 10 puertos bidireccionales. Puerto de drenaje abierto significa
que el puerto de salida pasadores tire hacia arriba necesitan un circuito o resistencia a elevar el nivel de tensin a la
lgica I. Un cuasi 10 puerto bidireccional puede conducir por dos ciclos de reloj ocho LSTTL lgica gates en 8051.
Para una mayor capacidad de conduccin, tire hacia arriba de los circuitos ser necesaria. Puerto PI bits son drenaje
abierto en P83C538 versin como dos bits pl.6y PI.7 se usan para I:C bus (Seccin 3.10.1) Las seales de reloj y
datos.
Los circuitos de los puertos IO las secciones 2.2.6 y 3.3 se describe el circuito de interfaz de puerto lO bits para
interruptores, teclado, codificadores, motores y controladores LCD. Las figuras 2.3(b) y (c) muestran los puertos IO
PI circuitos para dos motores de pasos en una imprimacin y seis servomotores en un robot. IO PORT bytes y bits
estn programados y acceder de la siguiente manera:
(i) 5LQ Vic la programacin interna puertos IO PO, PI, P2 y P3 en el 8051 tienen direcciones de bytes para
acceder y leer, escribir o realizar otras operaciones. Estas direcciones son las direcciones de 8 bits directa
de cada uno de los que se especifican en las instrucciones. Direcciones de bytes en PO. PL P2 y P3 tienen
0x80, 0x90. OxAO y 0xb0. Todas las instrucciones del conjunto de instrucciones utilizando direcciones
directas puede utilizarse para acceder y realizar las operaciones de lectura o escritura en los puertos.
(ii) IG Puerto de programacin de bits cada puerto PO, PL P2 y P3 tiene 8 bits, y cada bit tiene direcciones para
acceder y realizar las operaciones de lectura o escritura utilizando instrucciones de manipulacin de bits.
Estas direcciones son la direccin de bit de 8 bits, que se especifican en las instrucciones. Bits PO.O a P0.7
tienen direcciones 0x80 a 0x87. Bits PO.O a P0.7 tienen direcciones 0x80 a 0x87. Bits 1.0 P A P 1.7 tienen
direcciones 0x90 a 0x97, A P2.0, P2.7 OxAO a 0xA7 y P3.0 a P3.7 0xb0 a 0xB7. Todas las instrucciones
Ejemplo
2.1. de instrucciones utilizando las direcciones de bits puede utilizarse para acceder y realizar/ o
del conjunto
1. MOV
OxAO,
har mover de
bitslectura
al puerto
P2 y P2 seElconvertir
complementar#0xFF
las operaciones
o escritura.
pabelln en
C bits
en el= 1111111
PSW es libras.
el acumulador para
,'?s MOV
0x90, lgicas
#0xlC se
mover
el puertodirecciones
Pi = 00011100b.
operaciones
sobre
losbits
bitsen
utilizando
de bits.Despus de esta instruccin,
INC 0x90 willmakePl =00011100b+ 1 =0P011101b.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y el entrelazado del mundo real
67

__________ R~pi~i _______

_____________ TUl
P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7
Tambin RxD/Syn cata,
TxD/Sincronizacin Clk,
INT0/GT0, INT1/GT1, A, T1, WR, RD

_ _____________

P1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.6 P1.7


tambin como l2C reloj, P1.7 como datos en
serie, 1% y 1,0 y P1.1 forT2 8052

P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7


tambin como A8 - A15
P2|

R PO.PO.I P0.2 o P0.3 P0.4 P0.5 P0.6


P0.7
J tambin como ADO - AD7 ________

CEE]
P1.0
P1.1
P1.2
P1.3

(a)
Motores de pasos 1 & 2
Una bobina
Bobina B
P1.4
CoilC
La bobina D

INA

PI-

B''' Bo

5 P1.

bina

P1.0
P1.1

Servomotor 2

P1.0

Servomotor 3

P1.1

Servomotor 4

Yo ----------

Yo P1.1

Yo __

A BOB

P1.3 j- -

6
(b)
Servomotor 1

J P1.0

Bobina

Bobina
C D'.

Servomotor 5
Servomotor 6
(c)

Fig, 2 (o 3) puertos IO en 8051 (fa) puertos IO CIRCUITO PI para dos motores de pasos en una

impresora
(c) Circuito de puertos IO seis servo motores en un robot

Ejemplo 2,2
1. CPL 0x90 complementar el bit 0 en el puerto PL
2. CLK 0x80 har PO.O como 0. Ahora, despus de un retardo de tiempo= TL, la SETB 0x80 har PO.O
como yo ahora, despus de un retardo de tiempo = T2, el CLRB 0x8 0 har ganar PO.O como 0. Un
pulso de tiempo- el perodo T2 y ciclo de trabajo de 100 T1/(T1 + T2) Crea si comi las instrucciones
ejecutadas en un bucle.
3. C ajustar SETB llevar poco en PSW a 1. Tras esta operacin, ANL C, 0x93 funcionar la lgica y
La operacin entre bits C y P1.3 y resultado ser SC. Si PI .3 = 0 Then C se convertir en 0 persona C
seguir siendo 1.
Yo
4. C se restablecer de CLR (borrar) llevar poco en PSW 0. Despus de la operacin, ORL C, Ox.32 una
infraccin
Realiza la operacin lgica o entre bits C y P3.2 y resultado ser en C. Si P3.2 = 0 ml y luego C
permanecer 0 persona C permanecer I. Tras la operacin, MOV, 0x85 C
mover el resultado en C para P0.5.
Mg

instruccin

Mi

Los sistemas integrados

2.1.4 Los circuitos de interfaz de memoria externa.


La figura 2.4(a) muestra cmo conectar el programa externo y los circuitos de memoria de datos en modo51 arco
hay dos conjuntos de memoria, memoria de programa y memoria de datos. El procesador tiene dos sienals control
I'SNE y Rl) para el control de lectura de memoria de programa o de datos. El procesador tiene una seal de control
UNA I.E a controlar el uso del al )()- AD7 como direccin o datos en una instancia dada. Seccin 2.2.1 explica
PSEN. Rl) y ALE de seales de control.
1. Puerto PO se utiliza en modo ampliado como AD0-AD7. AD0-AD7 son las seales multiplexadas de la
A0-A7 direccin inferior de bits del bus de direcciones y D0-D7 bits de bus de datos. A0-A7 y D0-U7 son
multiplexados por divisin de tiempo. Para un intervalo el procesador activa AI.E (address latch enable)
en un ciclo de instruccin y la AD0-AD7 las lneas A0-A7; un circuito latch separa A0-A7, las seales de
la memoria.
2. El puerto P2 tiene A8-A15 direccin seales. Cuando el procesador se activa PSFN (Programa almacenar
enable), n lee el byte de la memoria de programa externo a travs de la D0-D7 del bus de datos. Cuando
el procesador se activa de rodadura RD), lee el hyte desde la memoria de datos externos a travs de la D0D7 del bus de datos.
Para direcciones fuera de la RAM interna. SFR y programa interno siempre la memoria, el procesador accede
a la memoria externa. Es decir independientemente de habilitacin externa de EA activo o inactivo. La RAM interna
y SFR direcciones entre Ox(K) y OxFF son las mismas direcciones de memoria externa 0x0000 y OxFFFF. Las
direcciones de memoria de programa interno entre 0x0000 para OxFFF (en el caso de los 4 kB de ROM interna) son
las mismas que las de las direcciones de memoria de programa externo 0x0000 y OxFFFF. Cuando se activa una
seal de control de EA, el procesador accede a las direcciones externas en la memoria en lugar de en la memoria
interna o registrar estas direcciones.
El 8051 tiene una memoria asignada 10 (Seccin 2.2.2). Memoria y sondeos se asignan direcciones de tal
manera que cada una de ellas tiene un rango de direcciones distintas en el espacio de direcciones de memoria de
datos. Por lo tanto, entrelazando el diseo del circuito es idntico al de la memoria y conecta los puertos externos y
perifricos de interfaz programable (PPI). La memoria y los puertos se asignan las direcciones tales marcar cada lia
un rango distinto o direcciones. Un chip de PPI es 825.5. Figura 2.4(b) muestra el entrelazado cuando utiliza los
puertos externos de PPI PA. PB y PC".

2.1.5 Contadores y temporizadores


La figura 2.5 muestra las especificaciones de contadores y temporizadores, y T1 en 80.51. Hay dos arco encalado y
dispositivos de cmputo y Tl en clsicos y tres a 80.51. Tl y T2 en 8052. Yo'sing los dos SERs. THI -TL. I. El conteo
en la parte superior e inferior de 8 bits de Tl se accede a ellos. .SFRs sostenga el dispositivo Tl lb bits. L'sing dos
SFRs. TH0-TL0. tile superior e inferior de 8 bits que se accede a ellos. Las SFRs sostenga el dispositivo a 16 hits.
Una SFR llamado TMOD controla el TL y modos con la parte superior e inferior de 4 bits cada uno, los
programas que el couniing/tiiiiing de Tl y. Un golpe para cada uno controla si la puerta externa o controles de entrada.
mu. Otro bit controla si el contador o se utiliza el modo de temporizador. Otros dos hits controlan el modo funcional
de linier/contador como modo 0 o I o 2.
Los registros del dispositivo de distribucin/counling tiempo cuando las entradas estn dadas por el reloj. Los
pulsos de reloj son internamente dada a intervalos de tiempo especficos en caso de funcionamiento como ahora
son ms finos. Registra tambin cuenta cuando las entradas estn dadas externamente. El contador est dada la
entrada a contar desde las patillas de entrada externa.
1. Cuando el reglaje o contando el nmero de dispositivos se controla externamente por la puerta, entradas al
GT0 o GTI est activada externamente, el dispositivo puede funcionar: else, se desactiva en modo de entrada
de la compuerta. GTO O GTI son las seales dadas por el P.3.2 y P3.3.
2. Cuando est en modo de contador, se le da la entrada a contar desde la clavija de entrada externa al P3.4.
Cuando TL es en modo de contador, se le da la entrada a contar desde la clavija de entrada externa Tl al
P.3.5.

8051 y arquitecturas de procesador avanzado. Organizacin de la memoria y de la interconexin del mundo


I 69 real

EAALE -

Pestillo L

P0

Como
ADOAnunc
io?

ADO -AD7
PA.O

Decodificador
CS

Pestillo
ALE-

PA. 7

0
8255

A2-A7

P2

Como
A8A15

PA

PB

I 10

PC

A8-A15

PB.O

PB.7

PC.O
A
PC.7

P3.6 (WR) P3.7 (RD):

(b)
Fig. 2.4 (a) Conexin de 8051 al programa externo y los circuitos de memoria de
datos (b) Interconexin de 8051 PPI 8255 puertos externos PA, PB y PC

Y TCON.4 controlar el inicio y parada del temporizador/estado de desbordamiento counler Tl y respectivamente.


Los bits inferiores de la TCON son utilizados para el control de interrupcin en e INTI (Seccin 2.1.7).

2.1.6 La comunicacin de datos serie de entrada/salida


La figura 2.6 muestra los puertos serie y de comunicacin serial de datos mediante interfaz serie (IS) en 8051.
Hay dos modos: IS half duplex full-duplex sincrnica y asincrnica. Half duplex significa uno

Los sistemas integrados

P3.2, P3.3, P3.4 y P3.5 como GTO (gate iniciar/parar la T1), GT1 (gate iniciar/parar la T1),
a la entrada de conteo (A) y (T1 a T1 de entrada de recuento) Entradas, respectivamente
cuando TMODbits3,7,2 y 6 estn establecidos en
Tlmer/CounterTO

8 bits utiliza SFRs areTMOO4 inferior (bits). TCON (bit 5 y4), TLO Conteo/hora (bits), THO (bits
Conteo/hora)
Contador con insumos a P3.4 cuando el bit 2 en TMOD=1, temporizador con reloj interno
timedinputswhenbit2atTMOD = 0
Cuando el modo set = 0,8 bits de modo contador/temporizador. Aunque se utiliza como A y se
utiliza para prescaling TLO (dividir) i
Recuento de entradas o el reloj por 32
!
Cuando el modo set = 1,16 bits/Temporizador modo de contador con tho-TLO es utilizado para
sincronizar
o
contando
con
a
Yo
Cuando el modo set = 2,8 bits contador/temporizador. Aunque se utiliza como y TLO es utilizado
para auto-recarga de la THO despus I
Timeout con un valor
predefinido en TLO
|
Temporizador/contraeje
superior1
Cuando el modo set = 3, dos de 8 bits temporizadores/contadores THO y modo TLO son
independientes8-bittimer
8-bitSFRsused TMOD(upper4bits),TGON(bit7y6),TL1
(recuento/timebits),TH1
(recuento/timebits)
contadores/yt1 j
| No funciona.
!
Contador con insumos a P3.5 cuando el bit 6 en TMOD=1, temporizador con entradas de tintado
de acoplamiento interno cuando el bit 6 en TMOD = 0 J
Cuando el modo set = 0,8 bits de modo contador/temporizador y TH1 Y TL1 se utiliza para
prescaling (dividir) entradas j
Por 32
|
Cuando el modo set = 1,16 bits/Temporizador modo de contador con TH 1-TL1 se usa Tor o
conteo de distribucin
Cuando el modo set = 2,8 bits contador/temporizador se utiliza TH1 Y TL1 se utiliza para autorecarga de la TH1 despus del tiempo de espera |
Fig. 2.5-cum-contadores
y temporizadores para T1 en 8051
Con un valor predefinido
en TL1
)
Cuando el modo set=3, T10nowtunctionsasindependent stopsasTH8-bittimerinplaceofT1
P3 |

P3.0 y P3.1 como pasadores para RxD y TxD UART serie modo de entrada y salida, o el modo
serial sincrnica |
Entradas de datos y reloj, o modo serial sincrnica de datos y salidas de reloj, respectivamente
J

SI la interfaz serie (programable para half duplex o full duplex serial sincrnica asincrnica modos UART)
!
8-bitSFRsused son SBUF (serie de 8 bits recibidos ortransmission bits registerdepending
siguiendo instrucciones es !
Utilizando SBUF como origen o destino), SCON (8-Modos serie cum bits de control register) y
SFR PCON ! T^poco utilizados
J
Modo serial sincrnica de datos y reloj de insumos o modo serial sincrnica de datos y salidas
de reloj dependiendo de la instruccin es utilizando como fuente o destino SBUF cuando
SCON los bits 7 y 6 son 00 (modeO)
10 bits (start plus 8- plus de datos serie detener total 10 bits) serie de modo UART con entrada
y salida programable en baudios mediante T1 o T2 temporizadores (en 8052) cuando SCON
los bits 7 y 6 son 01 (modo 1)
11 -poco (start plus 8- plus de datos serie RB8 o TB8-bit ms parada total de 11 bits) en modo
UART serie de entrada y salida con la velocidad en baudios de fijo (f/32)+12 O (f/64)-s-12
Mbaudios/s donde f = frecuencia de cristal. La tasa depende de PCON7bitSMOD = 1 orO,respectivamente whenSCONbits7y6aretO(modo2)
11 -poco (start plus 8- plus de datos serie RB8 o TB8-bit ms parada total de 11 bits) en modo
UART
serie
deyentrada
y salida
condeladatos
velocidad
en baudios
programables
Fig. 2.6
puertos
serie
comunicacin
serial
mediante
interfaz serie
(IS) en 8051mediante T1 orTO
temporizadores (T"HN 801$) cuando SCON los bits 7 y 6 son 11 (modo 2).

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo71


real

Utilizando el nico SFR para transmitir y recibir buffers de byte, la serie de salida o entrada se enva. Las
SFRs mantenga la transmisin is 8 bits cuando se escribe. 0x99 es la direccin de la IS, buffers. Por
ejemplo, MOV 0x99, una instruccin escribe en el bfer de transmisin desde el registro R1 y MOV, 0x99
instruccin lee el registro R1 desde el bfer de recepcin.
Una SFR llamado SCON controla la interfaz IS. Los tres bits superiores los modos de programa como 0,1,2
o 3. El modo 0 es half duplex sincrnico. Modos I o 2 o 3 son asncronas dplex. Modo 2 transmite y recibe en
11 formato T y el modo 1 en formato 10t. T es el intervalo entre los sucesivos bits transmitidos o recibidos y
t^1 es la velocidad en baudios. (Seccin 3.2.3 da los detalles). Los modos 1 y 3 son para la programacin de
velocidad en baudios y 2 para fijar la tasa de baudios.
Un poco SCON.4 si habilita o deshabilita las funciones del receptor. Dos bits SCON.3 y SCON.2 Especifique
el 8 bit a bit 8 ser transmitidos y recibidos cuando el modo es 2 o 3. Un poco SCON. 1 Activa o desactiva el
transmisor si interrumpe (Tl) en la finalizacin de la transmisin. Un poco SCON.O receptor si habilita o
deshabilita las interrupciones (RI) en la finalizacin de la transmisin.

2.1.7 Se interrumpe en 8051


La figura 2.7 muestra las especificaciones de sistema de interrupciones en el clsico de 8051. Hay varias
interrupciones en 8051. Cuando una interrupcin est activado (no enmascarada), luego de la ocurrencia de un
evento de interrupcin que se llama ISR.
P3.2 y P3.3 como pasadores para A INTI y pasadores de interrupcin externa cuando el bit 7 de IE (interrupt
enable SFR) Ea (habilitar todas) bit es 1, y los bits 0 y 2 son 1 y 1, respectivamente.
Fuentes de interrupcin
8-bit SFRs utilizados son IE (uno de habilitacin de interrupcin a//EA poco a habilitar las interrupciones y
permiten que cada uno de los bits restantes interrumpe) e IP (interrupcin individual prioridades bits alta o baja)
En interrupcin externa
Para desbordar interrumpir
INT1 interrupcin externa
Interrupcin de desbordamiento de T1
SI UART serie modo sincrnico o interrumpir
SI EL MODO serial sincrnica interrupt (separado en algunas familias de8051)
Temporizador 2 interrumpir en 8052
| Vector direccin desde donde el ISR de 8 bytes o ejecuta un salto a la direccin inicial de ISR programado
de que EA bit se establece as como est establecido el bit de interrupcin especficos

j toma lugar en caso

0x0003
Prioridades
predeterminada
0x0013
s por el
hardware
0x001B
(software
asignado alta
0x0023
prioridad en
0x002B
configuracin
IP
0x0053 en unas pocas
predeterminada
ovenides)
versiones
| entre ISR de baja prioridad de ejecucin permite el flujo
del programa sobre ISR de mayor prioridad de interrupcin: S
OxOOOB

Fig. 2.7 interrumpe en arquitectura 8051

I 72

Los sistemas integrados

SI se interrumpe la transmisin o el receptor y el modo sincrnico cuando ocurren interrupciones si est


programado usando SCON. Hay temporizador y Tl para desbordar las interrupciones cuando Tl y arc programado
utilizando TMOD y TCON. Hay dos pasadores externos tor interrupciones desde perifricos o circuitos externos.
Dos pasadores de interrupcin externa. En e INTI en P3.2 y P3.2 puede interrumpir siempre estos pasadores
estn programadas por los 4 bits inferiores TCON y registrar hits del IE IE.2 y 1E.0.
81)51 hardware establece prioridades predeterminadas para el servicio en el caso cuando ocurren interrupciones
mltiples simultneamente. De forma predeterminada son las prioridades en el orden. Hasta que rebose. INTI.
Desbordamiento de TI, SI (modo UART), T2 (en 8052) y SI (el modo sincrnico). Utilizando el SFR. llamadas IP
(prioridad de interrupcin) registro, en la direccin 0xB8 para el byte y en las direcciones 0x88 a 0x8C, 0x8D, o
0x8E para los bits individuales en el registro, una instruccin puede definir que una interrupcin es de mayor (=1) o
de baja prioridad (=0) entre las diversas interrupciones en 8051. |Seccin 4.6.3].
Con el IE (SFR) Registro de habilitacin de interrupcin en la direccin 0xA8 de bytes y en las direcciones
0xA8 a 0XAF para los bits individuales, un programa que habilita o deshabilita las interrupciones (Seccin 4.4.3).
TCON.3 muestra el estado de la interrupcin al Inti y auto se restablece a 0 cuando el ISR para el mantenimiento
INTI interrumpir comienza. TCON.I muestra el estado de la interrupcin en en auto y se restablece a 0 cuando el
ISR para mantenimiento en comienza. TCON.2 muestra el tipo de interrupcin al Inti y yo si es del borde activado,
de lo contrario, escriba 0. TCON.O muestra el tipo de interrupcin en en y es 1 si el filo es activado, de lo contrario,
escriba 0.
El 8051 ha fijado las direcciones del vector de interrupcin (Seccin 4.4.1). Un espacio de direcciones de 8
bytes es siempre entre dos direcciones de vectores. Un ISR (Seccin 4.2) se almacenan dentro de estas direcciones u
otro ISR se llama desde estas direcciones si el ISR es larga.

2.2

La interconexin del mundo real

2.2.1 Sistema basado en bus y 10 basados en Bus 10s fo*- rea! Interfase madera
Figuie 2.8 muestra las interconexiones para una sencilla estructura de bus cuando entrelazando el procesador, la
memoria;." !0 dispositivos. Tres conjuntos de seales - clasificados como bus de datos, bus de direcciones y bus de
control define el bus del sistema. Las caractersticas del bus interno del procesador(es) difieren de los de los SUH
externos del sistema(s). Un sistema de interfaz de bus-diseo es creado de acuerdo a las necesidades de los
procesadores de seal tinting diagrama, velocidad y longitud de palabra mueren para instrucciones y datos.

RAM

ROM

T-Zlz

bus de
direcciones bus

Procesador

de datos bus de
control
Entrada - Salida de los puertos y dispositivos

Fig. 2.8 Las interconexiones para una sencilla estructura de bus al interconectar el procesador1';
La memoria y el bus de sistema de 10 dispositivos utilizando

.(*>

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

Bus de direcciones del procesador emite la direccin de la instruccin byte o palabra a travs
del sistema de memoria
La direccin SUH. La unidad de ejecucin del procesador, cuando sea necesario, las cuestiones de la direccin de
datos (byte o palabra) a
Sistema de memoria a travs del bus de direcciones. Un bus de direcciones de 32 bits letches instrucciones o datos
desde una direccin
Especificado por un 32-bil nmero.

Ejemplo 2.3.
!. Deje que un procesador al inicio restablecer el contador de programa en la direccin 0. A continuacin,
el procesador de issi
Direccin 0 del bus y la instruccin en la direccin 0 se obtiene de la memoria.
2. Deje que un procesador instruccin sern tales que necesita cargar registro rl desde la direccin de
memoria
M. Los problemas de procesador direccin M sobre el bus de direcciones y datos en la direccin M es
descabellada.
Cuando el procesador de bus de datos emite la direccin de la instruccin, que recibe la instruccin mediante el
El bus de datos. Cuando expide la direccin de datos, carga los datos a travs del bus de datos. Cuando se emite
el
La direccin de los datos, almacena los datos en la memoria a travs del bus de datos. Un bus de datos de 32 bits
recupera, cargas, o
Estoicos las instrucciones o datos de 32 bits.

Ejemplo 2.4
1. Cuando el procesador cuestiones abordan m para una instruccin, recupera la instruccin a travs del
bus de datos
La direccin mala. |32-bil, palabra de instruccin en el bus de datos es de direcciones m, m + M + 2 I.
Til+ 3. |
2. Cuando una instruccin es dada para almacenar registro rl a la direccin de memoria del procesador M
Cuestiones abordan M en el autobs y enva datos de mosaico en la direccin M mediante los datos tuts,
jf-'O
32 bil datos, Word al bus de datos para las direcciones de memoria M. I. M + M + M + 2. y 3.|
Bits de control un bus de control emite seales para controlar el encalado de \arious acciones durante la
interconexin,
Estas seales sincronizar los subsistemas. No puede ser el siguiente:
Direccin latrli enable |(ALK) Address Strobe (AS) o una direccin vlida (IKD ADVtj. Memoria de plomo)
o escribir
(WR) o 10 (leer (K)RD) ov escribir. (IOWR) o datos vlidos (DAV). interrumpir reconocer tlNTA) sobre una
solicitud
Para atraer la atencin del procesador a un ev ent, o mantenga el reconocimiento (HLDAi sobre una solicitud de
retencin externo
Para permitir el uso del sistema de autobuses, y otras seales de control como por el diseo del procesador. Las
seales de control de entrada
Puede ser INTR (Interrupcin) cuando un dispositivo externo interrumpe el sistema y espera cuando externa!
Dispositivo enva
Una solicitud de retencin para acceso directo a memoria (DMA).

74

Los sistemas integrados

Yo

Los autobuses pueden tener un multiplexado por divisin de tiempo (TDM) direccin y bits de datos lor
recuerdos. El circuito de interfaz que demultiplexar los autobuses utiliza una seal de control. [TDM significa que
en diferentes intervalos de tiempo, existen diferentes conjuntos (canal) de seales.] El sistema tiene una direccin
de seales en una ranura de tiempo y las seales del bus de datos en otro. La seal de control se denomina Address
Latch Enable (ALE) en 8051. La seal de control es Address Strobe (AS) en 68HCI1. La direccin es vlida, (ADV)
en 80196. Una ALE, o ADV demultiplexes la direccin y los buses de datos en los dispositivos.
Los autobuses para el programa y los datos de memoria puede ser multiplexado. El circuito de interfaz para el
Demultiplexado de los autobuses que utiliza una seal de control. La seal de control se PSEN en 8051 para
demultiplexar bus direccin comn del Programa y de la memoria de datos. Cuando el PSEN se activa, enva seales
para leer la memoria de programa. Cuando otra seal de control RD se activa, enva seales para leer la memoria
de datos.
Cada chip de la memoria o el puerto al que se conecta el procesador tiene un chip independiente seleccione la
entrada desde un decodificador. El decodificador es un circuito que tiene los bits de la direccin en el bus de entrada
y genera correspondiente CS (chip select) seales de control para cada dispositivo (memoria y puertos) que estn
en el conjunto de direcciones en el sistema. Demultiplexor y decodificador circuitos utilizan ms bits de bus de
direcciones, PSEN y Ale en 8051.
Un circuito llamado circuito de pegamento, el cual incluye el descodificador para la interconexin del sistema
de autobuses entre el procesador, la memoria y 10 dispositivos. A travs de las interconexiones son datos y direccin
y seales del bus de control. Comprensin de diagramas de distribucin de seales de bus es esencial para el
adecuado diseo de las interfaces y la fusin del circuito (quema) en un dispositivo lgico programable (PLD),
GAL o FPGA. Las figuras 2.4 y 2.9(a) y (b) muestran los circuitos de la memoria y los puertos de interconexin en
8051 y 68HC11, respectivamente. El microcontrolador 8051 utiliza una seal adicional, PSEN (Programa
Almacenar Enable), para el programa de lectura de los cdigos de la memoria de programa). [Esto es debido al uso
de la arquitectura de Harvard (Seccin 2.4.2) para el sistema de recuerdos.]
Un circuito de interfaz se compone de descodificadores y demultiplexers y est diseado de acuerdo a la
disponibilidad de seales de control y diagramas de distribucin de seales de bus. Este circuito se conecta todas
las unidades, el procesador, la memoria y el 10 dispositivo a travs del sistema de autobuses. Es una parte del
circuito de pegamento utilizado en el sistema y est en GAL (generic array logic) o FPGA.
La figura 2.8 muestra un diagrama sencillo de un equipo tpico sistema en el que los autobuses ofrecen una
red de interconexin entre el procesador, la memoria y 10 sistemas. En el mundo real las interconexiones, la red
est formada por autobuses en los principales subsistemas.
El bus del sistema interconecta los subsistemas, que interconecta el procesador con la memoria sistemas y
tambin conecta otro conjunto de seales llamado el bus 10. La figura 2.10 muestra el sistema y 10 autobuses.
Es una arquitectura de bus de dos niveles. Utilizando un bus 10 permite a un ordenador para interfaz con una
amplia gama de 10 dispositivos, sin tener que implementar una interfaz especfica para cada dispositivo 10. Un
10 Bus tambin puede admitir un nmero variable de dispositivos, lo que permite a los usuarios agregar
dispositivos a un sistema despus de que haya sido grabada. Los dispositivos pueden ser diseados para
interactuar con el bus, lo que les permite ser compatible con cualquier sistema que utiliza el mismo tipo de bus
10. El 10 bus crea una abstraccin de interfaz que sigue el procesador de interfaz con una amplia gama de 10
dispositivos utilizando un conjunto muy limitado de hardware de interfaz.
Descripciones detalladas de 10 autobuses, popular y comunicacin inalmbrica figuran en los apartados 3.10 a
3.13.
Bus PCI y USB (Seccin 3.12.2) interfaces para dispositivos estn diseados para cumplir con el estndar PCI y
USB (Seccin 3.10.3) estndar.
Todo lo que se necesita es un controlador de dispositivo (Seccin 4.2.4) en cada sistema operativo, un
programa que permite al sistema operativo controlar el dispositivo 10 (Seccin 8.6.1).
La desventaja de usar una interfaz de bus de 10 a 10 dispositivos es que todos los 10 dispositivos en un
equipo debe compartir el bus 10, y 10 de los autobuses son ms lentas que las conexiones dedicadas entre el
procesador y un dispositivo de 10 porque el 10 autobuses estn diseados para ofrecer la mxima
compatibilidad y flexibilidad.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real ; 75

68HC11
E reloj de 8 MHz XTAL
T = 0.25 GS
T = 0,25 ns

<F A8...A15
0,25 ns" 2t1

Como

R/W_ t2
R/W =1
AD0-AD7

.. A0-A7

----D0-D7
D0-D7
(durante la grabacin) (durante la
lectura y
escritura).
(. ----- Leer

. -i
i

(a)

-r

0x0000

Escribir

I
T A8 a A15

R/W i - - - - - - - - - - - - - - - - - - - - - - - - - - - -

0
1

Como
A0.A1...A7

'AD0,AD1J....AD7^>_

..J OxFFFF
D0-D7
(ft)

I'ig. 2.9 (a) la sincronizacin de las seales del procesador cuando la interconexin de memoria y los puertos
de 68HC11
(b) Los circuitos de la interfaz de memoria y los puertos de 68HC11
Un circuito de interfaz se compone de descodificadores y demultiplexers as como un puente de 10 bus
controller. El circuito de interfaz est diseada como por seales de control y diagramas de distribucin de
seales de bus. Este circuito se conecta todas las unidades, procesador, memoria, bus de E/S del controlador
puente y los dispositivos de E/S a travs del sistema, as como a travs de los buses de E/S. Controlador del
puente de bus de E/S puede ser una parte cf el circuito de interfaz de pegamento utilizado en el sistema y es
en el dispositivo lgico programable (PLD), GAL (generic aiTay lgica) o FPGA.
Autobuses multinivel la figura 2.10 muestra una arquitectura de bus de dos niveles. La figura 2.11 muestra una
arquitectura
de bus de tresde
niveles.
Ih.2.2 Direcciones
E/S de los puertos y dispositivos de interconexin del mundo

Memoria de operaciones de E/S Address-Mapped muchos procesadores y memoria


organizacin requieren memoiy-mapped IOs. IO Device y direcciones de puerto estn
interconectados de tal manera que estos son distintos de la memoria

real

Los sistemas integrados

Fig. 2.10 memoria, bus del sistema y 10 bus interficies en dos niveles de estructura de bus

Fig. 2.11 memoria separada y buses de E/S para comunicarse con el sistema de memoria, y el sistema de E/S
usando un controlador de bus y un disco independiente 10 bus

Direcciones. Son direcciones de memoria para datos y software y 10 direcciones son para el IOs. Las siguientes son
caractersticas de IOs: asignacin de memoria
El procesador no tiene separar 10 espacio de direcciones de puertos y dispositivos.
Las instrucciones, as como seales de control para las operaciones de bytes en la memoria, 10 puertos y
direcciones de dispositivo son las mismas.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


77 real

El procesador no tiene entrada-salida independiente y almacenar las instrucciones de carga de memoria.


La aritmtica, lgica, y las instrucciones de manipulacin de bits que estn disponibles para los datos en
memoria arco tambin disponible para 10 operaciones. El procesador puede manipular directamente los
datos tomados de 10 o almacenados en el puerto o dispositivo. La manipulacin de todas las instrucciones
en la memoria puede realizarse mediante un acumulador, cualquier registro o cualquier otra direccin de
memoria donde el byte 10 puertos se transfiere despus, durante o antes de la operacin aritmtica o lgica.
Casi todos los microcontroladores, por lo tanto, no tienen instrucciones de procesamiento 10. El
microcontrolador 8051 (Seccin 2.1) es un ejemplo de asignacin de memoria basada en 10 organizacin del
procesador y la memoria. Los microcontroladores 8051,80196 y 80196 han preasignado 10 direcciones de
dispositivo para sus dispositivos internos y estas direcciones no son configurables.
Figura 2.12(a) muestra las direcciones de los dispositivos que estn dentro de la RAM y son distintos de las
direcciones de memoria. Los procesadores Motorola no tienen instrucciones de procesamiento 10. Considere otro
sistema con un microcontrolador 68HC11.
La configuracin se muestra en la figura. Un puerto, 10 control register PIOC, el puerto C, B y el puerto de
control (CTL) registra tienen direcciones entre OxO(KK) a 0x0004. En chip de RAM est configurado entre
Ox003F a 0x0040. [Las direcciones de puerto y on-chip de RAM son configurables por los bits del registro de
configuracin en 68HCII. Por ejemplo, las direcciones de dispositivo anterior tambin puede ser re-configurado y
asignado entre 0x0100 y OX 1040. |

10 direcciones asignadas unas 10 operaciones de procesador y memoria requiere la


organizacin bajo la direccin asignada operaciones de IOs. Considere un sistema con un
procesador 80x86. Figura 2.12(b) muestra las direcciones de memoria en el lado izquierdo.
Muestra las direcciones de puerto asignados en IBM PC por temporizador, teclado, reloj de
tiempo real y el puerto serie (COM2) llamado en el lado derecho. Esta figura muestra las
direcciones de los dispositivos que no necesitan ser distintas, pueden ser los mismos que las
direcciones de memoria como una seal de control permitir distinguir entre ellos. Las
siguientes son caractersticas de direccin 10-mapped IOs:
1. El procesador tiene un espacio de direcciones separadas de 10 puertos y dispositivos.
2. Las instrucciones y las seales de control para operaciones en bytes en la memoria y 10 puertos y
dispositivos son distintos, haciendo que el diseo sea sencillo. 10 dispositivos y direcciones de puerto
estn interconectados independientemente de la memoria, sin tener en cuenta las direcciones de memoria
que se asignan para el software y los datos.
3. El procesador ha separado de entrada-salida (lectura y escritura) para instrucciones y carga de memoriastore (lectura y escritura) para obtener instrucciones.
4. Toda la aritmtica, lgica y poco instrucciones que estn disponibles en la memoria primero se acciona
mediante el acumulador y luego desde all los bytes se transfieren despus de una operacin aritmtica o
lgica.
El subsistema tiene 10 unidades de entrada y salida, tambin llamados unidades de 10 dispositivos. Todos los
10 puertos y dispositivos tienen direcciones. Estas son asignadas a los dispositivos de acuerdo con el procesador
del sistema y configuracin de hardware interno. ALU directa operaciones en Puerto byte(s) no est prevista.
Las direcciones de dispositivo dependen de la configuracin de hardware del sistema. La mayora de
procesadores siga memoria asignada- IOs y procesar los datos de la memoria y otros dispositivos con las
mismas instrucciones. Algunos procesadores utilizan IO-mapped IOs; por ejemplo, los procesadores 80x86
procesar estos con un conjunto distinto de instrucciones (instrucciones de entrada y salida) y las seales de
control.

2.2.3 Direcciones de dispositivo en rea! La interconexin mundial


Durante la instruccin el procesador, un dispositivo cuando los destinatarios, se selecciona y se comunica con el
bus de sistema de bus 10 o mediante un conjunto de direcciones. Estas direcciones son seleccionados segn el
diseo del circuito descodificador o segn el programa de controlador de dispositivo para un controlador de bus

78

Los sistemas integrados

Puerto de E/S y
direcciones de memoria
en una
configuracin68HC11 0x0000

Dispositivos de
un
PC
10
direcciones de
Ox0040
puerto
Timer .,--------- 1
:::zr~:.7ii OXOOSF
0x0060

0x0004
Ox003F
0x0040

Fuera de
chip
RAM

0x00000...
A
OxFFFFF...
Sistema
La memoria

Teclado
0x006F
0x0070
Reloj en tiempo real
0x007F

Yo
OxOOFF

Yo
Yo

Yo
,__j

Yo
Puerto serie 2 f
0x03f8 70x

0xB5FF

(a)
(b)
03FF
Fig. 2.12 (s) organizacin de procesador y memoria con dispositivos de I/O asignaciones de memoria
en
68HC11 (con memoria asignada 10 Arquitectura (b) Direcciones de dispositivo en el 80x86
PC IBM
1. Los registros de datos del dispositivo) o RAM bufferfs).
2. El registro de control de dispositivo(s) para guardar la configuracin y el control bits.
3. Registro de estado de dispositivo(s) de bits de la bandera segn el estado del dispositivo. Una bandera
puede indicar la necesidad de servicio o mostrar una ocurrencia de interrupcin del dispositivo.
Cada dispositivo y, por lo tanto, registrar, cada dispositivo debe ser asignado direcciones en el mapa de la
memoria.
Un punto muy importante que hay que recordar es que en la mayora de los casos, cada una de las direcciones
de los dispositivos de E/S se fija con frecuencia por el hardware del sistema. Un localizador o cargadora puede
reasignar estos a cualquier otro conjunto de direcciones. Adems, dependiendo del dispositivo y en una direccin
de dispositivo se puede uno o varios registros del dispositivo.
Un dispositivo fsico o virtual se puede configurar para conectar o desconectar desde la recepcin y el envo de
entrada salida. Una direccin de dispositivo tambin puede ser como un archivo, grabar la direccin y pueden ser
de slo lectura o de slo escritura o de lectura y escritura de ambos.
Ejemplo 2.6 proporciona los detalles de direcciones de los registros de un dispositivo, llamado 10 lnea
serie UART o dispositivo.

Ejemplo 2.6
Una lnea serie dispositivo tiene las direcciones asignadas por el dispositivo se registra. Las direcciones son
fijados por la configuracin de hardware de la interfaz del puerto UART del circuito en un sistema empleando
un procesador 80x86. Son de 0x2F8 a 0x2FE EN COM1 en el IBM PC.
1. (A) dos bfer de datos I/O registros (uno para recibir y otro para transmitir) son comunes de l
la direccin 0x2F8, siempre un bit de control en la direccin 0x2FBH es 0, (i) durante la lectura de la
direccin, el procesador accede a / desde el RBR (Receptor del buffer de datos de registro") y (ii) durante
la grabacin en J! La direccin, al que se accede desde la TRH (transmisor) en el registro de la
explotacin en 0x2F8H. (B) suministrada
Mj
Un bit de control en la direccin 0x2FB es I, los datos de dos bytes de divisor retencin son
a
direcciones, 0x2F8 (LSB) y 0x2F9 (MSB). El divisor pestillo tiene un valor de 16 bits para JBf

mi

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y el entrelazado del mundo real
79

Dividiendo el reloj del sistema. Esto, a continuacin, selecciona la velocidad de transmisin en serie de
bits en la lnea. [un poco en otro registro (el registro de control de cambios) 0x2F8 10 Registro de
asignacin a byte inferior al divisor del pestillo y registro 0x2F9 a byte superior. |
2. Tres registros de control de dispositivo se asignan tres direcciones 0x2FA, 0x2FB y 0x2FC de IER,
LCR y MCR. (i) Registro de habilitacin de interrupcin (IER) Permite dispositivo se interrumpe, (ii)
El registro de control de lnea (LCR) define cmo y cuntos bits estar en la lnea, (iii) El registro de
control de mdem (MCR) define cmo el mdem hace un apretn de manos para la comunicacin.
3. Tres registros del estado del dispositivo tambin se encuentran en tres direcciones 0x2FA, 0x y
0x2FD2FE como sigue:
(i) Registro de identificacin de interrupcin (HR) en 0x2FA. Tiene indicadores que establezca en un
dispositivo-interrumpir y restablecer en el restablecimiento del sistema y en la prestacin de servicios
en el dispositivo correspondiente-interrumpir, (ii) LCR Jj (Lnea de Control de registro) en 0x2FD.
Define cmo y cuntos bits estar en la lnea. Ml(iii) MCR (Registro de control del mdem) en Ox2FE.
Define cmo un mdem hace un apretn de manos mly se comunica.
Cada 10 dispositivo es en una direccin distinta o un conjunto de direcciones. Cada dispositivo tiene tres
conjuntos de registros; buffer de datos de registro(s) de control de registro(s) y registros del estado). Tambin
puede haber uno o ms registros de dispositivo en una direccin de dispositivo.

2.2.4 Interrupciones y 10s


10 Funcionamiento del dispositivo es lento si se compara con la de procesador. Por lo tanto, impulsado por una
interrupcin 10. Lntern<i>ts son el mecanismo utilizado por la mayora de los procesadores para
manejar eventos asncronos.
Esencialmente, las interrupciones permiten que los dispositivos para solicitar que el procesador deja lo que
est haciendo actualmente y ejecutar software (llamado rutina de servicio de interrupcin) para procesar la
peticin del dispositivo, al igual que una llamada a un procedimiento. ISR se inicia por un evento externo al
dispositivo en lugar de por una instruccin de programa.
Tambin se utilizan cuando se interrumpe un procesador, necesita realizar una operacin en unos 10
dispositivos y tambin necesita para hacer otros trabajos mientras espera a que se complete la operacin.

Ejemplo 2.7
1. Considere un ejemplo de teclado. Se tarda unos 10 ms para enviar el cdigo de una tecla presionada y
as un mximo de 10 teclas se pueden pulsar inis. Cundo se produce un evento de entrada clave no es
fijo. Intervalos, entre dos eventos sucesivos de insumos clave tampoco son fijos. En 10 modo llamado
modo controlado por interrupciones, cuando se presiona una tecla, una seal de interrupcin (datos del
receptor RxRDY preparados) a una unidad de procesamiento hace que la ejecucin de un servicio de
rutina y la rutina de servicio de programa lee el byte para ese cdigo. Figura 2.13(a) muestra el mtodo
de entrada desde y hacia un puerto con RxRDY interrupciones.
2. Considere la posibilidad de una impresora. Supongamos que un mximo de 300 caracteres puede ser
impreso en 1 s y por lo tanto toma
Acerca de 0,3 ms para imprimir el cdigo enviado a la salida por un puerto. Cuando una operacin de
impresin completa para un carcter que no es fijo. Los intervalos entre dos eventos de impresin
sucesiva de los personajes tambin son J no fijo. En Interrumpir-driven, cuando un modo de
impresin^ actitj finaliza, una seal de interrupcin TxDE
(vaco) de transmisin de datos a la
unidad de procesamiento de impresora (controlador de impresin) provocar la ejecucin Ml de un
servicio de rutina y la rutina de servicio enviar otro byte como salida. Figura 2.13(b) Jtt muestra el
mtodo de salida desde y hacia un puerto mediante el TxDE interrupciones.
Wm

Jj

Los sistemas integrados

Byte de datos
En el tiempo t2 despus de 11

Acuse de recibo de solicitud de


interrupcin
(Luz
estroboscpica)
N.

Keycode
Buffer
(8 bits)

En el tiempo t, despus de t0
En
En el momento de

Controlador de teclado numrico


RxRDY
Bfer de recepcin listo interrumpir

(a)
En el momento ti despus de bfer de salida T0
completo (Aceptar solicitud)
Procesador

OBF

N*.

(o
Microcontrolador)

Byte de datos en el tiempo


Puerto

t0 ____________

INT
INT1 TxDE

Impresora
Buffer
(8 bits)
Controlador de
impresora

En el tiempo t2 despus de t, vaca el bfer de datos transmitidos


interrumpir
~(b)

Colocar;. 2.13 (o) Mtodo de entrada desde y hacia un puerto mediante el RxRDY interrumpe
(b) Mtodo de salida desde y hacia un puerto mediante el TxDE interrumpe

2.2.5 Arbitraje de bus


Hay cun ser varios procesadores as como varios procesadores de propsito nico (Seccin 1.2.1), que comparten
un bus. Un propsito nico procesador tambin puede ser un controlador. El controlador puede ser parte de un
dispositivo o perifrico.
La figura 2.14(a) muestra cmo el sistema de autobuses son compartidos entre los controladores, 10
procesadores y varios controladores de acceso. Slo uno de ellos se le concede la condicin de maestro de bus en
una instancia. En general, hay un nmero de DMA o de otros controladores o procesadores intentan acceder a un
autobs en el mismo tiempo, pero se puede dar acceso slo a uno de ellos. Por lo tanto, slo un procesador o
controlador puede ser el maestro de bus. Un controlador se denomina bus master cuando tiene acceso a un autobs
en una instancia. Cualquier controlador o procesador puede ser el maestro de bus en las diferentes instancias.
Proceso de arbitraje del bus se refiere a un proceso por el cual el bus master actual accede y deja el control del
bus, y pasa a otro bus-solicitando la unidad de procesador. Existen tres mtodos, uno de los cuales se utilizan en el
proceso de arbitraje del bus. Son Daisy Chain, Bus independiente y solicitudes de subvencin, y mtodos de sondeo.

Mtodo de cadena tipo margarita Figura 2.14(b) muestra un arbitraje de bus mtodo
denominado mtodo de encadenamiento. Es un centralizechbus p.tMtration proceso. Bus de
control pasa de un bus master a la siguiente, luego a la siguiente y as sucesivamente. Bus de
control pasa de unidades de controlador a UO UI, U2, U3, y as sucesivamente. Las seales en
el proceso de arbitraje son como sigue: un autobs-donacin de seal (BG) funciona como un
token, el cual es enviado a UO. Si UO no necesita la seal del bus, UO transferirlo a Ul. Un
controlador que necesitan el autobs sube un autobs-peticin

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


81real

(BR) de la seal. Un bus-Busy (Ocupado) se enva al controlador de bus que se convierte en maestro. Cuando el
bus master ya no necesita el bus, se desactiva el BR y ocupado. Otro BG es publicado y pasa de UO a los
controladores uno por uno se alinearon segn sus prioridades.
Controlador de bus

_____ 1 1________
! Controlador en
Dispositivo j

Bus compartido

Controlador en
Perifrico

(a)

Controlador de 1 a 10
1 puerto

Yo
Procesador j 10

BG3
Controlador de Bus j

Ose datos

BR3
BR2 i ! BG2
!! 1

............

Ocupada

. ............... Yo! ... _


Ocupada

BGO

Rj-J 111

BRI

BGI Mi| ;
!Ij!I1
Controlador Controlador UO J J | controlador U1 U2 U3 Controlador ; j

(c)

. *? Lneas de sondeo

-'f7
R r
ir

Controlador de Bus I
~ -Datos BR0\ 1 1

I1'
Controlador | UO

BR1
/

Rr r
BR2

Ocupada

T,

_____

li

Ella -

1
__ 1
' BR3

Controlador Controlador de U1 U2 U3 Controlador j


(d)

Fig. 2 14 (a) los buses de sistema compartido entre los controladores, cuando 10 procesadores y controladores mltiples
acceder al bus, y slo uno de ellos concedido bus master status en cualquier instancia (b) arbitraje de bus
por el encadenamiento de mtodo (c) arbitraje de bus por bus independiente (d) Mtodo de solicitud
de arbitraje de bus por bus de sondeo mtodo

La ventaja de esto es que en cada instancia de acceso al bus, el i'h controlador recibe mxima prioridad en
comparacin con (i + L)"1. Los controladores del procesador y las prioridades para la concesin de acceso al bus
(bus master status) son fijos. .-'V
^

Mtodo de solicitud de bus independiente Figura 2.14(c) muestra el arbitraje de bus bus
independiente llamado mtodo de peticin, en la cual cada controlador tiene una BR seales,
BRO, BR1 .............................................................................................................. BRn. Adems, hay distintas

82

Los sistemas integrados

Seales de BG, BOO, BGI _ BGn para cada controlador. Un ilh controlador enva BRi (i'*' hus) y cuando la seal
de solicitud
Recibe la BGi (IM ) de la seal de concesin del bus, que utiliza el bus y activa una seal de ocupado. Cualquier
controlador, que considera un activo ocupado, no enviar un BR. La ventaja aqu es que la i"1, el controlador puede
ser programado para dar la mxima prioridad a los autobuses y la prioridad de un controlador puede programarse
de forma dinmica.

Mtodo Paiiing Bus Figura 2.14(d) muestra el arbitraje de bus bus llamado mtodo de sondeo
con dos lneas de sondeo para cuatro controladores. Una encuesta de valor de recuento se
enva a los controladores y se incrementa para proporcionar acceso en autobs a la siguiente.
Supongamos que hay 8 controladores. Tres seales de escrutinio de mesa p2, pi, pO,
sucesivamente cambia de 000,
1 ........... 110, I I I , 000 ... Si el conde = i, un BR seal es recibida, a continuacin cuenta el incremento se detiene,
y ocupado
Se activa cada vez que el controlador se convierte en el maestro de bus. Cuando BR desactiva entonces ocupada
tambin desactivar el incremento y el conteo se inicia. La ventaja es que el controlador junto al bus master actual
obtiene la mxima prioridad para acceder al bus despus del actual bus master finaliza sus operaciones.

2.2,6 Ejemplos de interfaz con el teclado, pantallas, A/D y D/A conversiones


Teclado Figura 2.15(a) muestra una interfaz para un teclado. Dos seales desde un teclado controlador son KBINT
y TxD. KBINT se interrumpa debido a RxRDY seal del controlador de teclado. El UART serie TxD es la salida
de datos de un controlador conectado a RxD en si en 8051 o 8250, Intel UART o UART 16550, que incluye un
bfer de 16 bytes.
Rebota crear pulsando una tecla. Esto es debido a un manantial natural-como la accin. Cada rebote falsos
resultados en un pulso. El controlador del teclado tiene un hardware debouncer para neutralizar la falsa pulso. El
controlador del teclado tiene un contador, que aumenta continuamente a una cierta velocidad y explora cada tecla si
es presionado o el estado Lanzado. Tiene un encoder para codificar la salida del teclado para una ROM. La ROM,
a continuacin, genera una salida para el cdigo ASCII de la tecla pulsada. El cdigo tambin tiene en cuenta el
significado de varias teclas cuando son presionadas simultneamente. Por ejemplo, si la tecla Mays es tambin
presiona, el cdigo de un carcter en maysculas es generado. El cdigo de bits en serie son transferidos a la salida
TxD, RxD que es recibida en la entrada de la IS.
Displa--- Seccin 1.3.8 describi el LCD, LED y pantallas tctiles. Figura 2.15(b) muestra un circuito de interfaz
para un controlador de pantalla LCD. 3.3.4 da detalles. Hay datos de salida 8 y 3 bits para E, R y R/W. Un puerto
de 8-bit se utiliza para los datos de salida. Se utiliza otro puerto de 3 bits.
Com/ene- Seccin 1.3.7 se describe el DAC (tambin llamado D/A). D/A necesita un circuito
PWM, que es un dispositivo interno en el microcontrolador. Un registro de ancho de pulso (PWR) est programada
segn un salida analgica. Un dispositivo contador/temporizador genera dos interrupciones internas: uno sobre
desbordamiento de timer y otro despus de un intervalo proporcionalmente igual a PWR. En la primera interrupcin
de la salida se convierte en I y en el segundo se convierte en 0. Un integrador externo genera la salida analgica
como por el perodo de la salida 1 (Perodo comprendido entre la primera y la segunda las interrupciones) en
comparacin con el perodo total de impulsos de salida (perodo entre sucesivos primero interrumpe). Figura 2.15(c)
muestra una interfaz a un externo D/A. El externo D/A se usa como alternativa cuando no se utiliza PWM.
4,
'f.
= ; uignai convocar/ Seccin 1.3.7 se describe un ADC (tambin denominada A/D). Una nbit A/D necesita
(i) Un pulso de inicio para convertir mediante un generador de impulsos de corta duracin solo circuito, (ii) muestra
un circuito amplificador espera celebrar el'seal constante durante el perodo de conversin y (iii) el voltaje positivo
y negativo referencias para proporcionar la referencia diferencia de potencial para la conversin de entrada analgica
en Mbits. Cuatro u ocho canales A/D est impregnado de microcontroladores. Externo (ADC), por ejemplo,
ADC0808, tambin se puede utilizar con interfaz similar a la de los puertos. Figura 2.15(d) muestra una interfaz a

| 83 !

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


T. ) real

Key
Cdigo
Buffer
(8 bits)

El bit de datos
Leer

SI

RxD

Procesador
(o
Microcontrolador)

Desde la T2 en adelante TxD

ROM

Ii

Acuse de recibo de solicitud de


interrupcin
(Luz
estroboscpica)
'\
INTA
I (RxRDY)
En el momento tt despus de

Debouncer

Scan
Reloj
M
Contador,
Llaves
Decodifica
dor
Controlador de teclado numrico
En (KBINT)
' TxRDY
En el momento de Transmitir Bfer listo interrumpir

I NT

(a)
Habilitar el pulso en el momento de
Microcontrolador j
E
1 RS

Display !

Seleccione Registrar en el momento h despus


de
Escribir/leer en 8 lneas de datos en t3.
^ .................. *" ------------- S

Puerto

Tabla de fuente, CGRAM,


Controlador LCD ;
Leer/escribir en ^m *2 a^er U
I R/W ~l ______ ^ ____________ - ---------------------- "-j Controlador de display LCD

Wr',e en

Microcontrolador

^a,un *'nes

En el momento

Puerto . ..
___
I SELECCIN DE
CHIP
' CS ' -

VRef

--'
-! Lectura y escritura

: WR '

OPAMP
QUE
Y
Filtrar

de tiempo en ti
DAC

despus de t0 en el

*'

(c)tiempo t2 despus
En ;

En el momento
En L
Yo

Puerto
I;

Micro

CS

t3 t2 despus de leer a

de t,

partir de las lneas de


datos
Seleccin
de chip

. . _____ .

En t2 .
--------------------- Multi1
Yo Canal j
A la hora de j A/D
(ADC)
En el tiempo t, despus de

~-n Inicio
Inicio
--------------- F Canal bits de direccin
Antes
de
tiempo
ChAddr ! - --------- ------------- --------------- ------- -----------

~-=i

VRef
"Yo
multiCanal
Yo Analog
Prob
| Entradas -

"Yo!"

(d)

Fig, 2.15 (a) Conexin a un teclado utilizando el controlador de teclado (fa) conectarse a un controlador de pantalla
LCD (c) la interconexin a D/A (DAC) cuando no se utiliza PWM interno (d) la interconexin con A/D
externo (ADC) ADC interno cuando no se usa

Los sistemas integrados

84

2.3

Introduccin a las arquitecturas avanzadas

La figura 2.16 muestra una organizacin de diversas unidades del procesador. Las unidades que se muestran nte la
frontera discontinua estn presentes en los procesadores de alto rendimiento. Direccin externa, de control y de
datos Interfaz de autobuses con el procesador y conectar a unidades de memoria externa, los puertos y los
dispositivos.

Fig. 2.16 Organizacin de diversas unidades del procesador. Las unidades que se muestran con el lmite de guiones
estn presentes en procesadores con arquitectura avanzada de alto rendimiento

Las siguientes son las caractersticas generales presentes en la mayora de los procesadores.
1. Fija el tiempo de ciclo de instruccin: Este es el tiempo que tarda un procesador para ejecutar una
instruccin, que es simple - I ps para el funcionamiento del procesador 8051 en -12 MHz y 0,9 (es por
MHz velocidad de reloj para el procesador ARM9. Un diseador de sistemas utiliza el tiempo de ciclo de
instruccin como un indicador para seleccionar la velocidad de reloj del procesador segn la aplicacin.
Por ejemplo, en aplicaciones que requieren rapidez de procesamiento, el procesador ARM9 a 100 MHz
se considerara adecuado: para otras aplicaciones para las que un procesamiento ms lento ser suficiente
el 8051, 68HCII o 80196 puede ser elegida.
2. Ancho de bus interno: Un ALU obtiene entradas a travs de los buses internos. Los bits en un solo
operando a ALU (durante una sola operacin aritmtica o lgica) son iguales a los del ancho del bus. Un
bus de 32 bits que facilitar la disponibilidad de operaciones aritmticas con operandos de 32 bits en un
nico ciclo. El bus de 32 bits se convierte en una necesidad para el procesamiento de seales y el sistema
de control de instrucciones. Cuando la anchura del bus es de 32 bits, se lee o escribe un nmero entero de
32 bits y procesar alrededor de cuatro veces de filtro cuando el ancho es 8. Un bus interno de 128 bits
est presente en SHARC y 64 bits en los procesadores Pentium.
3. Contador de programa (PC) y reposicionar el valor de bits: el nmero de bits de PC decide el tamao
mximo de la memoria fsica que puede ser accedida por el procesador. El valor restablecer indica al
diseador

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y el entrelazado del mundo real j 85

El programa inicial direccin desde donde se ejecuta el programa en un reinicio del sistema o encendido.
El procesador comenzar la ejecucin desde esa direccin. (El puntero de instruccin inicial y registro de
segmento de cdigo hits decidir el programa inicial, la direccin de memoria en procesadores 80x86].
4. Slack-puntero bits y reposicionar el valor inicial: valores de puntero de pila debe apuntar a las direcciones
de las palabras almacenadas en la pila. Estas direcciones deben estar dentro de los asignados a la pila en
la memoria. El diseador de software resel detines un valor inicial y se establece el principio del puntero
de la pila correspondiente.
La tabla 2.1 enumera las unidades estructurales en un procesador de propsito general. Se enumeran las
funciones
cada uno.
Cuadro
2.1 de
unidades
estructurales generales en una arquitectura de procesador
Estructurales
MAR

Unidad

Funciones

Direccin de memoria Contiene la direccin del byte o palabra que se obtiene de memorias externas.
Registrarse

MDR

Registro de datos de
memoria

Los buses del


sistema.

Bus interno

Bus de direcciones

Problemas con el procesador las direcciones de instruccin o datos al mar antes de


que se inicia el ciclo de fetch.
Posee un byte o palabra obtiene (o para ser enviados) de (a) una memoria externa o
la direccin 10.
Internamente se conecta todas las unidades estructurales dentro del procesador. Su
ancho
Puede ser 8. 18. 32. 48 o 64 bits.
Bus externo que lleva la direccin del mar as como a la memoria.
Hasta 10 dispositivos y otras unidades del sistema.

El bus de datos

Bus de control

La BIU
IR
ID
CU
ARS

Unidad de interfaz de
bus
Registro de
instruccin
Decodificador de
instrucciones

SP

Una unidad entrelazada entre unidades internas del procesador y los buses externos'.
Ella lleva secuencialmente los cdigos de instruccin (opcode) toexecution unidad
de procesador.
Decodifica la instruccin recibida en el ir y lo pasa al procesador CU.

Controla todas las actividades y funciones de la unidad de bus necesarios para su


procesamiento.
Registro de aplicacin (a) un conjunto de registros en chip utilizados durante el procesamiento de las
instrucciones de un programa de aplicacin o (b) una ventana de registro,
Unidad de control

c) un subconjunto de registros con cada subconjunto almacenar


variables estticas de una rutina de software o (d) registrar un archivo
asociado a una unidad como ALU o FLPU.

ALU

PC

Una externa! Bus que lleva, durante una operacin de lectura o escritura, los bytes
para instrucciones o datos desde o hacia una direccin. La direccin est
determinada por el mar.
Una externa! Conjunto de seales que transportan seales de control al procesador
o memoria o dispositivo.

Unidad lgica
Una unidad para ejecutar instrucciones aritmticas o lgicas segn la instruccin
actual presente en el IR.
aritmtica
Contador de programa Se genera un ciclo de instrucciones enviando la direccin definida por l en la

Puntero de pila

memoria a travs de Mara. Auto-incrementos de las instrucciones se obtienen


regularmente y de forma secuencial. Se denomina puntero de instruccin en
procesadores 80x86.
Un puntero a una direccin, que corresponde a la parte superior de la pila en la
memoria.

Los sistemas integrados

2.3.1 La arquitectura de los procesadores ms avanzados


La figura 2.16 muestra las unidades adicionales en cajas con lmite de guiones y unidades presentes en las
arquitecturas de procesador avanzado (procesadores de alto rendimiento). La tabla 2.2 muestra la arquitectura
avanzada unidades estructurales en una organizacin de procesador procesador de propsito general. Enumera las
funciones de cada unidad.
Cuadro 2.2 unidades estructurales en una avanzada arquitectura de procesador
Estructurales
El paralelismo a nivel
de instruccin de
unidades

Unidad

Funciones

ILP
Para el paralelismo a nivel de instruccin (Seccin 2.5). El ducto multietpico,
multiline procesamiento procesamiento superescalar, dual, quad o multicorc acelera
el rendimiento de procesamiento de instrucciones por ciclo de reloj".
Una cola de instrucciones de forma que el IR no tiene que esperar a la siguiente
instruccin despus de que uno ha sido procesado.

IQ

Cola de instrucciones

PFCU

La unidad de control de
Unidad que controla la obtencin de datos en la I y D-caches de antemano de las
Prefetch
unidades de memoria. Las instrucciones y los datos son entregados cuando sea
necesario por la unidad de ejecucin del procesador(s). El procesador no tiene que
traer los datos justo antes de ejecutar la instruccin. Pre-unidad felching mejora el
rendimiento mediante la obtencin de datos e instrucciones por adelantado para su
procesamiento. Las cachs junto con una MMU mejoran el rendimiento, dando las
instrucciones y datos rpidamente a la unidad de ejecucin del procesador.
Cach de instrucciones
Se almacena de forma secuencial, como una cola de instrucciones, las instrucciones
en modo FIFO. Permite al procesador ejecutar instrucciones a gran velocidad
utilizando PFCU comparar al sistema externo-recuerdos, a las cuales se accede a
velocidades relativamente mucho ms lento.
Rama de la cach de
Facilita la disponibilidad de la siguiente instruccin-set cuando una sucursal
destino
Como la instruccin de salto. bucle o llamada es encontrado. Su unidad de fetch
prev una ramificacin de la instruccin en el I-cache.
Cach de datos
Almacena los datos precapturados de memoria externa. Una cach de datos
generalmente contiene tanto la clave (direccin) y el valor (word) juntos en una
ubicacin. Tambin stotes write-through datos cuando est configurado de este
modo. A travs de la escritura de datos, lo que significa que los datos de la unidad
de ejecucin que la transferencia a travs de la cach de direcciones de memoria
externa.
Gestin de memoria
Gestiona las memorias2 de tal manera que las instrucciones y los datos estn
Unidad
disponibles para su procesamiento.

I-Cache

BT Cache

D-Cache

La MMU

SRS

El registro del sistema

Li es un conjunto de registros utilizados durante el procesamiento de las


instrucciones del sistema de supervisin del programa.

FLPU

Unidad de
procesamiento de punto
flotante
Registro de punto
flotante

Una unidad separada de ALU para procesamiento de punto flotante, que es esencial
en el procesamiento de funciones matemticas rpido en un microprocesador o DSP.

FRS
MAC

Un registro conjunto dedicado para almacenar nmeros de punto flotante en un


formato estndar y utilizados por FLPU para sus datos y pila.
- ,(K
Multiplicar y acumular Tambin hay un MAC3 unidades para multiplicar los coeficientes de una serie y la
unidad
acumulacin de estos durante los clculos.
(cont)

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

Estructurales
AOU

Unidad
atmica

de

Unidad
operacin

Funciones
Permite a un usuario (compilador), instruccin, cuando se divide en una serie de
instrucciones de procesador llamado operaciones atmicas, finalizar antes de una
interrupcin de un proceso que se produce. Esto evita que surjan problemas de datos
compartidos entre varias rutinas y tareas.

1. Tiempo de ciclo de instruccin se convierte en varios limones menor que el tiempo de ciclo del reloj del procesador.
2. La MMU gestiona las pginas en la memoria RAM, as como los ejemplares en las cachs interna y externa. La gestin
tiene que hacerse de tal manera que cuando las instrucciones ejecutar, hay un nmero mnimo de pgina y fallos de cach
(falta).
3. Unidades MAC son siempre necesarios en los DSPs. |Seciion 2.3.51

Circuitos de procesador avanzado consisten de arquitectura RISC. Mejora el rendimiento al ejecutar ms


instrucciones en un solo ciclo de reloj (por hardwired ejecucin de instrucciones), mediante el uso de mltiples
conjuntos de registro-, Windows y archivos y mediante la reduccin de la dependencia de los accesos a la memoria
externa de datos debido al reducido nmero de modos de direccionamiento para instrucciones aritmticas y
lgicas. Un RISC tiene slo unos pocos modos de direccionamiento para instrucciones aritmticas y lgicas. No
tiene los siguientes modos: modo de direccionamiento indirecto (index), auto-ndice, y el ndice relativo de ALU
instrucciones. No tiene un segundo operando trados por el modo de direccionamiento inmediato aritmticos y
lgicos para obtener instrucciones.
Circuitos de procesador avanzado consta de una unidad de punto flotante; proceso de FRS funciones
matemticas con ms rapidez y la precesin que al emplear un entero-procesamiento ALU.
Las unidades de procesamiento de avanzada incluyen la instruccin pipelining unidad, lo que mejora el
rendimiento de las instrucciones de procesamiento en mltiples etapas. Pipelining permite que un procesador se
superponen a la ejecucin de varias instrucciones para que ms instrucciones pueden ser ejecutadas en el mismo
perodo de tiempo. La seccin 2.5.1 seguir describir varias fases de la ejecucin de la instruccin y describir
cmo el paralelismo a nivel de instruccin (ILP) mejora an ms el rendimiento del procesador.
La figura 2.17 muestra cmo el flujo de instrucciones a travs de la canalizacin.
En ciclo I, la primera instruccin 1, entra en la instruccin Fetch (SI) etapa del oleoducto y gasoducto se
detiene en el pestillo (buffer) entre la instruccin Fetch y decodificacin de instrucciones (ID) etapa. En el ciclo
2, la segunda instruccin I, entra en la etapa de la instruccin Fetch, y 1, se procede a la fase de decodificacin de
la instruccin. En el ciclo 3, I, entra en el registro (entradas) leer (RR), el estadio, la instruccin I2 est en la etapa
de decodificacin de la instruccin, y la instruccin I2 entra en la etapa de la instruccin Fetch. En el cuarto ciclo,
me mueve a ejecutar el escenario y en el quinto ciclo a consecuencia write back stage.
Etapa
Fetch -----Decode Leer
los
operandos --Ejecutar----------J. Volver a escribir
----------------

1 Instr
Instr
Instr 2
1

Instr 3
2
1
Instr
de
Instr

Instr
Instr 4
32 1

Instr
de
Instr

Instr 5
Instr
Instr 4
3 21

Instr 6
Instr
Instr 5
4 32

Instr
de
Instr

Instr
de
Instr

Los sucesivos intervalos de reloj

Instr 7
Instr
Instr 6
5 4 3
Instr
de
Instr

Instr 8
Instr
Instr
76 5
4 Instr
de
Instr

Fig. 2.17 Flujo de instrucciones en un ducto de un anticipo de la arquitectura del procesador

Siga las instrucciones a travs de la canalizacin en una etapa por ciclo hasta alcanzar el registro (resultado)
escribir

88

Los sistemas integrados

En el ejemplo, las instrucciones de 12 A I6 ya estn en tramitacin, mientras que la instruccin que yo, ha finalizado
y ya no se encuentra en la canalizacin. Un pipeline de 5 etapas con procesador sigue la ejecucin de instrucciones
a un ritmo (rendimiento) de una instruccin por ciclo, pero la latencia de cada instruccin es ahora 5 ciclos en lugar
de I. La ejecucin ms rpida tiene lugar como el tiempo de ciclo puede ser ahora una quinta parte o menos de
unpipelined caso.

2.3.2 Arquitectura de 80x86


Las primeras cuatro generaciones de 80x86 son 8086, 80286, 80386 y 80486. El primer procesador de la familia
80x86 de procesadores de 16 bits es la 8086 (1981). El 80x86 tiene una arquitectura de 32 bits desde 80386. Pentium
es la quinta generacin de arquitectura (1994), basado en el 80386 de 32 bits. Pentium 4 es de sptima generacin
y Xeon y Core2 son la octava generacin de arquitecturas. Core2 significa arquitectura dual core. La arquitectura
de procesadores 80x86 se han vuelto muy populares desde su aplicacin en el IBM PC (Personal Computer).
Itanium se basa en la arquitectura de 64 bits, que simula la arquitectura 80x86.
Las caractersticas de la arquitectura 80x86 son como sigue:
1. La original arquitectura consta de 8086 registros de propsito general AX, BX, CX y DX. Cada uno puede
ser considred como dos registros de 8 bits. Por ejemplo AX COMO AL (un byte inferior) y AH (un byte
superior). Una extensin de 32 bits EAX, EBX, ECX y EDX. Los registros EAX. Cada uno puede ser
considred como dos registros de 16 bits. AX dispone entonces de un menor de 16 bits EAX. La figura 2.18
muestra la arquitectura 80x86 registros.
2. La arquitectura de 8086 prev el cdigo, datos, pila y pila segmentaciones. La arquitectura original de 8086
consta de cuatro registros de segmento CS. DS. SS y es para permitir el acceso a la memoria asignada a
diferentes segmentos.
3. IP es un puntero de instruccin, de una direccin de 16 bits, y CS contiene un programa de 16 bits para la
direccin del segmento de cdigo de 16 bits superiores de direccin.
4. SI contiene ndice de operando de origen y D! Contiene ndice de 16 bits de destino. BP es la memoria
puntero de desplazamiento de 16 bits de direccin y DS contiene una memoria de datos de 16 bits de la
direccin del segmento bits superiores.
5. 16-bit o 32-bit o 64-bit palabras almacenar como little endian. Los datos no necesitan estar alineados en las
direcciones
en de
mltiplos
comenzar
endecualquier
Registros
16 bits de 2 o 4 y puede
16-, 32o registros
64 bits direccin.8-, 16-, 32- o 6bits
J~CS, DS, SS, ES, FS y GS

de cdigo de instruccin (IP)

de registros de
propsito general

puntero si ndice de origen


puntero Di ndice del destino

| A, B, C y D |

del puntero de pila SP puntero


puntero Base BP

Por ejemplo, 16 bits


AX, BX, CX, DX

Fig 2.18, registra la arquitectura 80x86

6. El 80x86 utiliza principalmente dos direcciones instrucciones aritmticas y lgicas. Esto significa que el
acumulador no es el nico registro para acumular ALU resultado, lo que a su vez significa que un operando
register (hacha o BX o CX o DX) puede ser un destino as como el primer operando de origen.
7. Una direccin de memoria puede ser el primer o el segundo operando, una caracterstica de la CISC modos
de direccionamiento para ALU instrucciones.
8. La generacin actual de la arquitectura 80x86 decodifica una instruccin CISC y crea microoperations que
implementar en una microarquitectura de RISC.
9. El pequeo nmero de registros generales (tambin hered desde 8085) ha logrado registrar-direcciones
relativas (mediante pequeos desplazamientos de inmediato) un importante mtodo de acceso a operandos,
especialmente en la pila.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


89 real

L(). El 80x86 ha asignado 10 10. La direccin 10 es de 16 bits de un byte de lor 10. Los procesadores de la
familia Intel 8086 acceso y proceso de 10 unidades y 10 dispositivos por separado las instrucciones IN y
OUT. El 10 asigna 10 procesadores tienen un conjunto separado de direcciones para acceder a las entradas
y salidas. Simplifica las 10 unidades del circuito de interfaz que conecta al procesador.
11. .El 8086 admite hasta 256 niveles de interrupcin para el hardware as como software y admite
interrupciones anidadas. Esto significa que un ISR puede ser interrumpida y una prioridad superior 1SR
puede ejecutar entre ellos.
12. La nueva generacin 8086 arquitectura admite un modo llamado modo real. Modo Real admite el acceso
directo sin segmentacin para dispositivos perifricos y subrutinas bsico de entrada y salida (BIOS).
Admite el modo real de segmentacin de 20 bits en lugar de 16 bits. El registro de segmento slo tiene la
parte superior de 16 bits. Los bits inferiores son os.
13. Un modo llamado modo protegido de 32 bits tambin es proporcionada y admite pginas en la memoria.
14. 8086 es compatible con muchos sistemas operativos, incluyendo Windows y los sistemas operativos
multitarea.
15. Las ltimas arquitecturas 80x86 rosca apoyo, manipulacin y SIMD SIMD Extension de conjuntos de
instrucciones.
Rutinas de programas y procesos pueden tener diferentes segmentos. Por ejemplo, un cdigo de programa
pueden ser segmentados y cada segmento almacenado en un bloque de memoria diferente. Un puntero apunta a
la direccin de inicio del bloque de memoria almacena un segmento y un valor de desplazamiento se utiliza para
recuperar una direccin de memoria dentro de ese segmento. Los datos tambin pueden ser segmentadas con cada
segmento en diferentes bloques. Asimismo, las cadenas pueden ser segmentados.
La arquitectura 80x86 es una arquitectura ampliamente utilizado. Los datos no estn alineadas y guardar
como little endian. Tiene punteros de propsito general y el segmento de registros y de memoria admite la
segmentacin y la paginacin. Pueden existir diferentes segmentos en la memoria para diferentes funciones y
procesos (tareas). Estas pueden incluir diferentes segmentos de datos y los diferentes segmentos de las pilas.

2,3.3 El brazo
Informacin detallada sobre el brazo est en http://www.arm.com. Una breve descripcin de la arquitectura ARM
y caractersticas que hacen que sea importante para sistemas integrados, tales como cmaras digitales o de vdeo
y telfonos mviles, es dar aqu.
La figura 2.19 muestra registros ARM7 y una arquitectura de canalizacin de tres etapas. El brazo se registra
RO a RI5. RI5 tambin funciona como un contador de programa. RI4 funciona como un enlace para registrar.
Tiene CPSR (programa actual stalus register) y SPSR (guarda el estado del programa de registro").
Las principales caractersticas del brazo son como sigue:
1. Tiene arquitectura de 32 bits, pero tambin admite 16 bits o los tipos de datos de 8 bits. Apoya tambin
las instrucciones de 16 bits en modo pulgar. Soporta la ejecucin de Java Jazelle acelerador.
2. ARM es programable como little endian o big endian datos.
3. ARM proporciona la ventaja de usar un CISC en trminos de funcionalidad, junto con la ventaja de un
RISC en trminos de una ejecucin ms rpida de los programas, as como la reduccin de las longitudes
de cdigo. Se implementa rpidamente porque el registro palabra instantneamente a la disponibilidad de
la unidad de ejecucin. Longitudes de cdigo son reducidos porque la mayora de instrucciones utilizar
registros como operandos. Pocos bits en la instruccin especifica un registro como operando. 8,16 o 24
bits especifica una direccin de memoria como operando y el desplazamiento de bits en la instruccin.
4. ARM7 y ARM9 tienen una combinacin de microprocesadores RISC y CISC funciones. Los soportes de
los brazos de un complejo abordar la instruccin basada en modos de juego. Procesador ARM tiene un
ncleo RISC para su procesamiento. Hay un js jn-construido unidad de compilacin. Primero compila las
instrucciones de CISC a RISC formatos, que luego son ejecutados por el ncleo del procesador RISC.
Internamente, la aplicacin de muchas instrucciones es como en un RISC (sin el micro-unidad
programada).
5. ARM7 tiene memoria de Princeton; arquitectura ARM9 tiene la arquitectura de Harvard. [Seccin 2.4.2]

Los sistemas integrados

90
Bus de 32 bits
IR

Unidad de Ejecucin

ID
L-J rO ! A j r15

------F
! CPSR

.1" L
Cableado de circuitos para cada instruccin
R15 de 32 bits funciona como PC, r14 como enlace para registrar

N
SPSR
Pestillo
Trajo una instruccin
ln
Un ciclo de reloj Ci

Pestillo

--- - [ I I
Decodificar l" y leer ; ; !
Operandos i j 1
Un ciclo de reloj cm

Ejecutar l", y entradas de


memoria l" y escribir la
direccin y el resultado l"
Un ciclo de reloj C2

Fig. 2.19 ARM7 registra tres etapas y arquitectura de canalizacin.

6. Brazo herramientas de Debug y trace depurar rpidamente el software en tiempo real y realizar el
seguimiento de la ejecucin de instrucciones y datos de programa asociado a plena velocidad de ncleo.
7. Una amplia seleccin de herramientas de desarrollo y de los modelos de simulacin para lderes de
automatizacin de diseo electrnico (EDA), ambientes y excelente soporte de depuracin para el SoC
diseo estn disponibles.
8. Los cdigos del brazo son compatibles con versiones superiores. Por ejemplo, cdigos de ARM7 son
compatibles con ARM9, ARM9E y ARMIO as como con procesadores Intel XScale micro
9. El brazo permite la programacin por un nuevo conjunto de instrucciones adicionales diseadas para
operaciones de 16 bits. Pulgar es un conjunto de instrucciones estndar del sector, lo que permite un
rendimiento de 32 bits en el sistema 8/16 bits costo en trminos de necesidades de memoria. Esto
proporciona memoria tpica ahorros de hasta 35%, ms el equivalente de cdigo de 32 bits, manteniendo
todos los beneficios de un sistema de 32 bits (como el acceso a un amplio espacio de direcciones de 32
bits). No hay gastos generales (en trminos de tiempo y memoria) de moverse entre el pulgar y el estado
normal del brazo de los cdigos. Los dos estados son compatibles sobre una base normal. Esto da el
diseador del cdigo completo control sobre el rendimiento y la optimizacin del tamao de cdigo.
10. Brazo utiliza un gestor de Energa Inteligente (IEM) tecnologa. Implementa algoritmos avanzados para
equilibrar de manera ptima de la carga de trabajo del procesador y el consumo de energa. Maximiza la
capacidad de respuesta del sistema. IEM funciona con el sistema operativo y el sistema operativo mvil.
Una aplicacin que se ejecuta en un telfono mvil se ajusta dinmicamente el nivel de rendimiento de la
CPU.
11. Procesadores ARM utilice la AHB (AMBA avanzado bus de interfaz de alto rendimiento). AMBA es una
especificacin de fuente abierta para las interconexiones en el chip. [Seccin 3.12.3] AMBA sirve como
marco para el SoC diseos y desarrollo de ncleos IP. Proporciona un alto rendimiento y totalmente

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real i 91 |

Plano posterior sncrono. (back plane ha establecido ofcontrollers adicional, que puede acceder a cada
uno de los dems a travs de otro comn bs. que es distinto del bus del sistema. La AHB multicapa en la
versin ARM926EJ-S y todos los miembros de la familia 10 Brazo representan un importante adelanto.
Reducen accesslatcncies y aumentar el acceso-andwidth en un multimaster (mltiples controladores
acceder al bus master) del sistema.
- Conjunto de instrucciones ARM7 procesadores tienen el siguiente tipo de conjuntos de instrucciones.
El ARM7 en la versin con suficiente T tiene instruccin conjunto llamado pulgar soporte
de conjunto de induccin.

1. Las instrucciones de transferencia de datos se presentan a continuacin las instrucciones para la


transferencia entre registro- recuerdos. La direccin de memoria es como por un registro usado en Index
o ndice relativas o post auto-ndice el modo de direccionamiento.
(a) Carga en registrar una palabra (LDR)
(b) Tienda de registrar una palabra (STR)
(c) Establecer una direccin de memoria en un registro (ADR). Addrss es de 12 bits. [Alternativa para
el ajuste de la direccin de 16 bits en un registro que est utilizando cualquier registro o r!5 en una
operacin aritmtica !
(d) Carga en registrar un byte (LDRB)
(e) Tienda de registrar un bute (STRB)
(f) Tienda de registrar una media palabra (STRH) (una palabra en el brazo es de 32 bits.]
(g) Carga en registrar una media palabra como tal o firmado la mitad LDRH LDRSH word (O).
Las siguientes instrucciones para un neumtico la palabra transferencia entre registros:
(a) Mover (MOV)
(b) Retrocede (MVR)
Una carga o mover o almacenar la instruccin puede ser aplicado de forma condicional. Por ejemplo. MOVLT
r3. #10. El operando inmediato 10 transferir a r.i proporciona una instruccin previa de comparacin mostr la
primera fuente como menor que la segunda. Las condiciones son LT (nmero con signo menos). GT (firmado
nmero superior),
I.
E (firmado un nmero menor o igual). EQ (equal), NE (no igual). VS (desbordamiento). VC (sin
desbordamiento). GE (nmero firmado igual o superior). Hola (unsigned nmero superior). LS (unsigned nmero
menor). PL (plus, ni negativos). Ml (menos). CC (llevar poco reset), y CS (llevar el conjunto de bits).
2. Instrucciones de manipulacin o de transferencia de bits
(a) Registrar-hits lgico de izquierda Mays (LSL)
(b) Regstrese bits lgica aritmtica izquierda Mays (ASL)
(c) Regstrese bits derecho lgico Shift (LSR)
(d) Regstrese bits derecho lgico desplazamiento aritmtico (ASR)
(e) Regstrese bits gire a la derecha (ROR)
(f) Regstrese bits girar a la derecha con llevar extendida tambin para girar (RRX).
3. Instrucciones lgicas y aritmticas Las siguientes son instrucciones para operaciones aritmticas. Cada
uno utiliza tres operandos de los registros. Una fuente puede, sin embargo, estar operando inmediato
abordar en la adicin y sustraccin.
(a) Agregar sin llevar dos palabras y poner el resultado en el tercer operando (agregar)
(b) Agregar a llevar dos palabras y poner el resultado en el tercer operando (ADC)
(c) Reste sin llevar dos palabras y poner el resultado en el tercer operando (SUB) [llevar poco usado
como prstamo.]
(d) Restar con llevar l^o palabras y poner el resultado en el tercer operando (SBC)
(e) Restar el retroceso (segunda fuente con la primera) sin llevar dos palabras y poner resultado est en
el tercer operando (RSB) [llevar poco usado como prstamo.]
(0 Restar atrs con llevar dos palabras y el resultado es en el tercer operando (RSC).
(g) Multiplicar dos registros distintos y poner el resultado en el registro de destino (MUL)

Los sistemas integrados

(h) multiplicar dos registros de origen y agregar el resultado con el tercer registro de origen y la
uccuniuhie
Nuevo resultado en un registro destinado (MLA) P'aqu son lour operando registros.!
A continuacin se indican las instrucciones para las operaciones lgicas:
(a) Poco prudente o dos palabras y poner el resultado en el tercer operando (ORR)
(b) Poco sabia y dos palabras y poner el resultado en el tercer operando (Y)
(c) Poco sabio exclusivo o dos palabras y poner el resultado en el tercer operando (EOR)
(d) Borrar un bit (BIC). |hay una fuente para los bits: una segunda fuente para la mscara y el resultado
es
Poner en el tercer operando. |
Una instruccin aritmtica o lgica puede ser aplicado de forma condicional. Por ejemplo. SUBGE rl, r.3. r5.
El operando del r3 se resta de r5 si la condicin de GE se tradujo en la operacin anterior por miedo o
comparacin.
Las siguientes son instrucciones para comparar y operaciones de prueba. El resultado destina a CPSR, que
Almacena 4 bits de condicin. N, V. C. y Z.
(a) Bit-wise prueba dos palabras (TST)
(b) Bit-wise negada por temor entre dos palabras (EQT)
(c) Comparar dos palabras y poner el resultado en el CPSR estado bits (CMP)
(d) Comparar dos palabras negativas y pul resultado al CPSR estado bits (CMN)
4. Instrucciones de control Program-Flow Las siguientes son instrucciones para operaciones de bifurcacin.
Una instruccin brandling puede ser aplicado de forma condicional. Rama a una direccin relativa a PC
WORD
En rl 5 (B). H #1A8' significa agregar Ox I AH en PC y cambie el programa de proa. "BGE #100' significa
que si
Una condicin de GE result en una anterior comparar o prueba, luego agregar IA8 en el PC. Existen
similares
Instrucciones para diferentes condiciones de los indicadores de estado del procesador (CPSR). [PC es la
RL5.|

MOV Si 0x0 Procesador : transferencia de 127 en el registro r2.


F de programa
r2,
r3,
; 29 de transferencia
el registro del
En este ejemplo, se da
un 07
ejemplo
en lenguajeen
ensamblador
paraprocesador
el brazo. r3.
#0x001D
r4,
MOV
;
40
de
transferencia
en
el
registro
del
procesador
Considerar el problema de tres nmeros additing. x, y y z (= 127. 29 y 40) y almacenarr4.
el resultado en
#0x0028
MOV
rl, M
en el registro
del procesadorderl.la instruccin anterior de la
Una direccin de
memoria.
para un |a ;=Transferir
x + y + z.0| siguiendo
las instrucciones
aadir #0x000 : Agregar el registro r4 word en la RL.
Asamblea.
rl,
r4, ; agregar el registro r3 junto con la palabra llevar (silos hubiera) de
rl,serADC
Cdigos de idioma
como
sigue.
r3 rl
rl.
anteriores
1. Comen ADC rl, RL, r2
Adems en la RL.
MOV
Ejemplo 2.8

zar
: Agregar el registro r2 Word junto con die llevar (si los hubiera) de
ADR r5 0x800
8.2.
Adems anterior a la RL.
STR [r5], rl
9.3.
: ajustar la direccin en r5. Direccin de memoria 0x800 M define.
4.
; Tienda la RL en la direccin apuntada por r5.
5.
6. tabla 2.3 ofrece caractersticas y comparacin de la ejemplar de alto rendimiento de la familia de
La

procesadores ARM. I.9 ARM Thumb family admite Windows CE, Palm OS, Symbian OS, Linux y
otros sistemas operativos/RTOS. Hay apoyo de Palm OS en ARM920T y procesadores ARM922T. ARM
940T dispone de una unidad de proteccin de memoria (MPU) y un soporte para una amplia gama de sistemas
operativos en tiempo real incluyendo VxWorks.

8051 y arquitecturas de procesador avanzado. Organizacin de la memoria y de la interconexin del


mundo real j 93 !

2. AkM7 y ARM9 integra los cachs de datos e instrucciones.


3. La arquitectura ARM se refiere especficamente a la arquitectura de conjuntos de instrucciones y
modelos, como pmurainuicrs ARMxSTE. ARNh5TI-..I y arquitectura en ARMII ARMvfi.
4. ARMv4T (versin 4) con el pulgar microarchitccture es comn a ARM7. ARV ARMT1 Id y el brazo 11
familias. El trmino microarchitccture brazo se refiere especficamente a la aplicacin de las arquitecturas
como ARM9 de ncleos familiares y el brazo) familia de ncleos. Por ejemplo. ARMV20HJ-S1'1 core
y el brazo 1020H1 Nl core CPU son productos basados en esos primeros niieroarchiteclurcs. Una mejora
de v4T Arquitectura es ARMv.iTE arquitectura (introducido en 1999). Tiene extensiones del conjunto de
instrucciones ARM DSP que mejora la velocidad de instruccin establecidos por hasta 7(1% para
aplicaciones DSP de audio. [Algunas aplicaciones necesitan las funciones de procesamiento de datos del
microcontrolador como welias funciones DSP en un solo procesador en lugar del sistema
multiprocesador.|

Cuadro 2.3 Las caractersticas comparativas de las versiones del brazo


CaractersticaARM7 Family pulgar
Familia
Miembros
Ejemplo

(a) ARM7TDMI (Integer


B) ncleo ARM7TDMI-S1'1.
(versin de Synthesizable
ARM7TDMI) (brazo de cl7EJS1'1 (ncleo de pared
Synthesizable Jazclle DSP y
tecnologa) y ARM720T
Macrocell (en cach del
procesador. 8K Core con
cach de la unidad de
administracin de memoria
(MMU) apoyar syMenis
operativo (SO) Windows CE.
Palm OS. Symbian OS y
Linux).
Cuidado con el Ncleo RISC de 32 bits
ARM y
Pulgar
Instrucciones
Sels
Costo de aplicacin y poder- dominio
sensible las aplicaciones de consumidor lor
ejemplo. Equipos personales de audio MP3.
WMA. AAC jugadores, nivel de entrada de
telfono mvil, buscapersonas bidireccional,
todava cmara digital. Pda

ARMV"< Pulgar Family

ARM 11

La) ARM920T (dos cachs de 16 k


con soporte de MMU. OSes), (b)
ARM922T (doble de 8 K de cach
para aplicaciones, soporte para
varios sistemas operativos), (c)
ARM940T (Dual de 4 K de
cach para aplicaciones de control
embebido que ejecuta un RTOS)

Las familias con ARMv6 instruccin


Arquitectura de conjunto que incluyen
morir
Pulgar extensiones de cdigo
La densidad. Jazelle tecnologa para
Java1'1 de aceleracin. DSP DE
BRAZO
Extensiones SIMD y media
Extensiones de procesamiento. La
MMU
Apoyo. Sistemas operativos y Palm
OS
Yo

Procesador RISC de 32 bits core


super
5-etapa de sellado ducto entero.
S-entrada escribir bferes. Evita
Bloquear el procesador
Escribe de memoria externa.
Set-top boxes, gateways, inicio
Consolas de juegos. Audio MP3.
Videotelfonos de vdeo MPEG4,
Los comunicadores porttiles. Pda
La prxima generacin de mano
Los productos de consumo digital
Los productos, imgenes de
productos,
Impresoras de escritorio, la imagen
fija
Cmaras, cmaras de vdeo
digitales,
Automocin y ie telemeu -

Yo
Yo
Yo
J
32-hil con ncleo de procesador RISC
8-etapa gasoducto entero, esttico y !
Prediccin de bifurcacin dinmica y J
Carga separada y la aritmtica de la
tienda !
Los ductos para maximizar la

Yo
Rendimiento de instrucciones
Alimentado con bateras de alta
densidad y
Las aplicaciones integradas.
Embedded !
Centros de operaciones de seguridad
(SOC) de ltima generacin de
Wireless y consumir!".
Las aplicaciones. Las direcciones
Sistemas de infoentretenimiento
Requisitos de embedded
Procesadores de aplicaciones,
avanzada
Sistemas operativos y aplicaciones
multimedia, tales como

Los sistemas integrados

Caractersti
ca

Realizar

Cdigo
Densidad

ARM7rM pulgar Family

130 MIPS usando


Dhrystone benchmark 2.1 0.13
pm proceso tpica.
La alta densidad de cdigo
(comparable a un
microcontrolador de 16 bits)

Tamao
del Chip de tamao pequeo
chip de silicio portable a 0.25 pm 0.18 pm y
0.13 pm versiones

No hay acoplamiento ajustado


La memoria
Acoplamiento
(Seccin 6.3)
Power
Realizar

.4/6W9 Family pulgar

Consigue l.l MIPS/MHz,


300 Dhrystone MIPS (2.1) en un
proceso tpico de 0.13 pm
La alta densidad de cdigo

Dispositivos, aplicaciones de consumo


domstico como las de imgenes y
aplicaciones de la cmara digital, home
gateway y equipamiento de
infraestructura de red como voz sobre IP
y el mdem de banda ancha.
Objetivos de rendimiento de un rango
de 400 a 1200 Dhrystone MIPS
La alta densidad de cdigo

Tamao del chip de 4,2 mm2 en


0.13 los procesos de fundicin de PNI
ARM940T. Portable a ltima 0.18 entregar 350 a 500 MHz, en el peor de
pm
los casos, y ms de 1 GHz en la prxima
0.15 pm. 0.13 pm procesos de silicio. generacin de procesos de PM 0.1
Frecuencia de 185 MHz a 0,18 p en
el brazo 940T.
No hay acoplamiento ajustado

T
Consumo de energa muy bajo Consumo de energa muy bajo. No T Una eficiencia energtica ptima, sola- |
potencia 0,8 JJW/MHZ en
operacin de emisin con el fin
0,18 JJ Ibundry proceso genrico de Realizacin para minimizar la
silicio. Peor caso: 1,62 V. I25C, y la puerta 1 count, consumiendo menos de
lentitud de silicio. Normal: 1,8 V.
; 0,4 pW/MHz en procesos de fundicin
silicio nominal a 25C.
de 0,13 pm j
La abeja africanizada

Pus
Interface

Brazo/I

Ninguno j
Solo 32 bits interfaz de bus AMBA

5. Ail mejora de v5TE es la arquitectura ARMv5TEJ arquitectura (introducido en 2000). Incorpora la


tecnologa Jazelle acelerador de ejecucin Java para Java. Esto proporciona significativamente mayor
ejecucin de cdigos Java por 8x ms de rendimiento que una basada en software-Java-Virtual Machine
(JVM). Hay un 80% de reduccin en el consumo de energa en comparacin con los no-Java core
acelerado. Esta funcionalidad proporciona una caracterstica que los desarrolladores de la plataforma Java
cdigos as como os las aplicaciones pueden ejecutarse en un solo procesador en un SoC o sistema
integrado.
6. Una mejora de v5TEJ arquitectura es con ARMv6 primera implementacin de arquitectura (2002),
utilizado en la microarquitectura ARM 11. Tiene SIMD (Single Instruction Multiple Data) extensiones,
optimizado para aplicaciones, tales como video y codecs de audio. Rendimiento de ejecucin SIMD es
mejorado por 4x.
.(*

Ejemplar de otros procesadores de alto rendimiento Intel XScale y StrongARM SA-110, Tl


OMap MIPS R5000 son otros ejemplos de .12 de alto rendimiento y los procesadores de 32/64 bits. Estos
han sido tambin yo en muchas aplicaciones en sistemas embebidos.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real 95

Algunos procesadores estn especialmente dedicadas a un determinado rendimiento. Por ejemplo, XIO red
familiar de 2010 ofrece el rendimiento del puerto de 10 Gbps para IPv6 (Internet de banda ancha). DSPs con altos
rendimientos se SHARC, Tiger SHARC y TMS 64x se describen en las siguientes subsecciones.

2.3.4 SHARC
SHARC es la arquitectura de procesador de dispositivos analgicos. SHARC significa super equipo de chip nico
de arquitectura de la Universidad de Harvard. La figura 2.19 muestra los buses, Alu, REGISTROS Y MEMORIA
EN SHARC arquitectura.
SHARC es utilizada en un gran nmero de aplicaciones DSP. Se ha controlado la disipacin de potencia en
coma flotante ALU. SHARCs diferentes pueden ser conectadas mediante comunicacin serie entre ellos.
SHARC tiene las siguientes caractersticas:
1. SHARC tiene espacio de direcciones de 32 bits para acceder a 16 GB o 20 GB o 24 GB segn el
tamao de la palabra en la memoria de configuracin. Para tamao de palabra de 32 bits de
configuracin externa de memoria direccionable, el espacio es de 16 GB.
2. SHARC prev dos configuraciones de tamao de palabra de 32 bits y 48 bits.
3. SHARC tiene dos conjuntos completos de 16 registros de propsito general. Por lo tanto, el cambio de
contexto es rpido. As pues, os permite la multitarea y multiproceso en programas fcilmente.
4. Los registros se denomina R0 a R15 o F0 o fi5 depneding sobre si hay utilizados para configuracin de
funcionamiento entero o de punto flotante de configuracin.
5. Los principales registros son de 32 bits. Unos registros son de 48 bits, de modo que tambin pueden ser
accedidos como un par de 16-bits y registros de 32 bits.
6. SHARC prev una gran memoria en chip de 1 MB. Tiene memoria de programa y memoria de datos de
Harvard en arquitectura de memoria chip.
7. SHARC prev tambin externo OFF memoria chip.
8. Fuera de chip as como en chip de memoria puede configurarse para 32-bit o 48-bit de palabras.
9. Arquitectura SHARC permiten la memoria del programa configurable para la memoria de programa y
memoria de datos secciones.
Instrucciones de 48 bits

Yo

32 enteros y punto flotante (FP)

~~~"

N , --------------------------- 1

Yo ______________________________ __________ _____ Yo | J-ALU para enteros i


40 bits de punto flotante extendido (EFP)
40 bits (EFP)
L -- .
' , -Tj
----------- -------------------- ----- ..... ------------ --------------- ...... - -j K-ALU para enteros j
- 80 bits
1 MB de memoria chip j
Un bus de direccin de 32 bits de bus en J J
Un bus de direccin de 32 bits K-bus j
Bus de datos de 128 bits de bus en J J
Bus de direcciones de 128 bits J K-bus

16 GB de
memoria
Off-Chip

Un bus de direccin de 32 bits de bus l \


Bus de datos de 128 bits l-bus |

. .(K
Mundo de 32
bits

Fig. 2,20 Autobuses, Alu, registros y memoria en la arquitectura SHARC

96

Los sistemas integrados

_/

10. SHARC tiene instruccin palabra de 48 hits y 32 hn palabra de datos para operaciones de punto flotante y
de enteros y 40-hit floatingpoint extendida. SHARC VLIWI funciona como una palabra de instruccin
muy grande), el procesador 'archivo word .tamao es4s bits para obtener instrucciones. 32 hil para enteros
y estndar-poinl tloaling (FP) y 40-hit de punto flotante extendido (EFP). Menor de 16 o X-bit tambin
debe almacenar datos completos de 32-hit. Por lo tanto, el big endian o little endian la alineacin de los
datos no es considerado durante el procesamiento.
11. SHARC tambin proporciona instrucciones para la saturacin las operaciones con enteros. Para exgmplc,
el entero despus de la operacin debera limitar a un valor mximo. Estas instrucciones:-; son necesarios
en el procesamiento de grficos.
12. SHARC permite operaciones paralelas. Se admite procesamiento paralelismo a nivel de instruccin, as
como de acceso a la memoria el paralelismo. Por lo tanto, no lo puede hacer varios accesos a datos en una
sola instruccin.
TigerSHARC TigerSHARC es una mayor densidad de rendimiento de los procesadores de la familia de dispositivos
analgicos. La arquitectura proporciona precisin circuitos integrados de alto rendimiento utilizados en el
procesamiento de la seal digital y analgica de las aplicaciones. Una versin de TigerSHARC es TigerSHARC
ADSP-TS20I.
TigerSHARC est diseado para aplicaciones multiproceso y para obtener el mximo rendimiento mayor
BFLOPS .millones de operaciones de coma flotante por segundo). MultipleTigerSHARCs puede conectarse
mediante comunicacin en serie I GBps. ADSP-TS203SABP-050 procesador procesa con reloj a 250 MHz y
memoria en chip de 6 M bits y funciona a 1,2 V/3,3 V. diseo ayuda de baja tensin en el procesamiento con poca
disipacin de energa. Analog Devices TigerSHARCs tienen el mximo rendimiento por vatio. Un TigerSHARC
versin tiene 24 M bits de memoria ON-chip. TigerSHARC est disponible como el IP core tambin para que
nuevas aplicaciones con el ncleo puede ser desarrollado.
TigerSHARC encuentra aplicaciones en software de procesamiento de banda base. 3G WCDMA baseband
comunicacin, estaciones base de telefona mvil y 14 Mbps HSDPA (Acceso a paquetes de datos de alta velocidad)
para redes basadas en paquetes de contenido multimedia.

2.3.5 DSP
Los circuitos del procesador de seal avanzado compuesto de MAC (.multiplicar y acumular) en una unidad DSP
proporciona una rpida multiplicacin de dos operandos y acumula los resultados a una .direccin nica. Calcula
la ltima expresin es el siguiente, y" = I(aj.x,,..). En el caso de que la suma est hecha para i = 0. 1.2..... N-. Aqu
i, n y n son enteros, una es un coeficiente, x es la variable independiente o una entrada clemente y \ es la variable
dependiente o un elemento de salida.
Los procesadores DSP invariablemente tienen arquitectura de Harvard. Las cachs son tambin organiz en
arquitectura Harvard separar 1-cache y D-Cache).
Arquitectura de procesador de seal digital de la arquitectura de un DSP puede entiende por considerar un
ejemplar de TMSC DSP64xai generacin DSP.
Las principales unidades estructurales en un DSP de TMSC64x de generacin y sus funciones estn dados
" 2.4
Organizacin de procesador y memoria
en la Tabla 2.4. La figura 2.21 muestra las interconexiones entre veinticinco unidades estructurales mediante un
, procesador.
,ns El cuadro 2.5 da las unidades estructurales adicionales y las
diagrama de bloques para la estructura del
2.4.1
del
procesador VelociTl, que es una extensin de la arquitectura VLIW.
funcionesOrganizacin
de los procesadores,
TMS320C64x64
La figura 2.22 muestra una simple representacin de organizacin del procesador y la memoria en un sistema. La
memoria y el procesador de interfaz de 10 dispositivos mediante autobuses. Figura 2.16 mostr un detallado
diagrama de bloque para uso interno

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

Cuadro 2.4 unidades estructurales y funciones del procesador de un ncleo DSP


Slntdunt! Unidades de
cuidados m
Unidades Itasic

Envo de instrucciones

Funciones
MDR, bus interno. El bus de datos, bus de direcciones. bus de control. unidad de interfaz de bus,
la instruccin Fetch registrar, decodificador de instrucciones, unidad de control de la cach de
instrucciones, cach de datos, procesamiento de canalizacin multietpico, multiline
procesamiento superescalar para velocidad de procesamiento superior a uno de instrucciones por
ciclo de reloj, contador de programa similar a la Tabla 2.2.
Para el envo de instrucciones a las unidades correspondientes.

Control de registro
Registros de la unidad de
emulacin
Un archivo de registro

Registros de control asociado con la unidad de control del procesador.


La emulacin

Registrarse Archivo B

Conjunto de registros utilizados en el chip durante el procesamiento de instrucciones en la ruta de


los datos 2. Estos se denominan AO... Un 15 y un16 ...A3!.

Unidad de Prefetch
Unidad de procesamiento

Para obtener ocho instrucciones de 32 bits en cada ciclo.

Lgica aritmtica
Subunidad '

Subunidad para ejecutar instrucciones aritmticas o lgicas segn instruccin actual


Capturado en IR.

La subunidad fMgic
auxiliar

Conjunto de registros utilizados en el chip durante el procesamiento de instrucciones en la ruta de


los datos 1. Estos se denominan AO... Un 15 y un16 ...A3I. Un mosaico de registro es un archivo
que se asocia con una unidad como ALU o FLPU.

Dos mullipliers y seis unidades aritmticas, altamente ortogonales, compilador y optimizador de


conjunto, la ejecucin de los recursos.

Una subunidad utilizados durante la sustraccin. [considera 2's complementar antes que la suma
y, a continuacin, agrega a fin de restar)

La subunidad multiplicador Multiplique


En la subunidad C67x rM distinta del ALU y realiza operaciones de FLP.
Procesamiento de punto
flotante (FLP) subunidad
General Optimizer
Optimizador para cdigos montado
Compilador de C

Compilacin altamente eficiente

Cuadro 2.5 unidades estructurales adicionales y las funciones de los procesadores en TMS320C64xS4
VelociTI Extensin de la arquitectura VLIW
Unidad estructural en Core

Funciones

Procesamiento de datos
8-bit o 16-bit de datos procesados y envasados como datos de 32 bits
empaquetados
Ejecucin Farallel unidades MAC Quad/MAC de 16 bits Ocla! 8-poco MAC [Tabla 2.2|
Instrucciones especiales
Cach de nivel 2

La banda ancha y el procesamiento de imgenes utilizando VLIWs


Mejora el rendimiento de cada ciclo de fetch

Instrucciones de la unidad de Instrucciones VLIW lleno, ya que se ejecuta en paralelo sin entre detiene
embalaje

Unidades de procesador y mostraron a los autobuses. Un procesador tiene un ALU. Un processorcircuit no


secuencial de operaciones y un reloj de estas guas. Un procesador tiene el programa coimier y puntero de pila,
que apuntan a la instruccin para ser capturada y parte superior de los datos empujados a la pila, respectivamente.
Algunos procesadores tienen memoria en chip

I 98

Los sistemas integrados

Bus interno

I i
Instrucciones
Fetch
Unidad

La
emulacin
Unidad

Instrucciones
Envo
Unidad

El control
Registra

Instrucciones
Decodificado
r
Unidad

Nivel 2
Las
cachs

Unidad de prueba
Interrumpi
r
El control
Unidad
El control
Logic
Autobs
Interface
Unidad

H
Registrarse
Archivo B15--BO B31 B16

Registrarse
Archivo A15--AO A31 - A15

"T\.
L1I

S1

~t\

M1

D2

D1

Rn

JJ,M2J

Li

IlT. II

Yo

LU + 1 -1
r~! J
RI

L1: ALU
L2 : ALU
Is: unidad lgica auxiliar auxiliar S2 :
M1: la unidad D1
Multiplicador
:Divisor
ILP:
8 Instrucciones de 32
bits

M2:
multiplicador
:D2 Divisor

!_J :

Cuatro equipos Mac de 16


bits/8 bits
serialismo
MACs

Fig. 2.21 Estructura unidades bsicas y especiales en el DSP TMS320C64x


DSP Nota: Las unidades de punto flotante presente en C67x

RAM I

... J
Malos
R-1

Procesador

Yo Tt i
! 1 Yo
I1
Yo

I ROM _I
I1i
'"T'R

,-

I 1 bus de direcciones
JI
| ! -El bus de datos

1
I .bus de control
Yo

| Dispositivos Input-Output

Fig. 2.22 una vista sencilla de organizacin del procesador, buses y memoria en un sistema
Unidad de manejo (MMU). Un procesador generalmente tiene registros de propsito general. Organizar los
registros en un bus comn interno del procesador. Un registro es'A'32, id o 8 bits, dependiendo de si la ALU realiza
en una instancia de 32 o de 16 u 8 bits.
Un procesador puede tener CISC (Computadora de conjunto de instrucciones complejas) o arquitectura RISC
(Reduced Instruction Set Computer). Un CISC tiene la capacidad de procesar y de lgica aritmtica compleja as
como otros

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del


99mundo real

Instrucciones corteza procesos conjuntos de datos complejos utilizando menos registros, ya que proporciona foros
gran nmero de modos de direccionamiento. Un RISC ejecuta instrucciones sencillas y en un solo ciclo por
instruccin. Nuevos procesadores RISC, tales como ARM 7 y ARM9. Tambin ofrecen unos ms tiles
instrucciones CISC tambin. CISC RISC converge a una aplicacin debido a que la mayora de las instrucciones
son almbricos e implementar en un solo ciclo de reloj.
Un procesador proporciona los insumos lor externo para que las interrupciones de circuitos externos pueden
enviar las seales de interrupcin (Seccin 2.2.4). El procesador puede poseer una interrupcin interna controller
(controlador) de la rutina de servicio del programa de prioridades y asignar direcciones de vectores. El controlador
de interrupciones internas es de gran ayuda en la mayora de las aplicaciones.
Un procesador puede proporcionar instrucciones de manipulacin de bits. Estas instrucciones ayuda de fcil
manipulacin de bits en los puertos y las direcciones de memoria. Algunos procesadores poseen FLPU y FRS
unidades flotantes que realizan
Algunos procesadores proporcionan acceso directo a memoria (DMA) controlador con varios canales en el
chip. Cuando hay un arco nmero de dispositivos de E/S y un dispositivo de E/S necesita acceder a un conjunto
de datos multibyte rpido, la memoria del sistema en chip controlador DMA es de gran ayuda. La seccin 4.8 se
describe el DMA en detalle.
La tabla 2.6 enumera las 19 caractersticas de la CISC Familia de microcontroladores y microprocesadores.
Tabla 2.6 Caractersticas de cuatro familias de procesadores CISC y microcontrolador
Capacidad

Ciclo de instrucciones del procesador en


microsegundos (tpico)
! 1bus interno ancho en hits
La arquitectura RISC o CISC j
Contador de programa | hits con
Valor \ reset
Puntero de pila hits con reposicionar el
valor inicial en caso de que un procesador
define estas
Unidad
de operaciones atmicas
Canalizacin y super-arquitectura escalar
En chip de RAM y/o registrar
4 bytes del archivo

Intel 8051 e
Intel 8751

Motorola
M68HCUE2
E2

Intel
S0I96KC

Intel
Pentium

0.5

0.5

0.0011

CISC

CISC

16
CISC

16
(0x0000)

16
|(0xFFFE)|

16
(0x2080)

16

16

(0x07)
No hay

No hay

No hay

No hay

No hay

128 y 128
RAM

512
RAM

No hay
256 y
232

64
CISC a RISC Feature'
32'
(OxFFFF FFFF)

No hay
S
No hay

Cach de instrucciones

No hay

No hay

No hay

Cach de datos

No hay

No hay

No hay

8kB5
8kB'

4k
64 k6

8k

8k
64 k

No hay
4 GB

Memoria del programa EPROM/EEPROM


Programa de capacidad de memoria en bytes
Capacidad de memoria de pila/datos en
bytes
La memoria principal. Harvard o Princeton
architecture (Seccin 2.4.2)
Interrupciones externas
Instrucciones de manipulacin de bits
Procesador de punto flotante

64k

64 k6

64k

64 k

4 GB

Harvard6

Princeton

Princeton

Princeton

I7
S

No hay

No hay

No hay

S
(cont)

Yo

100 |

Los sistemas integrados

Capacidad
Intel 8051 e Intel
8751
Controlador de interrupcin interna
Canales de controlador DMA
Chip MMU

Motorola
M6HHCIIF.2
E2

No hay
No hay

No hay
No hay

Intel
80I96KC

Hud
Pentium

No hay

1 (PTS) X
No hay

4
S

' li es el tiempo mximo en un tpico GHz Pentium I versin.


'Single dock-ciclo de aplicacin para la mayora de instrucciones hardwired accesorio como una RISC
'Stack Pointer ESP 32 bits junto con el segmento de pila es 16 bits punto a pila fsica direccin en la memoria. Iguala es x Ox I
(XXX) + ESP.
JThis est en versin estndar. En otras versios. Puede ser diferente,

''Esto es en una versin tpica


*Piognmt y memoria de datos .espacios estn separados en los miembros de la familia Intel 8051. Es comn en los dems.
"Utilizando el pin INTR y controlador de interrupciones programable externo, hasta 256 interrupciones externas pueden manej
"PTS significa que hay un servidor de transacciones perifrico proporciona una caracterstica similar a DMA.

El cuadro 2.6 muestra las direcciones de memoria en hexadecimal. Por lo tanto 0x10000 significa una direccin
de memoria hexadecimal 10000; OxIOOFF significa direccin de memoria hexadecimal I00FF. El mismo es la
convencin en C. ayuda a distinguir entre un nmero decimal del nmero hexadecimal.

2.4.2 Organizacin de la memoria

L
\

El sistema de memoria (compuesta por varias unidades) acta como un recipiente de almacenamiento para datos y
programas. La mayora : sistemas tienen dos tipos de memoria, memoria de slo lectura (ROM) y la memoria de acceso
aleatorio (RAM). Funciona como una memoria flash ROM. Ejemplos de usos de flash son los telfonos mviles,
ordenadores porttiles y cmaras digitales.

Memoria de slo lectura como su nombre sugiere, el contenido de la ROM no nol modificar
durante el funcionamiento del equipo o al apagar pero se puede leer. En general, la ROM se
usa para contener un programa que se ejecuta automticamente por el sistema cada vez que
se enciende o se restablece. Este programa se llama bootstrap, o cargador de arranque, que
indica al sistema para cargar el sistema operativo desde su disco duro u otro dispositivo de
almacenamiento de E/S.
El nombre de este programa viene de la idea de que el sistema est "tirando de frente por sus propios medios",
mediante la ejecucin de un programa que le indica cmo cargar su sistema operativo. Un ejemplo de ROM es
como sigue: un sistema tiene una unidad ROM(s) de la(s) prograrn bootstrap, sistema bsico de entrada y salida
(BIOS) programa(s) y las direcciones de los vectores de interrupciones (Seccin 4.4.1).

Memoria de acceso aleatorio Memoria de acceso aleatorio, por otro lado, puede ser ledo y
escrito, y se utiliza para mantener los programas, el sistema operativo y los datos requeridos
por el sistema. Por ejemplo, un telfono mvil dispone de 128 kB o 256 kB de RAM para
sostener la pila y variables temporales del si stema operativo de programas y datos. En
general, la RAM es voltil, lo que significa que no retiene los datos almacenados en ella cuando
el sistema est apagado. Cualquier informacin que necesita ser almacenada mientras el
sistema est apagado debe ser escrita en un dispositivo de almacenamiento permanente,
como la memoria flash o disco duro.
Direcciones de memoria (RAM y ROM) se divide en un conjunto de ubicaciones de almacenamiento,
cada uno de los cuales puede contener I-byte (8 bits) de datos. Las ubicaciones de almacenamiento
estn numerados, y un nmero asignado se denomina direccin. ti ',ls define en una ubicacin de memoria
de sistema que el procesador quiere hacer referencia a una instancia determinada. Una de las caractersticas importantes
de un sistema informtico es el ancho de las lneas de direccin (bus) que utiliza, lo cual limita la
Arnoun^sFsmtrroiyAh^t el procesador puede afrontar. La mayora de los ordenadores actuales utilizan 32 bits o 64 bits de

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y el entrelazado del mundo real ' 101 I

Les permite acceder a 2 o 2M: hvtes de memoria. Suponga que tiene un PC IBM i MB de memoria (1024 x 1024
bytes). Su correa bool programa y BIOS ROM de direcciones estn entre 15 x 2"' (s OxHIOOO) y 230 - I (=
OxFFFFF). RAM addres.es estn entre I x 2lfc (s 0x10000) y 15 x 2"' - i <= OxFFFFF).

Modelo de memoria de acceso aleatorio de un modelo simple de la RAM y la ROM es el de


acceso aleatorio.
Modelo de memoria cuando todas las operaciones de la memoria, tome la misma cantidad de tiempo
independiente de la direccin ol
Byte o palabra en la memoria. Asumir que la memoria del sistema apoyar dos operaciones: CARGA (operacin
de lectura
En procesador de memoria) y almacenar (leer el funcionamiento del procesador a la memoria). El acceso
aleatorio.
Modelo establece lo siguiente: desde la memoria, un byte de datos, una palabra, una palabra doble, cudruple o
una palabra puede ser
Accede desde o en cualquier ubicacin direccionables y un proceso similar se usa para acceso desde todas las
ubicaciones. All
Es igual el tiempo de acceso para leer o escribir, que es independiente de la ubicacin de la direccin de la
memoria. Este modo difiere
De otro modelo, denominado modelo de acceso de serie.

Guardar y cargar (Escritura y Lectura) Instrucciones la mayora de las organizaciones de alto


rendimiento permiten ms
De 1 byte de memoria (generalmente de cuatro bytes) a ser cargado o almacenado al mismo tiempo.
Generalmente, una carga o tienda
La operacin funciona en una cantidad de datos igual a la anchura del bus del sistema y la direccin enviada a la
memoria
Sistema especifica la ubicacin de la menor dirigida byte de datos palabra(s) que va a ser cargado o almacenado.
Cada instruccin.
La mayora tiene el opcode seguido de operandos. Las operaciones de la tienda requieren dos operandos, un valor
que se almacena y el
Direccin en la que el valor debe ser almacenado. No coloque el valor especificado en la ubicacin de memoria
Especificado por la direccin.
Las operaciones de carga necesita un operando que especifica la direccin que contenga el valor cargado y
volver
(fetch) el contenido de la ubicacin de la memoria en su destino (registrar), la cual es especificada por el otro
operando.
Con este modelo, la memoria puede pensaba de como funciona similar a una hoja grande de papel con
renglones,
Donde cada lnea en la pgina I-byte representa una ubicacin de almacenamiento. Escribir el valor de la ti (store)
en la memoria, nos
Cuente hacia abajo desde la parte superior de la pgina hasta llegar a la lnea especificada por la direccin, borrar
el valor escrito
En la lnea y escriba el nuevo valor. Para leer (carga) un valor, contamos hacia abajo desde la parte superior de
la pgina hasta que w e
Llegar a la lnea especificada por la direccin, y lea el valor escrito en esa lnea.

Alineacin del almacn Multibyte y carga en la OrganizacinS.J*.


de tttSTITtfre
la memoria de la
organizacin de la memoria de algunos
** TECNOLOGA
..'.ANQALORE
Requiere carga y almacena para ser "alineado". Supongamos que una palabra deUMAKV
4 bytes
se ha alineado en la
5*0 M*.
direccin OxOOOC o
0x1000, que es un mltiplo de 4. Esto simplifica la organizacin de la memoria del sistema como sigue:
Cuando una organizacin de memoria requieren carga y almacena para ser "alineado", que significa que la

Los sistemas integrados

(b) Asumir que una determinada organizacin requieren carga y almacena no estn alineados. Un sistema de
32 bits carga / o almacenes de 32 bits (4 bytes) de datos con cada operacin en los 4 bytes que comience
con la operacin direccin jj, as una carga desde la ubicacin 0x423 devolvera una palabra de 32 bits
que contiene los bytes en gi ubicacin 0x0423 0x0424 0x0425 y 0x0426, como en tales organizaciones la
tienda o cargar gfl direccin puede ser cualquier nmero, no necesariamente un mltiplo de 2 o 4. JU

Little endian y big endian en una organizacin de memoria de procesador y memoria de algunas
organizaciones requieren otros little endian y big endian alineados varios bytes cuando se
almacene en la memoria o la carga en el procesador de memoria. El procesador ARM permite
la programacin al inicio y permite al programador definir uno de dos posibles alineaciones de
palabra, little endian o big endian, al principio. Es importante saber cmo organizacin ordena
los bytes escritos en la memoria.
(a) En un sistema little-endian, el menos significativo (menor valor) byte (8 bits) de una palabra (de 16 o 32
bits) est escrita en la menor-byte direccionado, y los otros bytes estn escritas en orden creciente de
importancia.
(b) En un sistema de big-endian, se invierte el orden de bytes, con el byte ms significativo se escriben en el
byte con la direccin ms baja. Los otros bytes estn escritas en orden decreciente de importancia.

Ejemplo 2.10

1. Dos pedidos diferentes regmenes se utilizan en equipos de mdem: little endian y big endian asumir.
Que una palabra de 32 bits es 0x90abcdef, y la direccin donde se almacena cuando la palabra escrita
es
0x1000. A continuacin se muestra un ejemplo de cmo un sistema little-endian y big-endian system
Escribira una de 32 bits (4 bytes) de datos word a la direccin 0x1000.
Sistema little-endian y big-endian system
Direccin

0x1000

0x1001

0x1002

0x1003

Little Endian

EF

CD

AB

90

Big Endian

90

AB

CD

EF

En general, los programadores no necesitan conocer el peso del sistema estn trabajando, excepto cuando
La misma ubicacin de memoria se accede utilizando cargas y tiendas de diferentes longitudes. Por ejemplo, si un
I-byte almacenar de 0 en la ubicacin 0x1000 fue realizado en los sistemas de 32 bits en el ejemplo 2.10. El posterior
Carga de 32 bits de OX 1000 devolver 0x90ABCD00 en el sistema little-endian y OxOOABCDEF en el bigSistema endian. Endianidad es a menudo un problema cuando la transmisin de datos entre diferentes sistemas
informticos, tan grandeLittle-endian endian y sistemas informticos interpretar la misma secuencia de bytes como palabras diferentes de
datos.
Para evitar este problema, los datos deben procesarse para convertirlo en el peso del equipo que va
Leerlo.
Las figuras 2.10 y 11 se describe la memoria, procesador y IO dependencias organizadas en los autobuses.
Puede ser de forma segura
Lleg a la conclusin de que la organizacin de la memoria tiene un gran impacto en el rendimiento del sistema
informtico y es
A menudo el factor limitante de la rapidez con que se ejecuta una aplicacin. Tanto el ancho de banda (la cantidad
de datos que pueden ser
Cargado o almacenado en una determinada cantidad de tiempo) y la latencia (cunto tiempo tarda la operacin
concreta de memoria
Completa) son crticas para el rendimiento de la aplicacin.
Otras cuestiones importantes en el diseo del sistema de memoria incluyen proteccin (prevencin de diferentes
programas de

103'real
8051 y arquitecturas de procesador avanzado. Organizacin de la memoria y de la interconexin del mundo
Puede haber on-chip como memorias RAM y/o registro, archivos de Windows, la memoria cach y los ROM
en un micro
Las cachs son las partes integrantes de la organizacin. memoria dentro de un sistema. El diseador de
software debera permitir el uso de las cachs mediante una instruccin adecuada, para obtener un mayor
rendimiento durante la ejecucin de una seccin de un programa, mientras que, simultneamente, la desactivacin
de las secciones restantes a fin de reducir la disipacin de energa y minimizar los requisitos de energa. Los
diseadores de hardware debe seleccionar un procesador con cach multiva unidades para que solamente la parte
de una unidad de memoria cach se activa que tiene los datos necesarios para ejecutar un subconjunto de
instrucciones. Esto tambin reduce la disipacin de energa.

Organizacin de memoria del procesador: Arquitectura de Princeton la figura 2.23(a)


muestra la organizacin de memoria y procesador en Princeton arquitectura. 80x86 y los
procesadores ARM7 de Princeton tienen arquitectura de memoria principal. Vectores,
punteros, variables, segmentos de programa y bloques de memoria para datos y pilas tienen
distintas direcciones en el programa en Princeton arquitectura de memoria.
Organizacin de memoria del procesador: Arquitectura de Harvard Figura 2.23(b) muestra
el procesador y la organizacin de la memoria en la arquitectura de Harvard. Un procesador
con arquitectura de memoria principal de Harvard tiene diferentes espacios de direccin,
seal de control(s), instrucciones de procesador, y las
, Programa
rutas de
de Vectores
datos ypara los bytes de datos
punteros
y del programa. (La familiaPrograma
de
microcontroladores
8051
tienen
del
arquitectura
/ _Memoria
_____
_ ____
La memoria Harvard).
Y
Leer
programa
7/7/7M
As como
Datos
Memoria de datos La
Direcciones
memoria
Entre
0x00.00
Vectores y
punteros
A
OxFF.FF
B
(0 a 2 -1)

Escrib
DATOS
{ Control __ir
Seales D0

IzEEE
l

La memoria de programa se
arranca el programa,
funciones, rutinas y tareas

Fecha
tiene Pilas
memoria, as como
datos de entrada
datos de salida

Pilas

(a)

Cdigo del programa

Seales
Desde
'| i"7T. "'it'MH/M

Programa
La memoria
Direcciones
Entre

0x00.00
(de 0 a 2P1)

,|K

Las seales
de control
(1

Las
direcciones
de memoria
de datos
entre 0x00.
00 a
OxOFF.FF (
0 a 2q -1)

Fig. 2.23 (a) organizacin de memoria y procesador en Princeton architecture (b)

organizacin de procesador y memoria en la arquitectura de


Harvard

104

Los sistemas integrados

Harvard arquitectura ayuda en el manejo de flujos de datos que son necesarios para poder acceder a ellos en
casos de single instruction multiple data escriba las instrucciones y l)Si instrucciones". Los buses de datos separado
asegurar accesos simultneos para instrucciones y datos. Segmentos de programa y los bloques de memoria lor datos Y
bloques tienen distintos conjuntos de direcciones. Las seales de control y las instrucciones de lectura y escritura
tambin son independientes para acceder a la memoria de programa y memoria de datos.
Debe recordarse cuando se codifica en general y a la hora de organizar los principales recuerdos de ciertos
procesadores, memoria que su organizacin puede ser la arquitectura de Harvard. La memoria de programa y
memoria de datos hat e conjunto independiente de direcciones y tienen instrucciones separadas para la zona de
accesos. Un procesador con arquitectura Harvard es necesaria para el acceso a las transmisiones de datos. Ejemplos
arc (i) single instruction multiple data escriba las instrucciones y (ii) las instrucciones de DSP.
Por ejemplo, considere un cmputo DSP de la siguiente expresin en una "respuesta de impulso finito (FIR)
Filtro'. Un n-simo secuencia de salida filtrada, y" = I(a,.x"- i). En el caso de que la suma est hecha para i = 0. 1.2
................................................................................................................................................................. N-I. Aqu
I. n y n y de los enteros. Si N = 10, entonces, para cada valor de y. en primer lugar, uno de los coeficientes de 10 a;
y una de las 10 secuencias de entrada, x, se multiplican y, a continuacin, la suma se realiza. Los cmputos totales
para todos los 10 valores de n necesitar 100 100 multiplicaciones y sumas. Almacenar y acceder a los coeficientes
de un conjunto separado de las direcciones de memoria en una memoria independiente permitir acceso rpido
mediante un conjunto separado de los autobuses.

2.5

El paralelismo a nivel de instruccin

Varias instrucciones pueden ejecutarse en paralelo dos o ms instrucciones pueden ejecutarse en paralelo, as como
:i secuencia en gasoductos. En el paralelismo a nivel de instruccin (1LP). dos ductos paralelos en un procesador y
dos instrucciones y I1H.( ejecutar en paralelo en distintas unidades de ejecucin. La figura 2.24 muestra el
paralelismo a nivel de instrucciones en el procesador Pentium.
Yo

Canalizaci
n U
Yo ----------------------

Pestillo de canalizacin

Un ciclo de reloj C| un ciclo de relojt1

Ci

un ciclo de reloj ci+2 un ciclo de reloj q,3 un ciclo de reloj.


Leer j | Insumos Uj

Obtiene un
Instrucciones
En+1

Decode
Ln+1

Y||

! Ejecutar L.
I ln ,tengo acceso.
! ALU y j i , 1

Direccin | p

Las cachs j j

Un

J Escribir
-| Resultado
| U.

Pestillo
V Pipeline |

Fig. 2.24 El paralelismo a nivel de instruccin en un procesador

2.5.1 Canalizado y unidades superescalar


Procesador de alto rendimiento es necesaria en muchos casos. Por ejemplo, el procesamiento de seales en tiempo
real. Canalizacin y superescalar, ahora se han convertido en operaciones esenciales. El diseador selecciona
hardware del procesador como por el

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


105real

MIPS o MFLOPS rendimiento requerido. [Un multi-procesador .sistema (Seccin 6.4.1) ser necesario para los
requisitos de rendimiento muy hola ah en telfonos mviles, cmaras digiial, procesamiento del habla y sistemas
de vdeo.|
Unidades de procesamiento avanzadas incluyen instruccin pipelining unidad, lo que mejora el rendimiento
por*instrucciones de procesamiento en mltiples etapas y las unidades de ejecucin superescalar en paralelo, lo
que mejora el rendimiento en la ejecucin de dos o ms instrucciones en paralelo unidades de ejecucin.
Cmo canalizacin y superescalar tales unidades proporcionan mayor rendimiento'. Veamos el ejemplo 2.11.

Ejemplo 2.11
Canalizacin y ejecucin superescalar
Paso l: supongamos que el tiempo de ciclo de instruccin del procesador es de 0,02 a 50 MHz de ps
(operacin) y que el procesador ejecuta una instruccin en un ciclo de reloj. El rendimiento del procesador
espera sin unidades avanzadas de procesamiento ser de 50 MIPS.
Paso 2: se supone que existe un gasoducto en tres etapas como en ARM7. Dejemos, por el momento, ignorar
el efecto de ramificacin (llamado branch pena). Tres instrucciones procesar en tres ciclos de reloj, pero
cada ciclo de reloj periodo puede ser hecha = 1/3 del periodo anterior, como la divisin de unidades de
proceso en etapas divide el circuito tambin. El mximo rendimiento esperado del procesador sin
superescalares pero con ducto ser = 150 MIPS.
Paso 3: Se asume que existe una arquitectura superescalar de dos lneas. Permtanos ignorar los efectos de
unaligned (datos dependencia pena). Seis instrucciones puede procesar en un solo ciclo de reloj con las tres
etapas y dos unidades superescalar. El mximo rendimiento ahora ser seis veces el tiempo de ciclo del
procesador, 300 MIPS.
Ahora podemos explicar los dos trminos utilizados", btanch pena y pena de dependencia de datos.
Pena de rama: Si una instruccin de ramificacin es encontrado en un ducto multietpico, entonces las
instrucciones ejecutadas en parte en las etapas precedentes a ser redundante. Estas instrucciones tienen que
ser ejecutados en su totalidad ms adelante despus de la terminacin del bucle o de regreso de una rutina. El
tiempo necesario para el procesamiento de estas sucursales se llama sancin.
Dependencia de datos de penalizacin: supongamos que existen dos instrucciones en la ejecucin de dos
lneas durante una operacin superescalar J. Adems, que una instruccin depende de mosaico de salida de
datos de otro. Esto es Jj conocido como una alineacin incorrecta. As, las dos instrucciones no estn
alineadas antes de ponerlos en el ij lneas separadas. Una instruccin tendrn que esperar y no puede
continuar hasta que el otro
Mi
La instruccin se ejecuta. El tiempo de espera es la dependencia de datos de pena.
SM
Procesadores superescalares posee hardware para extraer el paralelismo a nivel de instruccin de los
programas secuenciales y poseen hardware eficiente para cuidar de las colisiones en la unidad de ejecucin y de
datos y control de riesgos.
Durante cada ciclo, el problema de la instruccin lgica de un procesador superescalar examina las
instrucciones en el programa secuencial para determinar qu instrucciones podrn ser emitidos en ese ciclo. Si el
paralelismo a nivel de instruccin suficiente existe dentro de un programa, un procesador superescalar puede
ejecutar una instruccin por unidad de ejecucin por ciclo, incluso si el programa fue originalmente compilado
para su ejecucin en un procesador que slo poda ejecutar una instruccin por ciclo.
SHARC apoya la instruccin levei paralelismo. El procesador SHARC tiene instrucciones que se combinan
en una sola instruccin de Word. [SHARC tambin soporta paralelismo de memoria; su procesador tiene una
estructura de Harvard modificado llamado sper estructura de Harvard (Figura .20). Se pueden extraer datos
mltiples en una sola instruccin).
ILP capacidad es una de las mayores ventajas de procesadores superescalares y es la razn por la cual
prcticamente todos los CPU de alto rendimiento son procesadores superescalares. Procesadores superescalares
pueden ejecutar programas lhal originalmente fueron compiladas para procesadores puramente secuenciales, y
pueden alcanzar un mejor rendimiento en estos programas de procesadores que son incapaces de explotar el ILR

Los sistemas integrados

As, los usuarios que trabajan en nuevos sistemas que contengan CPUs superescalares pueden instalar sus
programas viejos en esos sistemas y ver mejor rendimiento en esos programas, lo que no era posible en sus sistemas
antiguos.
El uso de procesadores de alto rendimiento de ICs y ncleos de embedded systems ofrecer mil millones de
operaciones por segundo se ha convertido en viable debido a los grandes avances de VLSI y en ILP y procesador
de ncleos mltiples tecnologas de diseo.

2.6

Las mtricas de rendimiento

Sofisticados sistemas integrados para aplicaciones informticas de alto rendimiento necesita una optimizacin del
uso de los recursos, el poder, las cachs y memoria. Las siguientes son las mtricas de rendimiento de procesador:
1. (a) Alta MIPS, (b) alta MFLOPS y c) alta Dhrystone MIPS basada en el programa de referencia
2. Unidad de compilador optimizado el rendimiento del procesador.
Los parmetros anteriores son proporcionados por los ltimos procesadores de diseo innovador. Un
procesador de alto rendimiento combina capacidades con un uso optimizado de los recursos, el poder, cachs y
memoria.
Un programa se denomina benchmarking Dhrystone, desarrollado en 1984 por Reinhold P. Wcieker. Mide el
rendimiento de un procesador para el procesamiento de enteros y cadenas (caracteres). Se utiliza un programa de
referencia disponible en C, Pascal o Java. Puntos de referencia que una CPU y no el rendimiento de 10 u os llama.
Dhrystones por segundo es la mtrica utilizada para medir el nmero de veces que el programa puede ejecutarse en
un segundo. I = 1757 Dhrystone MIPS/s. [Por Qu? VAX11/780, que ejecutados 1 MIPS, ejecut el programa
Dhrystone benchmark 1757 veces (consulte http:/Avww.webopedia.com/ trmino/D/Dhrystone.html.)].
Hay puntos de referencia incrustados EDN Consortium (EEMBC) [EDN es un grupo que publica la revista
internacional EDN. dedicado al Sistema Integrado de Informacin. Consulte http:/Avo\v.e-insite.net/edmag/].
EEMBC propuesto programa de referencia de cinco suites para 5 diferentes reas de aplicaciones de sistemas
integrados: (a) Telecomunicaciones, Electrnica de Consumo (b), (c) la automocin y electrnica industrial,
electrnica de consumo (d) y (e) la automatizacin de oficinas. Estas suites son tambin utilizados para medir y
comparar el procesador del sistema integrado de actuaciones.
Diferentes sistemas requieren diferentes petformance procesador en trminos de velocidad de procesamiento.
Un diseador de hardware lagos estos en vista y selecciona un rendimiento ptimo del procesador que da.

2.7

Tipos de memoria, memoria-MAPAS Y DIRECCIONES

2.7.1 En un sistema de memoria


La seccin 1.3.5 presenta la memoria en un sistema. Una simple transaccin de dbito tarjeta de crdito puede
requerir slo 2 kB de memoria. Por otro lado, una smartcard para transacciones seguras al incrustar un programa en
Java para las funciones criptogrficas pueden requerir de 32 kB (valor tpico) de memoria. Un complejo sistema
integrado pueden necesitar una memoria enorme.
Los siguientes apartados explican y mirar ciertos aspectos importantes de la memoria. La memoria se
describen diversos desde el punto de vista de sistemas integrados de un diseador de hardware o software.

ROM: sus usos, formas y variantes ROM no volatilidad es un activo ms importante y es


extremadamente til para incrustar cdigos y datos en un sistema. ROM es un trmino usado
flojamente. Para un diseador de hardware, puede significar ROM enmascarada, PROM, OTP
ROM, EPROM y EEPROM. En un sentido estricto, significa una ROM ROM enmascarada

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

Hecha en una fundicin desde el archivo de imagen ROM del programador (Seccin 1.4.1). ROM que incorpora
la aplicacin de software o un circuito lgico est en una de las tres formas: ROM enmascarada, PROM y
EPROM. Cuando ROM es para ser programado durante el tiempo de ejecucin y se procesan para sostener el
resultado, ya sea una memoria EEPROM o hash es usado.
(i) ROM enmascarada una ROM enmascarada est construido a partir de un circuito que tiene r entradas (UN
J Ar_) y 8 salidas (D" a D7). [Byte almacenar en una direccin es ms comn.] El circuito para ROM enmascarada
es uno de una serie de circuitos combinacionales 2'. Enmascaramiento adecuado proporciona el conjunto deseado
de salidas combinacionales en cada circuito. Algunos iinks fusible y otros que estn enmascarados no fusible.
[Una combinacin circuito es un circuito compuesto de puertas lgicas con un conjunto distinto de la lgica de la
salida unidos durante diferentes estados lgicos de entrada. Tiene una tabla de verdad para distintas r entradas x
8 salidas. Tan pronto como el cambio en la entrada (o retirarse), la salida cambia tambin en este circuito.|.
El diseador de software embebido (despus de rigurosas pruebas y depuracin) proporciona a una fundicin
de fabricacin un mosaico con una tabla de bits de salida deseado para las diversas combinaciones de los bits de
direccin de entrada. Un programa llamado locator crea esta tabla. El fabricante prepara la programacin
mscaras y luego los programas de la ROM en una fundicin. Esta ROM es devuelto al fabricante del sistema.
Normalmente, una vez enmascarado cargo podra ser muy alto. Generalmente, por lo tanto, un fabricante de
sistemas se realiza el pedido, y la fundicin de fabricacin aceptar el pedido de un mnimo de 1000 piezas. La
ROM es una solucin rentable para un usuario de ROMs a granel para la fabricacin de sistemas integrados. Un
sistema incorporado fabricante utilizando una ROM enmascarada no tiene que usar un dispositivo programador
(ROM quemador) cada vez que un sistema se realiza utilizando ROM PROM o EPROM o Flash.
(ii) EPROM, E2PROM y versiones especiales de OTP ROM ROM pueden ser programados por el diseador del
sitio web del fabricante o de un sistema integrado con la ayuda de un dispositivo programador. Una versin es
la EPROM. Es un rayo ultravioleta y borrable programador de dispositivos de memoria de slo lectura
programable. Borrar el dispositivo significa restaurar i en cada bit en la celda arrays en cada direccin de la ROM.
Otra versin es E:PROM (EEPROM). Es elctricamente borrable y programable, Memoria de slo
lectura. Ejemplos de EPROM y EEPROM son 2732. Una EPROM de 4 kB, 28F256. un 32 kB EEPROM y 28F00I
es de 512 k x 16 bits EEPROM.
Borrado de la EEPROM durante una ejecucin de programa de aplicacin se realiza mediante el envo de los
ocho bits del bus de datos como para la escritura en la presencia de entradas de V^, llamado voltaje de
programacin y corta duracin pulso de escritura. Envo y os en el byte por una instruccin de escritura en la
EEPROM de programacin los resultados durante la ejecucin de un programa. Borrado de un byte debe preceder
a la escritura. El procesador con el programa del sistema puede hacer borrando y escribiendo, ya que es similar a
la escritura de una RAM. Entonces, cul es la diferencia entre la RAM y EEPROM? La diferencia es que en la
RAM, en la lectura y escritura de los ciclos de distribucin son idnticos. Aqu, el ciclo de escritura tiene que ser
mayor que en el caso de RAM. y debe triunfar el borrado del byte escribiendo OxFF. Adems, una adicin voltaje
Vp|, seal es necesaria al borrar y escribir en la memoria EEPROM se produce el nmero de veces que un
EEPROM puede ser escrito es un milln de veces ms. No hay lmite para la memoria RAM, y un nmero
prcticamente infinito de escrituras es posible sin la primera escritura se encuentra en la RAM.
La memoria Flash es una forma de EEPROM en la que un sector de bytes puede ser borrado en un flash (muy
corta duracin correspondiente a un solo ciclo de reloj). [ltimamente parpadea incluso de ~3 V forma y capacidad
de 2. 4 y 8 GB disponibles incluso en forma de tarjeta o stick, que permite la insercin en la cmara o el ordenador
de bolsillo.] Un sector puede ser desde 256 B a 16 kB. La ventaja sobre la EEPROM es que el borrado de muchos
bytes simultneamente ahorra tiempo en cada ciclo de borrado que precede a los ciclos de escritura. La desventaja
es que una vez que se borra un sector, cada byte escribe en l de nuevo uno por uno;>y que lleva demasiado
tiempo. Una nueva versin de flash es arrancar de nuevo flash. Un sector est reservado para almacenar una sola
vez en el momento del primer arranque. Ms adelante est protegida de cualquier otra borrar. En otras palabras,
posee un sector de OTP que tambin pueden ser utilizados para almacenar imgenes ROM iike en una ROM. En
la actualidad, flash EPROM ha sustituido en los sistemas.
PROM (una OTP ROM, una vez que el dispositivo programador) es otra forma. Una vez escrito PROM no se
pueden borrar.

Los sistemas integrados

(iii) los usos de ROM o memoria EEPROM o Flash figura 1.5 muestra lo incrusta ROM-programa cdigos
para diversas tareas, interrumpir el servicio, las rutinas de inicializacin del kernel del sistema operativo (el programa
bootstrap y datos) y el estndar de datos o tabla o cadenas constantes.
Una EEPROM es utilizable por borrado de ms de un milln de veces. Puede borrarse durante el tiempo de ejecucin.
La memoria flash es utilizable sobre 10.000 veces para borrar repetidas seguido de programacin durante el tiempo
de ejecucin. El PROM es escrito slo una vez por un dispositivo programador o el primer sistema en marcha.
Tres ejemplos de aplicaciones de memoria EEPROM son como sigue, (i) Almacenar la fecha y hora actuales
en una mquina, (ii) Almacenar los estados del puerto, (iii) el almacenamiento, conduccin, anomalas y el historial
de fallos en un automvil para su uso por parte de los mecnicos ms adelante.
Tres ejemplos de aplicaciones de memoria de hash son como sigue, (i) Almacenamiento de imgenes en una
cmara digital.
(ii) Almacenamiento de voz comprimidos en una grabadora de voz. [Recall de mensaje pregrabado en un telfono.
| (iii) el almacenamiento de mensajes y contactos de un telfono mvil.
Ejemplos de uso de una OTP ROM son como sigue: (i) la tarjeta inteligente, nmero de identidad y la
informacin personal del usuario, (ii) de almacenamiento de programas y datos iniciales de arranque como un
pictograma para mostrar un sello o monograma.
(iii) Tarjeta de cajero automtico o tarjeta de crdito o tarjeta de identidad. Una vez que los distintos detalles que
se escriben en el banco y entregado al titular de la cuenta, no hay modificacin posible en la PROM incrustado en la
tarjeta. Igual que un documento contiene informacin permanentemente una vez escrita o impresa, lo mismo sucede
con un PROM.
Un flash ROM o PROM o no slo se utiliza para el almacenamiento de programas y datos, sino tambin para
la obtencin de las salidas lgicas preprogramados y secuencias de salida para los conjuntos y secuencias de insumos.
(Las entradas estn dadas similar a una seal de direccin por el procesador y se obtienen resultados anlogos a los
obtenidos durante un ciclo de lectura del procesador.| asumen que hay 8 entradas (r = 8). La tabla de verdad tendr
256 combinaciones. 8x8 ROM puede ser programado para generar 256 conjuntos de salidas de 8 bits para cada
combinacin. Ejemplos de aplicaciones de lgica preprogramada salidas son como sigue.
1. Usada para sujetar los bits idioma especfico para las fuentes correspondientes a cada carcter en una
impresora.
2. Usada para sujetar los bits de la imagen para una pantalla. Genera un pictograma de dichos bits. Una ROM
es utilizada en un circuito de visualizacin. Almacena los bytes de la imagen de bits completa
correspondiente a los pxeles para un pictograma. Los cambios secuenciales en las entradas generar
repetidamente todo el pictograma.
3. En un CISC un ROM de control programado en una micro-unidad se utiliza. Almacena conjuntos de
microinstructions para cada instruccin del procesador. Cada conjunto de microinstructions almacenado en
una secuencia tal que especifica un conjunto de seales para los distintos fetch y unidad de ejecucin durante
la ejecucin de una instruccin extrada de la memoria.
Diseador de un sistema RAM RAM considera dispositivos de ocho formularios. Estas formas son "RAM". "RAM".
"NVRAM'. "EDO RAM'. "SDRAM'. "RDRAM'. Distribuido parametrizado RAM y RAM bloque parametrizado.

(i) los usos de RAM RAM almacena las variables durante la ejecucin de un programa y almacena la pila
(Seccin 1.3.5). Almacena bferes de entrada y salida, por ejemplo, de la voz o la imagen. Tambin puede
almacenar los programas de aplicacin y los datos cuando la imagen de la ROM se almacenan en un formato
comprimido en un sistema integrado y la descompresin se realiza antes de la ejecucin real del sistema.
1. SRAM es usado ms comnmente para designning cachs y en sistemas embebidos y microcontroladores.
2. DRAM es tj^ed principalmente en ordenadores de alto rendimiento o alta densidad de memoria de los
sistemas.
3. EDC) RAM se utiliza en sistemas con autobuses a los dispositivos cuando se opera con velocidades de
reloj de hasta 100 MHz; un estado de espera cero es necesario entre dos obtiene, y hay un solo ciclo de
lectura o escritura.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real
109 j j

4. La SDRAM se sincroniza las operaciones de lectura y mantiene la siguiente palabra listo mientras Ihe
anterior se obtienen. Este dispositivo se utiliza cuando los autobuses puede traer o enviar a la velocidad
del procesador hasta yo GHz.
5. La RDRAM accesos en rfagas de las cuatro palabras consecutivas en una sola operacin de obtencin
y da as por encima me GHz el rendimiento del sistema.
6. RAM distribuidos parametrizada es la RAM se distribuye en varias subunidades del sistema. 10 tampones
y subunidades del transceptor puede tener un segmento de RAM cada uno y la pila del sistema puede
estar en otro sector distribucin Proporciona bfer de memoria en las subunidades antes se obtienen y
procesada por el procesador. Facilita entradas ms rpidas de los 10 dispositivos que los buses de sistema
procesador acceder a los 10s con la memoria del sistema.
7. Parametrizar el bloque de memoria RAM se utiliza cuando un bloque especfico de la RAM est dedicado
al uso por una subunidad solamente, por ejemplo, unidad de MAC. Un bloque parametrizado RAM se
usa cuando un acceso por el sistema o 10 o bus interno es lenta en comparacin con la velocidad de
procesamiento de una subunidad.
Los diferentes tipos de memoria en diversas capacidades estn disponibles para su uso, segn demanda. (1)
ROM enmascarada o EPROM o Flash almacena el software incorporado (la imagen de la ROM). ROM
enmascarada es para la fabricacin masiva.
(2) EPROM o EEPROM es utilizado para las pruebas y las etapas de diseo. (3) La EEPROM se utiliza para
almacenar los resultados durante la ejecucin del programa. Es borrado byte por byte y escritas durante la
ejecucin del sistema. Es til para almacenar bytes modificable, por ejemplo, el estado del sistema en tiempo
de ejecucin, tiempo y fecha y nmero de telfono. (4) Flash almacena los resultados byte a byte en un sistema
se ejecute despus de un sector de borrado completo. (5) Flash es por lo tanto muy til cuando una imagen
procesada o voz va a ser almacenada o un conjunto de datos o los datos de configuracin del sistema se
almacena, que puede actualizarse cuando sea necesario. Por ejemplo, una nueva imagen (despus de la
compresin y procesamiento) pueden ser almacenados y el antiguo borrado de un sector en un nico ciclo de
instrucciones. (6) bloque de arranque flash tambin tiene un sector OPT(s) para almacenar el programa de
arranque inicial o permanente de datos y los datos de configuracin del sistema. Sirve al almacenar la imagen
de la ROM o de su parte en el sector de OTP(s) y, al mismo tiempo, sirve al almacenar como un flash en otros
sectores. (7) la memoria RAM se utiliza principalmente en forma de SRAM en un sistema. (8) sistemas
sofisticados
usan la RAM en
forma de una en
DRAM.
EDO RAM SDRAM o RDRAM. (9) distribuido
2,7.2 Asignaciones
deladirecciones
la memoria
parametrizado RAM se usa cuando el 10 dispositivos y subunidades requieren un buffer de memoria y una
La
figura
2.23 (a)
las direcciones
de memoria como
necesarias
el caso
de arquitectura
de Princeton
en el
rpida
escritura
pormuestra
otro sistema.
(10) Las subunidades
MACen
cuando
funciona
a velocidad
rpida utilice
sistema.
La figurade
2.23
(b) muestra las direcciones de memoria necesarias en el caso de arquitectura de la
bloques separados
RAM.
Universidad de Harvard.
Un sistema de asignacin de memoria de mapa no es slo un reflejo de direcciones disponibles a los bloques
de memoria, y los segmentos del programa y direcciones disponibles a 10 dispositivos, pero tambin refleja una
descripcin de la memoria y 10 dispositivos de hardware del sistema. Las guas que se correlaciona con la
presencia real de la memoria en las diferentes unidades. , PROM, EPROM, EEPROM flash ROM, memoria
SRAM (Static RAM) y DRAM (Dynamic RAM) y 10 dispositivos. Refleja la asignacin de memoria para los
programas y los datos y 10 operaciones por un programa localizador. Muestra los bloques de memoria y puertos
(dispositivos) en estas direcciones.
10 dispositivos del sistema mapa pueden ser diseados por separado. Esto no slo refleja la presencia real de
10 dispositivos, sino que tambin gua las direcciones disponibles de los distintos registros de dispositivo y puerto
de datos. [Un ejemplo de un dispositivo es un temporizador. 10 dispositivos son las unidades perifricas del
sistema].
Los siguientes son ejemplos que describen la asignacin de memoria de mapas utilizando el localizador.

No hay

Los sistemas integrados

Ejemplo 2.12
Considerar un mapa de memoria para un sistema embebido exeinpiary-una tarjeta inteligente que necesiten un
2 kB de memoria RAM, 256 B principalmente para las pilas, EEPROM 512 B para almacenar el importe del
saldo en Tarjeta de crdito o dbito y los registros de transacciones anteriores' en la tarjeta. El localizador de
memoria o vinculador programa script para este sistema para definir un mapa de asignacin de memoria [Figura
2.25(a)]
como sigue.
1. Laes memoria

2.

{ram : Origen = 0x10000, longitud =

3.

Eeprom : Origen = 0x20000, longitud =

256
512
4. Rom : Origen = 0x00000, Longitud = 2K
5. }

Ejemplo 2.13

Considere una tarjeta integrada con el software de Java para cifrar anddeciphering transacciones. Supongamos
que el sistema necesita 32 kB de RAM, ROM, EEPROM de 4 kB y 512B para almacenar no slo el saldo de
crdito o de dbito bajo sino tambin las claves de cifrado y registros de transacciones anteriores sobre la
tarjeta. De modo que el localizador de memoria o vinculador programa script para este sistema define el mapa
de la memoria [Figura 2.25(b)] como sigue.
La memoria
Jj
1.
{
ram : Origen = 0x10000, Longitud = 4K
Jj
2. Eeprom : Origen = 0x20000, longitud = 512
3. Rom : Origen = 0x00000, longitud = 32K
JJ
4. }
Jf
Tambin se puede hacer la siguiente observacin importante de ejemplos 2.12 y 2.13. Direccin de memoria
existen brechas entre el origen de la ROM. La memoria RAM y la memoria EEPROM a pesar de las longitudes
muy pequeas de memoria disponible. Esta diferencia se debe a una caracterstica de diseo: El diseador
proporciona para la expansin de estos recuerdos en el futuro, por lo que no ser necesario cambiar en la interfaz
decodificador circuito entre la memoria y el procesador. Adems, su programa de software tiene que hacer cambios
mnimos. Los cambios slo sern de longitud. Esto es porque cuando no hay separacin del origen tambin
cambiar. Esta caracterstica asegura que los futuros cambios en el cdigo del programa tallas y tamaos de datos
no necesitar cambiar en el localizador de cdigos. Una caracterstica de un localizador es tambin que no reubicar
las direcciones de los puertos de propsito especial que estn dedicados a una determinada tarea de E/S o
controlador de dispositivo flic dedicada a las operaciones de lectura y escritura.
El paso final del proceso de diseo de un sistema integrado que los bytes se localiza en la ROM de la imagen
para el bootstrap (reset) el programa y los datos, los datos de inicializacin, as como los siguientes datos estndar
o sable o cadenas constantes datos y programas del controlador de dispositivo, el programa cdigos para diversas
tareas, rutinas de servicio de interrupcin y el kernel del sistema operativo. [El programa bootstrap consta de las
instrucciones que se ejecutan en el restablecimiento del sistema. El ejemplo de datos de bootstrap es el puntero de
pila para la inicializacin. Los datos de inicializacin puede ser para definir los parmetros del sistema y el estado
inicial. Las cadenas constantes pueden ser de pantalla inicial.] hay una sombra en el segmento de la ROM. La
sombra segmento tiene los datos de inicializacin, constantes de cadena, y la puesta en marcha los cdigos que se
copian en la memoria RAM por un segmento de shadow copy program en el arranque del sistema. Cuando un
cdigo de arranque (Arranque) programa / '''ejecutado, una copia de la sombra de la ROM de segmento se genera
en la RAM. La RAM tambin contiene los datos (intermedios y datos de salida) y la pila. Un formato de programa
comprimido localiza en la ROM en el caso de la gran imagen de la ROM del sistema es necesario para el
programa. Esto es porque el programa de descompresin ms imagen comprimida necesitar menos memoria de
la gran imagen de la ROM. Inicio-

8051 y arquitecturas de procesador avanzado. Organizacin de la memoria y de la interconexin del mundo real

Cdigo de tarea es generar los cdigos de programa descomprimido y almacenarlos en la memoria RAM antes de
que el sistema empieza a otros programas. El procesador ejecuta todos los dems programas posteriormente por
obtiene de la RAM.
Para el programa y
los
datos
de
entrada
Para las variables
estticas de Programa
y pila
Para el equilibrio
actual y otros datos de
salida

ROM

____

0x0000
0

ROM

OxOOr

0x07FFF

Fr
0x10000

Yo
Yo
RAM

RAM

OxIOOFF

0x1000
0
OxIOFF

0x20000
EEPROM

EEPROM 0x201FF

F 0x200

00
0x201FF

(a)
(b)
ROM

ROM

Datos de
Archivo
.dat

0x0000
0

Datos de

0x00000
.

Los datos de

Datos de
Archivo
.txt de FDATA I 0x10000
Copia
En ROM

El

OxOFFFF

archivos
Archivo
.txt.dat:

segmento

SOMBRA
0x10080
R
Yo inicializacin
Yo
0x1000F
DATA""] ;
Pila
RAM I I

de

ram

Copia de
la ROM
en
la
inicializ
acin
Pila

0x10000
Datos
RAM

0x10900

______ 0x1010
Yo
0

Base
Segmento
Programa
Variables

---------- ,0x10010
Datos i, j ;
RAM !
- ------- 1 Ox1002F

Temporal"
Variables

[ Datos [
RAM

0x10030
0x1007F

(c)

Segmento de sombra
OxIOOFF

Base
Segmento
Programa
Variables

Datos
RAM

Temporal
Variables

Datos
RAM

0x1100
0
0x1010
0
0x108FF
0x10900
OxIOFFF

(d)

Fig. 2.25 ejemplos de mapas de memoria en sistemas integrados-(a) Tarjeta inteligente, necesitando de 2 kB de
memoria
(b)

Tarjeta integrada con el software de Java para cifrar y descifrar las transacciones

(c)

Secciones mapa de memoria en una tarjeta inteligente (d) memoria secciones mapa en otra tarjeta

Un procesador
puede tener ubicaciones de memoria predefinida de inicializacin en el registro de arranque. Por
inteligente
ejemplo, en 80960, el registro de arranque consta de 12 palabras. El registro est almacenado en la ROM,
direcciones OxFFFFFFOO a 0xFFFFFF2C.

Ejemplo 2.14.
Considerar la asignacin de memoria para una tarjeta ejemplar en que hay secciones en la asignacin de
memoria
Mapa. Considere su descripcin en un programa localizador. Las secciones de un ejemplar, sistemas
integrados
Smart card memory map [figura 2..25(c)] puede definirse como sigue.
1. Secciones

112

Los sistemas integrados

{/* Ubicacin superior de pila para 128 B RAM*/


_TopOfStack = 0x10100.
/* */ Montn de inferior
_BottomOfHeap = 0x10080.
Rom : texto
{/* dbito instrucciones del programa de tarjetas de crdito
estn en el archivo de texto
Se nombran aqu*/
8. ---------------- * {
.txt)
2.
3.
4.
5.
6.
7.

9.
10.
11.
12.

Los datos RAM :


1
/* para el segmento de sombra de 16 bytes de datos inicializados
en RAM para una copia
A partir de la ROM de */
13.
_DataStart = 0x10000.
14.
/* con tarjeta de crdito dbito segmento de sombra los datos en
el archivo denominado
Aqu*/
15. ------------------ * (
-.data)
16.
_DataEnd = OxlOOOF;
17.
18.
19.
20.
21.
22.
23.
24.

25.
26.
27.
28.

/* El comando para copiar en la RAM */


> rom
Bss :
{

/* Segmento Base de 32 bytes de datos en variables de programa


RAM */
_bssStart = 0x10010.
/* Smart card segmento base de datos en la base de datos de
segmento
Archivo denominado aqu*/
* ( --- .BSS)
_bssEnd = 0xl002F;
}
}

Ejemplo 2,15
Considerar otro mapa de la memoria [Figura 2.25(d)] para otra tarjeta ejemplar. El localizador especifica
Mapa de diferentes secciones como sigue:
Secciones

1. {/* Ubicacin superior de pila de 4 kB de RAM*/ ' i"" IFS


2. _TopOfStack = 0x11000;
3. /* */ Montn de inferior

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


113
real

__

4. _BottomOfHeap = 0x10900.
5. Rom de texto ;
6. {/* Cifrado instrucciones del programa Java Card
estn en el archivo de texto llamado aqu*/
7 . a. ( -------------- . txt)

8. Los datos RAM :


9. {
10. /* para el segmento de sombra de 256 bytes de datos inicializados
en RAM para una copia de la ROM de */
11. _DataStart = 0x10000.
12. /* El segmento de sombra de la tarjeta los datos en el archivo
denominado aqu*/
A. ( --- .datos)
13. _DataEnd = OxlOOFF;
14. }
/* El comando para copiar en la RAM */
15. Una rom.
16. Bss :
17. {
18. /* Segmento Base para 2 kB de datos variables de programa en RAM
*/
19. _bssStart = 0x10100.
20. /* Java Card segmento base de datos en el archivo de datos de
segmento bsico

Mapa de memoria de mosaico que incluye direcciones de E/S de dispositivo de IHE est diseado tras las
correspondientes asignaciones de direcciones de los punteros, vectores, conjuntos de datos y estructuras de datos,
si la memoria principal iti de arquitectura de Harvard, el mapa de la memoria del programa sern independientes.
Por ejemplo, 8051 se lee de la memoria de programa por un conjunto distinto de instrucciones (instrucciones de
entrada-salida).

"2.8 SELECCIN DEL PROCESADOR


Un diseador de hardware debe tener en cuenta las caractersticas especficas de procesadores siguientes:
1. Un procesador, que puede funcionar a mayor velocidad de reloj, procesos ms instrucciones por segundo.
2. Ofrece un procesador de alto rendimiento de computacin (cuando existe un oleoducto)(s) y
arquitecturas superescalar, (b) pre-fetch unidad de cach, la memoria cach y los archivos de registro y
la MMU y (c) la arquitectura RISC.
3. Un procesador con registro de Windows proporciona un rpido cambio de contexto en un sistema
multitarea.
4. Un sistema integrado de consumo eficiente de energa requiere un procesador programable que tiene
funcin de apagado automtico para sus unidades y programabilidad para desactivar el uso de cachs
cuando el procesamiento necesario para una funcin

114Yo

Los sistemas integrados

Conjunto de instrucciones o no est limitado por el lmite de plazo de ejecucin. Procesador utiliza Parar,
dormir y esperar instrucciones especiales, y el diseo de la cach.
5. Un procesador que tiene un modo rfaga accesos rpidos, memorias externas lee y escribe rpido rpido.
6. Un procesador con una operacin atmica unidad proporciona solucin de hardware a datos compartidos
problemas a la hora de disear el software incorporado, ms habilidades especiales de programacin y los
esfuerzos deben ser realizados al programa utiliza variables compartidas y bferes de datos entre mltiples
tareas.
7. Cuando se codifican en lenguaje ensamblador o disear compilador o localizador, puede almacenar datos
en modo big-endian en un sistema y el orden inferior bytes store en mayor direccin: por ejemplo, en
procesadores Motorola. Tambin pueden almacenar datos en modo "little-endian" en un sistema. Orden
inferior bytes store en direcciones bajas y viceversa: por ejemplo, en los procesadores Intel. Un procesador
tambin se puede configurar en la etapa inicial del programa big-endian o little-endian almacenamiento de
palabras: por ejemplo, los procesadores ARM.
La familia de procesadores StrongArm de Intel y TigerSHARC desde dispositivos analgicos tienen
caractersticas de eficiencia de alta potencia.
Los procesos de seleccin del procesador puede ser entendida considerando cuatro casos representativos. En
primer lugar una tabla de diseo similar a la Tabla 2.7 est construido. A continuacin, un procesador con las
unidades estructurales necesarios y sea capaz de dar el rendimiento del procesador deseado en el sistema elegido.
1. Caso I: Los sistemas en los que el tiempo de ciclo de instruccin de procesador - 1 us y on-chip y
dispositivos de memoria puede ser suficiente. Ejemplos son la mquina expendedora automtica de
chocolate. Mdem de 56 kbps, robots, sistemas de adquisicin de datos, como un grabador de ECG o
climticas o registrador de temperatura y presin multipunto grabador y controlador robtico en tiempo
real.
2. Caso 2: Sistemas en los que el tiempo de ciclo de instruccin de procesador - 10 a 40 ns requerida, on-chip
y dispositivos de memoria no bastan y medio se requiere el desempeo del procesador. Algunos ejemplos
son 2 Mbps Ruteador, procesamiento de imgenes, la adquisicin voicedata, voz de compresin,
descompresin de video, sistema de control de crucero adaptativo con una cuerda la estabilidad y la puerta
de enlace de la red.
3. Caso 3: sistemas en que la instruccin los tiempos de ciclo de 5 a 10 ns requerido y alta MIPS o MFLOPS
rendimiento es necesario. Algunos ejemplos son multipuerto transceptor de red de 100 Mbps, 100 Mbps
Fast switches, routers multicanal cifrados y descifrados sistemas rpidos.
4. Caso 4: Sistemas en los que el tiempo de ciclo de instruccin, incluso me-ns no basta y sistema multiprocesador es obligatorio junto con el uso de las unidades de coma flotante y MAC. Algunos ejemplos son
el procesamiento de voz, procesamiento de vdeo, procesamiento de audio o vdeo en tiempo real y sistemas
de telefona mvil.
Diferentes sistemas requieren diferentes caractersticas del procesador. Un diseador de hardware tiene en
vista y selecciona un rendimiento ptimo del procesador que da.

2.8.1 Seleccin del microcontrolador


Existen numerosas versiones de 8051. Dispositivos adicionales y unidades se proporcionan en estas versiones. Una
versin y el microcontrolador est seleccionado para el diseo de sistemas integrados, como por la aplicacin, as
como su costo.
1. Sistema integrado en un automvil, por ejemplo, requiere un bus CAN (Seccin 3.10.2). A continuacin,
una versin con CAN bus controller est seleccionado.
2. 8051 8052 una mejora adicional tiene un temporizador.
3. Philips P83C528 tiene serial bus I2C (Seccin 3.10.1).
4. 8051 Miembro de la familia 83C152JA (y su hermana,JB y JC JD microcontroladores) tiene dos acceso
directo a memoria (DMA) canales on-chip. (Seccin 4.8) El 80196KC tiene un-PTS (Pervpher;: ^Servidor
de transacciones) que admite funciones de DMA. [nico y admite los modos de transferencia masiva, no el
modo de transferencia en rfagas.] Cuando un sistema requiere transferencia directa a memoria desde
sistemas externos, el controlador DMA, mejora el rendimiento del sistema mediante una unidad de
procesamiento independiente para las transferencias de datos desde y hacia los perifricos.

Mi

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

Tabla 2.7 esencial en las capacidades del procesador de cuatro ejemplares de conjunto de sistemas
Capacidad de
procesador requerido

Caso /:
Mquina expendedora
automtica de
Chocolate, datos
absolver sicin de
sistema. Control
robtico en tiempo real

Procesador requerido

Microcontrolador

Ciclo de instrucciones
de procesador (tpico)
El rendimiento del
procesador
Bus interno ancho en
bits
La arquitectura RISC o
CISC

Off-chip de RAM en
vista de las necesidades
de RAM excesivo
Registrar Windows onchip y archivos debido al
rpido cambio de
contexto necesita
Controlador de
interrupciones en la
micro interno

Caso 4:
Voz
Procesador,
Video
Procesamiento y
sistemas de
telefona mvil

- 0,5 a 1

0.01 -0.04

0,005 - 0,001

Microprocesador
basado en DSP +
Sistema
multiprocesador
0.001-0,0005

Basta baja

De medio a alto

Alta

Muy alto

32

32

64

RISC

RISC

RISC

32

32

32

Interno o externo

Interno

Interno

S'

No hay

Basta on-chip No.

No hay

Interno
Microcontrolador

Externa

Externa

Externa

8
Cualquier

Contador de programa y 16
punteros de pila
Externa
Pila en la memoria
externa o interna
"
Operaciones atmicas en
chip uni!
Canalizado y super

Caso 2:
Los datos de voz
Caso 3:
La adquisicin.
Multi-port
Compresin de datos de
Transceptor de red.
voz, Compresin de vdeo, Cambia rpido. Los
sistema de control de
routers. Fast multicanal
crucero adaptativo con una cifrados y descifrados
cuerda la estabilidad, la
puerta de enlace de red
Microprocesador
Sistema multiprocesador

(Podra)

116

1 procesador capatniity
1 requerido
L

Los sistemas integrados

Cuse 1:
Caso 2:
Mquina expendedora Los datos de voz
automtica de
La adquisicin.
Chocolate. Acqui datos Compresin de datos de
voz. La compresin de
vdeo. Sistema de Control
de crucero adaptativo con
una cuerda la estabilidad,
la puerta de enlace de red

Caso
Multi-port
Transceptor de red.
Cambia rpido. Los
routers Multi Channel
Fust cifrados y
descifrados

Caso 4:
Voz
Procesador,
Video
Los sistemas de
procesamiento y
penacho mvil

No hay

S, basta en chip

N de on-chip no es
suficiente

No, on-chip no es
suficiente

No, on-chip no
es suficiente

J interrupciones externas

1 a 16

1-2

128-256

16-32

J J instrucciones de
manipulacin de HIT

Usa

Muy usado

Muy usado

Muy usado

J
I ; procesador de punto
flotante

No hay

No hay

No hay

La mayora de los casos no Puede ser que s


es necesario

Yo
1 | cachs de datos e
instrucciones y la MMU

J On-chip de
memoria EPROM o
hash

| Secuencias de datos ;
requiriendo Harvard
arquitectura de memoria
principal
Canales de controlador
DMA
La familia de
procesadores ejemplar

No hay

No hay

8051.68HC1I o 12 o 16. 80x86.80860. 80960


80196.
P1ci6F84

S
invariablemente

S
Puede ser que s

ARM7, Sunspare

ARM9. TMS
familia DSPs.
PowerPC

'necesarias cuando varios puertos y operaciones multicanal necesidad de compartir datos.

1. Un sistema robtico motor necesita la sealizacin a la tasa por encima de 50 a 100 ms. Por lo tanto hay
tiempo suficiente
Disponible para la sealizacin y control en tiempo real de varios motores en el robot cuando usamos un
procesador
Con el tiempo del ciclo de instruccin -1 ps.
2. La velocidad del procesador no necesitan ser muy alto y el rendimiento que necesita est muy por debajo
de 1 MIPS. Por lo que no
Cach y unidades de procesamiento avanzado como canalizacin y procesamiento superescalar son
necesarios.
3. Un motor de pasos de cuatro bobinas slo necesita una entrada de 4 bits y un motor DC necesita un 1 poco modulada por ancho de pulso
Salida. Por lo tanto un procesador de 8 bits es suficiente.
4. Frecuentes accesos y manipulaciones de bits en puertos IO son necesarios. Por lo tanto la
arquitectura CISC es suficiente.
5. El programa se puede colocar en 4 kB o 8 kB de ROM interna on-chip. Tamaos de pila necesaria en el
Programa son tan pequeas que pueden ser apilados en un chip de 256 o 512 bytes de RAM. Un
As pues, se requiere un microcontrolador. Unidad de punto flotante no es necesaria.

!
j

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real 117

Microcontroladores lor apropiado el caso anterior son 8051, 68HCII, 68HC12, 68HCI6 o 80196. Los
microcontroladores 68HC12 y 68HC16 pueden utilizarse debido a la disponibilidad de un gran nmero de puertos.
El 68HC12's ciclo de instruccin y ciclo de reloj lime es igual a 0,125 pis. Nmero de puertos es igual a 12 en
68HCI2. Por lo tanto. 6 o ms grados de libertad el robot con 6 o ms motores pueden ser conducidos directamente
a travs de estos puertos. Detenga y espere instrucciones en el procesador para ahorrar energa cuando el robot est
en reposo!]

Ejemplo 2,17 Estudio de caso de Voir: Puntos del sistema de compresin

el

Jl.

1. Las seales de voz son cdigo de pulso modulado. La velocidad a la que se generan los bits es de 64 kbps.
Un algoritmo adecuado puede procesar los datos de la compresin de estos bits con un tiempo de ciclo de
instruccin de - 0,01 a 0,04 pis (100 a 25 MHz) cuando el procesador utiliza unidades de procesamiento
avanzado y cachs.
2. Supongamos que el tiempo de ciclo de instruccin del procesador es de 0,02 pis (50 MHz)." con tres
etapas y dos lneas de la arquitectura superescalar, el rendimiento ms alto ser de 300 MIPS. [Ver
Ejemplo 2.11 para una comprensin de los clculos de los MIPS]. Basta que no slo de voz, sino tambin
para la compresin de vdeo.
3. Accesos frecuentes y complejas instrucciones pueden no ser necesarios.
J
4. El programa no puede caber en 4 kB o 8 kB de ROM interna on-chip, y tamaos de pila necesaria en
Programa son grandes. En lugar gran memoria RAM y ROM, as como las cachs son necesarios. Si
5. No es necesario de punto flotante como principalmente las instrucciones de manipulacin de bits se
procesan durante mi compresin.

Procesadores
que son apropiados
para el caso anterior son :80x86
y la familia de procesadores ARM.
:xampie
2.1aejemplar
L..
.
"
1. Las tasas de transferencia de 100 MHz ms rpido son necesarios en los switches de una red. Suponiendo
10 instrucciones
Por conmutacin y accin del transceptor, el tiempo de ciclo de instruccin es -0,001 plus. Un sistema
multiprocesador
Se necesita para GHz velocidades de transferencia.
2. Supongamos que el tiempo de ciclo de instruccin del procesador es de 0.01 ps (100 MHz). Con 5
Etapas y dos lneas de la arquitectura superescalar, mayor rendimiento tendr 1.000 MIPS.
Ejemplo [2.11], sistema multiprocesador es, pues, necesario para 1000 MHz adems de los interruptores.
Pies
4. Memoria RAM y ROM, as como las cachs son necesarios.
Jj
5.
No estener
necesario
de punto
flotante como
mayormente
los debits
son
M en cada
3. Debe
el procesador
de arquitectura
RISC
de ciclo nico
procesamiento
de instrucciones
procesados para IOs.
Escenario y lnea.
Procesadores ejemplar que son apropiados para el caso anterior ARM7, ARM9 y Pentium.

Ejemplo 2.:i9 l i e o h

/;

1. Procesamiento de vdeo en tiempo real requiere una compresin rpida de una imagen que necesitan el uso de
DSP.
Muchas de las tareas en tiempo real tiene que ser procesado: por ejemplo, la escala y la rotacin de
Imgenes, correcciones de sombra, el color y el matiz, la nitidez de la imagen y las funciones de filtro.
En
Tales casos, un sistema multiprocesador con DSP(s) y que tiene las mejores opciones de procesamiento
Performance Suite..Tnanc'.lr\s requerida.
Procesadores ejemplar que son apropiados para el sistema multiprocesador son
DSP de la familia(s) o brazo 11 o TigerSHARC.

ARM9 integrado con TMS

118!

2.9

Los sistemas integrados

Seleccin de memoria

Una vez que el software de codificacin del diseador y el archivo de imagen de la ROM est listo, el diseador
de hardware se enfrenta a la pregunta de qu tipo de memoria y el tamao de cada uno de ellos debe ser
utilizado. Primero una tabla de diseo, como en la Tabla 2.8, se construye. La memoria tiene las caractersticas
necesarias y el espacio de direcciones es elegido. Los siguientes son los estudios de caso. El requisito de memoria
real slo se conoce despus de codificar como por las funciones de diseo y especificaciones. Memoria RAM y
ROM asignaciones para diversos segmentos, conjuntos de datos y estructuras sern disponibles en el diseo de
software. Sin embargo, una estimacin previa de los requisitos de tamao y tipo de memoria puede ser hecho.
[Recuerde, la memoria estn disponibles como: i kB, 4 kB, 16 kB, 32 kB, 64 kB, 128 kB. 256 kB, 512 kB y 1
MB. Por lo tanto, cuando 92 kB de memoria es necesaria, entonces un dispositivo de 128 kB est seleccionado.]

Ejemplo 2.20
(a) Estudio de caso de una lavadora automtica
Considere una lavadora automtica del sistema. Asumir que la mquina no est guardando las imgenes y
grficos, (a) del primer byte de la EEPROM es necesario para almacenar el estado (lavado, enjuague el
ciclo 1, 2 ciclo de enjuague y secado) que se ha completado. El segundo byte es necesaria para almacenar
el tiempo en minutos ya gastado en la etapa actual. El tercer byte es necesaria para almacenar el estado de
los botones de configuracin de usuario. Por lo tanto una EEPROM de 128 B, en el mejor de los casos
debera bastar con microcontrolador, (b) El software integrado puede ser dentro de 4 kB de ROM en el
microcontrolador, (c! La RAM se necesita slo duranteunos variables y pilas. Una RAM interna de 128 B
debera ser suficiente, (d) Por lo tanto, no es necesaria la memoria externa con el sistema cuando se utiliza
un microcontrolador.
(b) Estudio de caso de un robot
Considere un sistema rouotic, (al EEPROM bytes necesarios para almacenar el estado de reposo de cada
grado de libertad j. Por lo tanto

512 B EEPROM en el microcontrolador, en el mejor de los casos,


debera ser suficiente, (b) El software integrado Jj puede ser dentro de 32 kB de ROM en el
microcontrolador, (c) RAM necesita es slo tor las variables y slo Mt una pila es necesaria para que
la direccin de retorno de las llamadas a subrutinas. La RAM interna de 512 B debera Mi basta. Por lo
tanto, no es necesaria la memoria externa con el sistema cuando se utiliza un microcontrolador. '%

Ejemplo 2.2.1
(a) Estudio de caso de los sistemas de adquisicin de datos para el parmetro de diecisis canales de voz y
procesamiento de imgenes durante la adquisicin
Considere la posibilidad de un sistema de adquisicin de datos. Supongamos que hay 16 canales y en cada
canal 4 B del almacn de datos cada minuto, (a) bytes se almacenan en la memoria flash. Asumir que los
resultados se almacenan en la memoria flash para un da antes de que se imprima o se transfiere a un
ordenador. Por lo tanto 92 kB es los datos adquiridos por da. 128 kB de memoria flash, por lo tanto,
suficiente, (b) El software integrado puede estar dentro de 8 kB de ROM en el microcontrolador, (c) RAM
slo es necesaria para las variables y slo una pila es necesaria para la direccin de retorno de las llamadas
a subrutinas. Una RAM interna de 512 B ser suficiente, (d) clculos intermedios son necesarios para
almacenar AE>C resultados en el formato adecuado. Funciones de conversin de unidad debe ser calculado,
lo cual puede requerir una memoria RAM de 4 kB a 8 kB. (e) Por lo tanto, un microcontrolador con 8 kB
de memoria EPROM y 512 B RAM es necesaria, y un flash externo (o 5 V) EEPROM de 128 kB y RAM
externa de 4 a 64 kB son necesarios con el sistema. Para la adquisicin de la imagen o la voz de datos online, RAM / requisitos de bfer puede ser de 512 MB.

(b) Estudio de caso de los sistemas de adquisicin de datos para las formas de onda de ECG
Ella
Considere otro sistema de adquisicin de datos, que se utiliza para registrar las formas de onda de ECG.
Dejar que mi cada forma de onda puede grabarse en 256 puntos. Un flash de 64 kB ser necesaria para
256 registros de paciente. Mijl

R~
8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

j 119 Cuadro 2.8 La memoria necesaria en cuatro ejemplo de sistemas


La memoria
Caso 2: Datos
Caso 3:
Caso /'
Requerido
Adquisicin
Multi-port
Mquina expendedora Sistema
Transceptor de red,
automtica de
Switches, Routers,
chocolate o real del
rpido o multicanal o
sistema de control
rpido sistema de
robtico de cal
cifrado y descifrado
Procesador utilizado MicroMicro
Multiprocesador.
Controller
Sistema

Caso 4 :
Voz
Procesador o el
procesamiento de
vdeo o telfono
mvil o Pocket PC
System

Caso 5:
Digital
Cmara o
Voz
Grabador
Sistema

4 lo 32 kB

8 kB

Micro
+ microprocesador
basado en DSP
sistema
multiprocesador
"
-

EEPROM interna

256 lo 512 B

256 a 512 B

RAM interna.

256 a 512 B

256 a 512 B

No hay

No hay

64 kB

64 MB

64 kB

De 64 a 128 kB

512 B

32 kB a 256 kB 2
bajo 8 GB memory
Flash de 16
stick
MB a 8 GB
memory stick

64 kB 512 MB

8 MB

ROM o EPROM
interna

ROM o EPROM
EEPROM o erupcin No hay
el dispositivo1

Dispositivo RAM

No hay

1MB !
1

64 kB 512 MB
RAM distribuidos
parametrizado.
RAM bloque
parametrizado.

No hay

No hay

No hay

No hay

S tor 10 bferes. 4 kB
por canal
S para MAC
unidad. 10 Unidad
de marcacin

Nota: 'Flash con un bloque de arranque puede ser utilizado para almacenar el pari protegidas de el programa de arranque en su sectotfs OTP).

Ejemplo 2.22 Estudio de caso de una aproximacin multicanal has cifrado descifrado cum
sistemas transceptor
1. Considere un sistema con mltiples canales. Hay entradas de cifrado en cada canal. Estos se descifran
para retranstsussitjR a otros sistemas.
2. EEPROM tor es necesario configurar puertos y almacenamiento de sus estados. Asumir 16 canales. 512
kB ser suficiente para un 16 B necesidad por canal.
3. Los algoritmos de cifrado y descifrado pueden ser en 64 kB de ROM.

J 120 |

Los sistemas integrados

4. Los bferes de datos multicanal son requeridos antes de las cachs de los algoritmos de proceso. Por lo
tanto. Yo MR a
512.MB de RAM puede ser requerida.
5. 10 almacenamiento de 4 kB por canal es necesario. Si la RAM es distribuido parametrizado.
Empleados en cada canal, el rendimiento del sistema ser mayor.
6. El sistema necesitar los siguientes: 64 kB de memoria ROM, EEPROM de 512 B, 1 MB
RAM y 4 kB de RAM parametrizado distribuidos por canal.

Ejemplo 223 Estudio de caso de un sistema Phene mvil


1. Como voz de compresin-descompresin y cifrado, descifrado y algoritmos de procesamiento DSP
Los algoritmos son necesarios, la imagen de la ROM ser grande. Asuma que puede ser tomado como
64 MB. Ahora si
La imagen de la ROM se almacenan en un formato comprimido, un programa de arranque se ejecuta
primero una descompresin
Programa. El programa y los datos descomprimidos primera carga en la RAM y el programa de aplicacin
Se ejecuta desde all. La RAM es obviamente de mayor tamao en estos sistemas. ROM puede ser
Reduccin segn el factor de compresin.
2. Una gran cantidad de RAM tambin es necesaria. Puede ser tomado como 8 MB para almacenar los datos
y el programa descomprimido
Y para los bferes de datos.
3. La memoria del telfono para introducir nmeros de telfono importantes pueden estar en 16 kB
EEPROM o Flash.
Un flash de 64 kB puede ser tomada para la grabacin de mensajes. Imgenes de MMS. Un memory
stick utilizando
Puerto SD10 de 2 GB o 8 GB es requerido para la grabacin de canciones y vdeos.
4. Parametrizar el bloque de memoria RAM en MAC y otras subunidades de la subunidad mejorar
Ttarnole
el sistema
un incoloros de baja resolucin Sistema de cmara digital. Se van a grabar las imgenes GIF
1. Asumir
El rendimiento.
5. (graphic
El sistema requerir, por tanto, la memoria de I MB ROM, 16 kB, 16 kB EEPROM flash. Yo
Formato
de imagen), formato comprimido (a) se supone que una imagen tiene un cuarto de CIF (Common
MB
Intermediate
RAM y RAM de bloque en las subunidades.
Formato) de 144 x 176 pxeles. Entonces, 25,344 pixeles sern guardados por imagen. Asumir que la
compresin
Reduce la imagen en un factor de 8 a 3 kB por imagen ser necesario. Requiere Flash ser de 0,2 m para
2. 64 imgenes de la cmara. Por lo tanto, una imagen de 256 kB de memoria flash ser necesario, (b) un 64
B digital imgenes incoloros
Sistema de cmara ser pues estima que necesitar memoria de 64 kB, 256 kB de ROM flash y yo MB de
RAM.
Alta resolucin de 6 megapxeles de cmara digital necesita 16 MB 256 MB de memoria flash y 2 para
memory stick de 8 GB.
4. Asumir un sistema de grabacin de voz. Se necesitan 64 kbps, suponiendo un 8 bits Modulacin de cdigo
de pulso
5. Las seales de voz. [Frecuencia promedio es tomado como 8 kHz.] asumir factor de compresin de datos
de voz
8 Es necesario el flash I kB por segundo. Un MB de flash 4 es necesario para cada hora de grabacin.
Desde algoritmos de compresin-descompresin de voz tienen que ser procesados, la imagen de la ROM
ser
Grande. Puede ser tomado como yo MB. Utilizando tcnicas de compresin, de 64 kB de ROM puede
almacenar la ROM

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


1 2real
1 j

sistemas simples como mquinas expendedoras automticas de chocolate o robots no necesita memoria
externa. El diseador selecciona un microcontrolador que tiene un chip de memoria requerida por el
sistema. El sistema de adquisicin de datos EEPROM orflash necesita. Un telfono mvil o Pocket PC o
cmara digital sistema necesita 1 MB ms de memoria RAM y el dispositivo de 64 kB a 256 kB de memoria
flash interna, adems de dispositivos memory stick. Imagen o sistemas de grabacin de voz o de vdeo
requieren una gran memoria flash en forma de memory stick de 2 GB a 8 GB.

Resumen
Microcontrolador 8051 tiene arquitectura de Harvard para la memoria, tiene registros de funcin especial,
interno RAM y ROM o flash. Tiene dos temporizadores, y si interfaz para la half duplex y full duplex
UART sincrnico de comunicacin.

Interfaz de seales del bus del procesador, la memoria y los dispositivos. El circuito de interfaz que tenga
en cuenta el diagrama de distribucin con referencia a la salida del reloj del procesador. El circuito utiliza
el procesador de control, direccin y seales del bus de datos y toma en cuenta el diagrama de distribucin
de las seales de bus. Una PAL-. GAL- o circuito basado en FPGA, llamado circuito de pegamento,
proporciona una nica solucin de chip o ncleo de los pestillos, decodificadores, multiplexores
demultiplexers y otros circuitos de interconexin necesaria.

Los autobuses interfaz para el motor de pasos. El controlador de LCD, A/D. D/A circuitos mediante puertos
y circuito de interfaz apropiado.

Un diseador de hardware incorporados del sistema debe seleccionar un procesador adecuado, el conjunto
apropiado de recuerdos para el sistema y el diseo de un circuito de interfaz apropiado entre el procesador,
las memorias y los dispositivos de baja. Esto se hace despus de tener en cuenta los distintos procesadores
disponibles, unidades estructurales y la arquitectura de memoria, tipos, tamaos y velocidades, seales de
bus y diagramas de distribucin.

Las unidades estructurales de un procesador que se interconectan a travs de un bus de datos y direcciones
de memoria se registra, el sistema y la unidad aritmtica, unidad de control de registros, decodificador de
instrucciones, registro de instrucciones aritmticas y lgicas y unidad. Registros de procesador tambin
llamado registro(s) ventana(s) o archivo(s) son importantes y estn pensados para diferentes funciones
tales como cambio de contexto para procesar otra tarea o ISR.
- avanzados procesadores tienen unidades estructurales adicionales siguientes-prefetch de instrucciones, la
unidad de control, unidad de cola de cach para instrucciones y datos de punto flotante de sucursal,
transferencia de registros y la unidad aritmtica de punto flotante. Canalizacin y superescalar cachs y
caractersticas en los procesadores se utilizan en sistemas de alto rendimiento. MIPS o MFLOPS o
Dlnystone por segundo definir el rendimiento informtico. El objetivo es proporcionar un ptimo
rendimiento informtico con el mnimo costo y disipacin de energa.

Brazo, SHARC. Los procesadores TigerSHARC y DSPs son utilizados en los clculos de alto rendimiento.
Un sistema necesita memoria RAM y ROM de diversos tipos y espacios de direcciones. Diversas formas
de ROM ROM enmascarada, PROM, EPROM. EEPROM flash-back, boot flash y memory stick o
tarjeta. Los detalles bsicos de los recuerdos son las direcciones disponibles, la velocidad de las
operaciones de lectura y escritura, y modos de acceso a la memoria.

Los procesadores y la memoria, la seleccin puede realizarse utilizando tablas de diseo adecuados.
3 de

cada 10 dispositivos tiene un conjunto distinto de direcciones. Cada 10 dispositivo tambin tiene un
conjunto distinto de dispositivo se registra - datos de registros, registros de control y registros del estado.
En una direccin de dispositivo, puede haber ms de un registro. Las direcciones de dispositivos dependen
del hardware del sistema. Basado en el mapa de la memoria con 10 direcciones de dispositivo, un
localizador programa est diseado para localizar el archivo de cdigo objeto vinculado y generar una
imagen de la ROM.

Los sistemas integrados

122

Palabras clave y sus definiciones


Modo de direccionamiento
absoluto
Accelerator

Acumulador

La abeja africanizada
ALU
AMBA

Unidad aritmtica registra


El brazo

ARM7 y ARM9

Asynchronous Serial
Comunicacin
ndice automtico
Direccionamiento de base
Velocidad en baudios
Arrancar de nuevo flash
Cach de transferencia
sucursales
En Buming
Unidad de interfaz de bus
CISC

Definir todos los bits de direccin en una instruccin.


ASIC, IP core o FPGA, lo cual acelera la ejecucin del cdigo y que tambin
puede incluir la unidad de interfaz de bus, DMA, leer y escribir en unidades
y registros, con sus ncleos.
Un registro que proporciona una entrada a un ALU y que acumula un
resultado operando de la ALU.
Una versin de alto rendimiento de la AMBA usada en procesadores ARM.
Una unidad para realizar operaciones aritmticas y lgicas segn las
instrucciones.
Establecer una especificacin de fuente abierta para las interconexiones en el
chip, que sirve como marco para el SoC diseos y desarrollo de la biblioteca
de
LosIPregistros que contienen la entrada y salida de los operandos y Hags con
la ALU.
Una familia de alto rendimiento reduce la densidad del cdigo AKM7.
ARM9, ARM 10 y 11 procesadores ARM, que son utilizados en los sistemas
integrados en un chip, o como un ncleo en un ASIC.
Dos familias de procesadores RISC para una SoC de ARM y Texas
Instruments, que tambin est disponible en versiones de CPU de un solo chip
y en versiones de archivo para incrustar en un chip VLSI. ARM 7 tiene
Princeton arquitectura para la memoria principal y ARM9 tiene la arquitectura
de Harvard.
Los bytes de datos o frames no mantener diferencias de fase uniforme en serie
La comunicacin.
Cuando despus de ejecutar una instruccin, el registro de ndice contenidos
cambian automticamente.
Abordar una direccin desde donde un primer elemento de datos suucture
comienza.
Tasa de bits en serie son recibidas en la lnea Durante una comunicacin
UART.
Un flash con unos pocos sectores similar a un dispositivo OTP, para permitir
el almacenamiento de datos y el programa de inicio.
Cach para celebrar por adelantado el siguiente conjunto de instrucciones para
ser ejecutadas en el programa a este conjunto de ramificacin.
Un proceso en el que los bits se modific todo delantero est en borrar
formulario para el SO y est en un dispositivo como por entrada y Os.
Una unidad para interconectar los buses internos con los buses externos de
control, direccin y bits de datos.

Un complicado conjunto de instrucciones que el ordenador tiene una


caracterstica que proporciona un gran conjunto de instrucciones para permitir
varios modos de direccionamiento para el origen y el destino de los operandos
de una instruccin. El hardware ejecuta las instrucciones de un diferente
nmero de ciclos, segn el modo de direccionamiento utilizado en una
La compatibilidad del cdigo Usabilidad
instruccin.de los cdigos por varias generaciones de una familia.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real ! 123

Code Composer Studio

Un IDE de cdigo especfico de TI DSP componiendo que proporciona un


entorno similar a la de MS Visual C++. Se compone de los siguientes elementos:
multilevel (C as como conjunto DSP), compilador, depurador general optimizer,
RISC-como general cdigos y RISC-como la programacin para un ptimo
rendimiento y eficiencia probe pinturas, 10 funciones de archivo, visualizacin
completa de los datos y el lenguaje de secuencias de comandos basado en GEL
C.
Una unidad para la codificacin digital despus de ADC y otras operaciones para

CODEC

recibir y descodificar seales analgicas mediante CAD y otras operaciones. Se


utiliza en el procesamiento de audio o dispositivo CCD de pxeles y seales de
vdeo.controlar la secuencia y todas las acciones de procesamiento durante la
Para
ejecucin de la instruccin.
Acceso directo arreglo; por ejemplo, un tpico DAA en serie y un puerto de salida
de la transferencia directa de la entrada y salida analgica utilizando hasta 1
master y slave 7 CODECs.

Unidad de control
DAA

Cach de datos
DCT

Cach para retener los datos en formato de memoria de contenido direccionable.

Direccin del dispositivo


Programador de
Dispositivos de
programacin de
Registro de dispositivo
dispositivo
Dispositivo
Dhrystone

Direccin directa de
filtrado digital
DMA

DRAM

Cancelacin de eco
Echo

Funcin de coseno discreto Tranformation usadas en un gran nmero de


funciones DSP, por ejemplo, el MPEG2/compresin MPEG4.
Una direccin de dispositivo utilizado por el procesador para acceder a su
conjunto de registros. En cada direccin puede haber uno o ms registros del
dispositivo.
Un sistema o unidad para un dispositivo de programacin mediante la quema en
la imagen de la ROM.
Programacin de bits por buming-en una memoria del microcontrolador o en un
pla, PAL. CPLD o cualquier otro dispositivo.
Un registro en un dispositivo de byte, palabra de datos, banderas o bits de control.
Varios registros de dispositivo puede tener una direccin comn.
Una unidad virtual o fsico que tiene tres conjuntos de registros: registros de
datos, registros de control y estado de los registros y que el procesador lo dirige
como una memoria.
Un programa de benchmarking que mide el rendimiento de un procesador para
el procesamiento de enteros y cadenas (caracteres). Se utiliza un programa de
referencia disponible en C, Pascal o Java. Puntos de referencia que una CPU, no
el rendimiento del 10 u os llama. 1 = 1757 Dhrystone MIPS/s.
Un filtro para las seales que utilizan las funciones DSP.
Una direccin directamente utilizable en una instruccin. Normalmente es la
direccin de una pgina en la memoria.

: Un acceso directo a la memoria por un controlador interno o externo. Operaciones


DMA facilitar los perifricos y dispositivos del sistema para obtener acceso al
sistema recuerdos directamente, sin el procesador controla la transferencia de
bytes en un bloque meinoiy.
RAM dinmica, que se actualiza continuamente por un dispositivo llamado
DRAM Actualizar controlador. Una vez programada, auto lee y escribe en el
mismo conjunto de bits repetidamente mediante la exploracin de las celdas de
DRAM.
: un memoria
proceso de
eliminacin de los ecos.
Una seal recibida tras un retraso y que se superpone a lo largo de la seal
original. Por ejemplo, en un pasillo o en las colinas omos el sonido original, as
como el eco del sonido. Igualmente, puede haber echo en seal electrnica.

Los sistemas integrados

124

Ffl.4

: Un poderoso lool tor Automatizacin de diseo electrnico. EDN

ECMBC
EEPROM

Consorcio Bcnclimaik incrustados.


Un tipo de memoria cada uno de los cuales es borrable byle muchos limeos
y luego programable mediante las instrucciones de un programa as como por
un dispositivo programador.
Un tipo de memoria que es borrable y muchos limeos por exposicin a la luz
UV y programable mediante un dispositivo programador.
: el tiempo de borrado del dispositivo.

EPROM
Tiempo borrado
Aritmtica de punto fijo
Flash
Flash

Aritmtica de punto flotante


Soporte de lenguaje de alto
nivel
Registro de ndice

Aritmtica de enteros con signo o sin emplear los registros del procesador o
de la memoria.
Una memoria en la que un conjunto de sectores borrar simultneamente.
Un tipo de memoria en un sector de bytes que es borrable y muchos limeos
(mximo. -10000) en (juego en la misma instancia en un nico ciclo. Cada
borrado byle es programable mediante la escritura de un programa de
instruccin, as como por un dispositivo programador.
Aritmtica usando los registros del procesador o la memoria, donde los
nmeros decimales y las fracciones se almacenan en un estndar de
representacin de punto flotante.
Una unidad de apoyo para la estructura del procesador dado que facilita la
codificacin de los programas en C u otros lenguajes de alto nivel y permite
su funcionamiento como mquina cede por una compilacin interna.
Un registro mantiene una direccin de memoria de una variable en una matriz,
cola, tabla o lista.

Cach de instrucciones

Una cach para lioid secuencialmente las instrucciones que han sido
precapturados ejecucin paralela de la base de la construccin del oleoducto.
Decodificador de instrucciones El circuito para decodificar liic opcode de la instruccin directa y la unidad
de control correspondiente.
Formato de instrucciones de la Formato de expresar una instruccin.
unidad de cola de

Una unidad para sujetar una cola de instrucciones y los colocan en la

instrucciones del conjunto de

cach. Un registro para sostener la instruccin actual para su ejecucin.

instrucciones registro de
Conjunto de instrucciones
instrucciones

Un conjunto definido de instrucciones ejecutables en un procesador.


Un nico procesador de conjunto de instrucciones especficas.

circuito compuesto por los pestillos, decodificadores, multiplexores y


Circuito de interfaz ha internos Un
demultiplexers.

Acelerador de Java JVM

Unidad de MAC
Master

Un conjunto de senderos que llevan en paralelo las seales entre diversas


unidades
estructurales
internos
de un procesador.
SuJava
tamao
de 64que
bitsuna
en
Ar. acelerador
que ayuda
en la ejecucin
de cdigos
mses
rpido
un procesador de 64-bil.
JVM.
Cdigos de mquina que utilice los cdigos de bytes compilado de un
programa Java y ejecutar el programa en un sistema dado.
Una unidad utilizada en operaciones de DSF para un rpido clculo de Z"[ax
+ b;.yj) o expresiones similares.
Un procesador, dispositivo o sistema que de forma sincrnica o asincrnica
controla la salida para varios procesadores, dispositivos y sistemas
denominados esclavos.

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real

La cun masier elegir en semi U> salida dirigi un esclavo si un esclavo


tiene una direccin distinta. El maestro puede optar por recibir una entrada
desde cualquier esclavo seleccionado por l en un instante.
McBSP
Registro de direccin de
memoria

Una alta velocidad de comunicacin del puerto serie en bfer multicanal.


: Un registro que contiene la direccin de una unidad de memoria para
colocarlo en el bus
Utilizando la unidad de interfaz de bus.

Registro de datos de la

Un registro que contiene los datos a o desde una unidad de memoria.


: Una unidad para gestionar el prefetch, paginacin y segmentacin de los
recuerdos.
: Una tabla de asignacin de direcciones de memoria de tal forma que el
mapa refleja la disponible
Direcciones de memoria para diferentes usos del procesador. Un mapa de
la memoria define las direcciones de la rom y carneros de sistemas
neumticos.

memoria de la unidad de
administracin de memoria
de mapa de memoria

La microarquitectura

Moise eliminacin
OMA 5910 Procesador P
En chip de puerto paralelo
Puerto serie en chip
Opcode
Pruebas de rendimiento de
canalizacin

El prefetch de contador de
programa de la unidad de
control de flujo de

Cuando una arquitectura de procesador se refiere especficamente a la


arquitectura de conjuntos de instrucciones y modelos para los
programadores, el trmino microarquitectura se refiere especficamente a
la aplicacin de esas arquitecturas. Un procesador puede tener la
arquitectura CISC RISC con una implementacin de la microarquitectura.
Un proceso que elimina los componentes de seal independientes
introdujo al azar.
Una t! Procesador nico de architectutre en chips DSP de alto rendimiento
con bajo consumo de energa.
El puerto en un chip que recibe o enva 8 o 16 bits a una instancia.
El puerto en un chip que recibe o enva una serie de bits al una instancia
con una clara rale en kbps |tasa de baudios en UART|.
Primer byte de una instruccin para el decodificador de instrucciones del
procesador. Se define la operacin o proceso actu en el operandfsi.
Mtricas para evaluar el desempeo de un sistema.
Hay tambin la canalizacin en el procesador superescalar. Esto significa
que su circuito ALU se divide en n subunidades. Si en su ltima parte, el
procesamiento de un p-tlt instruccin est teniendo lugar en un instante y,
a continuacin, en la primera bandeja de procesamiento (p + n) th
instruccin est teniendo lugar. Puede haber varios oleoductos en un
procesador para procesar en paralelo.
: Una unidad a letch instrucciones por adelantado y datos de antemano de la
memoria
Las unidades.

programa PROM de

Un registro del procesador para mantener la direccin de la instruccin


actual para ser ejecutado alterar un ciclo de fetch en los autobuses.

instrucciones o Pulso de

Una instruccin en la que el puntero de instrucciones o contador de


programa cambia de un modo diferente de sus cambios normales durante
la ejecucin del programa.

OTP contador acumulador


de tiempo de procesamiento
de vdeo de color verde
azulado

Un tipo de memoria que se puede programar una sola vez por un


dispositivo programador. La OTP es una memoria programable una sola
vez.
Un contador que cuenta los pulsos de entrada durante un intervalo slelect.
Cuando se utiliza como ahora son ms finos con un valor cargables
repeatledly, funciona como un modulador de ancho de pulso.
Procesamiento de seales de vdeo de tal forma que todos o la mayora de
"frames entrantes se procesan en un plazo que procesa cada fotograma se

126 I

Los sistemas integrados

Funcionalidad con CISC RISC Un procesador RISC con la aplicacin, pero los programas de usuario es
similar a un CISC.
RISC
Un Reduced Instruction Set Computer, que tiene una caracterstica que
proporciona un pequeo conjunto de instrucciones y permisos limitados
modos de direccionamiento para el origen y el destino de los operandos de
una instruccin aritmtica o lgica. El hardware se ejecuta cada instruccin
en un solo ciclo.
Registro de segmento
Un registro para indicar el inicio de un segmento de cdigo de un programa
o conjunto de datos o cadena o floja.
Esclavo
Un procesador o dispositivo o sistema, que recibe la seal de entrada del
procesador maestro o dispositivo o sistema. Este esclavo es el que uno tenga
una direccin distinta y es elegido por el maestro.
Registro de funcin especial Un registro en el 8051 para funciones especiales de acumulador, puntero de
datos, el control del temporizador, el modo de temporizador, buffer serial,
serial control, control de apagado, puertos, etc.
Puntero de pila
Un registro que mantenga una direccin para definir la direccin de memoria
de donde el procesador puede empujar los registros y variables sobre una pila
de operacin y desde donde pueden ser atrapado.
Pila
Un bloque de memoria que contiene los valores empujado por ltimo en la
primera salida en la transferencia de datos en reventar los valores.
Procesador superescalar
Un procesador con capacidad de recuperacin, decodificacin y ejecutar ms
Comunicacin sncrona
Registro del sistema
Pulgar3 instruction set

Diagrama de distribucin
Video Accelerator
Watchdog Timer

de una instruccin en paralelo en un insLant.


Los bytes de datos o marcos mantener diferencias de fase uniforme en las
comunicaciones serie.
Registro del procesador.
Un conjunto de instrucciones en el que cada instruccin de 16 bits en un
procesador de 32 bits. Da reduce la densidad del cdigo. Es un conjunto de
instrucciones de 16 bits que permite un rendimiento de 32 bits en 8/16 bits
costo del sistema. Son utilizados por procesadores ARM.
Un diagrama que refleja la relativa los intervalos de tiempo de las seales de
los buses externos con respecto a los impulsos de reloj del procesador.
Un acelerador para la salida de vdeo.
Un temporizador que se establece de antemano y los cdigos de programas
estn hechas de tal forma que su desbordamiento indica que un proceso est
atrapado en algn lugar y, por lo tanto, el procesador se restablece y se
reinicia.

Preguntas de repaso 1
1. 8051 Exlpain caractersticas arquitectnicas. Cules son los dispositivos desplazados presentes en el
clsico de 8051. Cmo puede una interfaz interfaz perifrico programable en 8051?
2. Describir la interfaz serial, temporizadores/contadores y se interrumpe en 8051.
3. Describir la palabra real de la interfaz. Explicar la interconexin con el teclado.
4. Comparar memory-mapped 10 y 10-mapped IOs.
5. Cules son las unidades de la estructura comn en la mayora de los procesadores?
6. Comparar Harvard y Princeton organizaciones de memoria.
7. Cules son las unidades estructurales especiales en procesadores para sistemas de cmaras digitales,
vdeo en tiempo real en los sistemas de procesamiento, sistemas de compresin de voz, sistemas de
compresin de voz y juegos de vdeo?

8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo


127real

8. Cmo tener cachs independientes para instruclion, datos y ayuda de transferencia rama'.
Y. Lo i.s multidireccional de la ventaja de contar con unidades de cach para que slo esa parte ol la unidad de cach est
activada, la cual tiene los datos necesarios para ejecutar un subconjunto de instrucciones'' lista lour ejemplar
procesadores con cachs multidireccional.
10. Cundo se necesita unidades de MAC en un procesador en el sistema''.
11. Explicar tres etapas, y la rama de procesamiento superescalar y dala de dependencia de las penas.
12. Cules son las ventajas de la arquitectura de Harvard? Porqu i.s la facilidad de acceso a la pila y tabla de datos en la
memoria del programa menos en Harvard, la arquitectura de la memoria en comparacin con la arquitectura de memoria
de Princeton ."
I 3. Explicar tres mtricas de rendimiento de un procesador: MIPS y MFLOPS Dhrvstone por segundo.
14. Por qu debera ser un programa dividido en funciones (rutinas o mdulos) y cada uno coloca bloques de memoria
indiferente o segmentos?
15. Cmo el brazo7. Brazo 9, ARM 11 y StrongArin difieren? Cuando se prefiere el brazo7. Cuando el brazo 9 y cuando el
brazo II?
16. Cmo funciona un mapa de memoria ayudar en el diseo de un programa de localizacin?
17. Qu entiende usted por los trminos: Cuarto de CIF, EDO RAM. RDRAM, servidor de transacciones de perifricos,
segmento de sombra, on-chip DMAC y cal-division multiplexing.
18. Cmo ayuda un descodificador en memoria y 10 la interconexin de dispositivos? Dibujar tour circuitos ejemplar.

-m: Ejercicios de prctica


Ll||g)

19. Dibujar la organizacin de la memoria en 8031.


20. Cmo vas a interface, un 8031 a cuatro servomotores en un robot usando limer/countcrs y puertos de 8051?
21. Un dos por tres matrix multiplica por otra matriz de tres por dos. Si la transferencia de datos de un registro a otro tarda d e
2 ns, adems lagos 20 ns y multiplicacin lagos 50 ns. cul ser el tiempo de ejecucin? Cmo ayuda la unidad

de MAC. Por defecto que estos tiempos arco mismo en una unidad DSP con un MAC?
22. Una matriz tiene 10 nmeros enteros, cada uno de 32 bits. Deje que un entero igual a su ndice en la matriz multiplicada
por 1024. Lei la direccin base de memoria se 0x4800. Cmo se almacenan los bits para el O'1'. 4ih y 9"' elemento en
(a) el modo big-endian (b) el modo "little-endian"?
23. Podemos suponer que la memoria de un sistema integrado es un dispositivo. Enumerar las razones para ello. [sugerencia:
uso de punteros como registros de control de acceso y el concepto de archivo virtual y dispositivos de disco RAM.|
24. En la actualidad sistemas embebidos de alto rendimiento utilizan un procesador RISC o un procesador con un Ncleo
RISC con un cdigo optimizado de conjunto de instrucciones CISC. Por qu?
25. Una cola circular tiene 100 caracteres en las direcciones de memoria, cada uno de 32 bits. Cul ser el espacio total de
memoria necesaria, incluyendo el espacio para los punteros de la cola?
26. Calcular los requisitos de memoria de una cmara digital de 500-imagen cuando la resolucin es (a) 1024 x 768 pxeles,
(b) 640 x 480 (c) de 320 x 240 y (d) de 160 x 120 pxeles y cada imagen almacena comprimidos en formato jpg.
27. Cules son las unidades estructurales especiales en procesadores para cmaras digitales, procesamiento de vdeo en
tiempo real, la compresin de voz y sistemas de juegos de video?

Dispositivos y buses de
comunicacin para los
dispositivos Network

N.

Los siguientes hechos han sido presentados en el


Los captulos anteriores:
Los sistemas integrados de hardware consisten de
proCessors, microcontroladores o DSP y basic
Las unidades de hardware tales como fuente de
alimentacin, el reloj
Circuitos, Circuitos reset, dispositivos de memoria
(ROM,
Flash y RAM) de diferentes tamaos y velocidad de
Acceso y 10 puertos y dispositivos perifricos para
El UART, mdem, transceptor, timer-CONTADOR,
Teclado, pantalla tctil o LCD o LED,
ADC y DAC, comunicador de pulso
Sistema
integrado
con
la
interfaz
de
microprocesadores
10 dispositivos del mundo real, como el DMA y bus
Controladores, perifricos, 10 puertos y teclado
numrico.
Los controladores, perifricos y puertos agregarResses mediante los cuales el procesador accede a
bytes y
Palabras. Un sistema integrado se conecta a
dispositivos
Como el teclado, pantalla tctil, pantalla multilnea
Unidad, impresora o mdem o motores a travs de
los puertos.
Durante una operacin de lectura o escritura, el
procesador

A.

Yo

C
*r
0
V

IK' cani pensar en un ordenador sin dispositivos IO Jor la salida de vdeo, ratn y
teclado. CD y dispositivo de almacenamiento magntico. No podemos pensar en un
telfono inteligente mvil sin los dispositivos para LCD o la pantalla tctil. Las
interfaces de 10 puertos, teclado, temporizadores, el comunicador, el altavoz de la radio
y de la interfaz de almacenamiento de memoria flash. Anlogamente, la mentira no
puede pensar en un sistema integrado sin 10 dispositivos, temporizadores y otros
dispositivos. De hecho, los dispositivos reproduzcan el paseo ms importante en
cualquier sistema integrado. Un dispositivo se conecta y accede a y desde el sistema- el
procesador y la memoria interna o a travs de un controlador interno o a travs de un
puerto, con cada puerto tiene un puerto asignado direcciones similares a una de las
direcciones de memoria.
Dispositivos distribuidos estn conectados en red mediante sofisticadas 10
autobuses. Por ejemplo, tomemos el caso de un automvil: todos los dispositivos
integrados en el automvil tiene un microcontrolador, y a travs de la red de bus 10. Los
dispositivos en un automvil estn distribuidos en diferentes ubicaciones. Estos estn
interconectadas mediante un bus denominado Red de rea de control (CAN). Asimismo,
una de las interfaces de la cmara a un ordenador y una impresora a travs de un bus
USB o dispositivo Bluetooth.
Dispositivos de red avanzadas, como transceptores y cifrar y descifrar los
dispositivos funcionan a altas velocidades.
Un ingeniero de hardware disear un sistema integrado, por lo tanto, deben
comprender claramente las caractersticas de los circuitos de interfaz y la velocidad de
las operaciones y de los autobuses que los dispositivos de red.
Aprenderemos los siguientes temas de este captulo:
1. En paralelo y en serie, entrada, salida y 10 puertos
2. Dispositivos de comunicacin serial sincrnica y ejemplos de Control de enlace
de datos de alto nivel
J. Los dispositivos de comunicacin serie asncrona y sus ejemplos. RS2J2C y UART
4. Puertos paralelos y dispositivos de comunicacin en paralelo
5. Los dispositivos inalmbricos
6. Sofisticadas funciones de interconexin en los sistemas para fast IOs. Rpido y
transceptores, voz y vdeo en tiempo real OT
7. Sincronizacin y dispositivos de cmputo y el concepto de reloj de tiempo real,
software y temporizadores temporizadores tipo watchdog
8. Entre circuitos integrados (L2C) bus de comunicacin entre mltiples ICs y el
bus CAN como la red de control entre los dispositivos distribuidos en los
automviles
9. Bits serie universal (USB) para la transmisin y recepcin serie rpida entre el
host y el sistema incorporado de serie distribuida de dispositivos como el
teclado, la impresora, el escner ami sistema ISDN
10. Estndar de IBM y ArchitectureflSety PClf Peripheral Component Interconnect
(PCI/PCI-X (Extended) autobuses entre un equipo host o sistema basado en PC
y dispositivos, sistemas o tarjetas, por ejemplo, bus PCI entre el PC y la tarjeta
de interfaz de red (NIC).

I 130 i

Los sistemas integrados

//. Los dispositivos integrados habilitados para Internet y sus protocolos de red
12. Protocolos inalmbricos para mviles y redes inalmbricas

3.1

10 tipos y ejemplos

Un puerto serie es un puerto de comunicaciones serie. Los medios de comunicacin serie que a lo largo de una
lnea determinada o un bit de canal pueden comunicarse y transmitir los hits a intervalos peridicos generados por
un reloj. Un puerto serie es la comunicacin a travs de distancias cortas o largas.
Un puerto paralelo es un puerto de comunicacin en paralelo. La comunicacin en paralelo significa que varios
bits pueden comunicarse a travs de un conjunto de lneas paralelas en cualquier instancia dada. Un puerto paralelo
se comunica dentro de la misma junta, Entre ICs o cables a lo largo de distancias muy cortas de menos de un metro.
Un puerto serie o paralelo puede proporcionar ciertas caractersticas especiales y sofisticacin (Seccin 3.4)
mediante un elemento de procesamiento.
Los puertos pueden interconectarse mediante wireless. Comunicacin mvil o inalmbrica es la comunicacin
serie pero sin cables, puede ser a travs de un corto alcance de la red de rea personal, as como red inalmbrica de
largo alcance, y la transmisin se lleva a cabo mediante el uso de frecuencias de portadora. El transportista modula
el bits en serie antes de la transmisin en el aire [los apartados 3.5 y 3.13). Un receptor demodula y recuperar los
bits en serie.
Puertos serie y paralelo de 10 dispositivos pueden ser clasificados en 10 tipos siguientes: (i) la entrada serial
sincrnica (ii) Salida serial sincrnica (iii) Asynchronous Serial UART Civ) serie asncrono de entrada salida
UART (v) puerto paralelo un bit de entrada (vi) en paralelo un bit de salida (vii) puerto paralelo de entrada (viii)
de salida del puerto paralelo. Algunos dispositivos funcionan como entrada y como salida: por ejemplo, un mdem.

3.1.1 Entrada Serlai sncrono


La parte I en la Figura 3.1 (a) muestra un puerto serie de entrada sincrnica. Cada bit de cada byte y cada byte
recibido est en sincronizacin. Sincronizacin significa separacin por un intervalo o diferencia de fase constante
[Parte 2 en la Figura 3.1 (a). Si el perodo de reloj es igual a T, entonces cada byte del puerto es recibida en la
entrada en el perodo comprendido entre el 8 de T. los bytes recibidos en tipos Constantes. Cada byte en el puerto
de entrada se separa por 8 T y velocidad de transferencia de datos para la lnea serie bits es 1/T bps [1 bps = I-bit
persecondj. El remitente, junto con los nmeros de bits, tambin enva los impulsos de reloj reloj SCLK (serie) para
el puerto del receptor pin. El puerto serie se sincroniza la entrada de datos de bits con bits de reloj.
La entrada de datos serie y reloj de pulso de entrada estn en la misma lnea de entrada cuando los pulsos de
reloj o codificar o modular la entrada de datos serie bits adecuadamente. El receptor detecta los impulsos de reloj
y recibe los bits de datos despus de la decodificacin o demodulacin.
Cuando una entrada SCLK separada es enviado, el receptor detecta en el oriente, borde positivo o negativo de
los pulsos de reloj que indican si los datos de entrada es 1 o 0 y guarda los bits en el registro de desplazamiento de
8 bits. El elemento de procesamiento en el puerto (perifrica) guarda el byte a un registro del puerto desde donde
el microprocesador lee el byte.
Entrada serial sincrnica es tambin llamado master entrada esclava de salida (MOSI) cuando el SCLK es
enviada desde el emisor hasta el receptor y el esclavo est obligado a sincronizar los insumos enviados desde el
maestro como por el reloj maestro de insumos. Entrada serial sincrnica es tambin llamado maestro esclavo de
entrada salida (MiSO) cuando el SCLK es enviado al remitente (esclavo) del receptor (master) y el esclavo est
obligado a sincronizar el envo de las entradas al maestro como por las salidas del reloj maestro.
Entrada serial sincrnica se utiliza para transferencias interprocessor, entradas de audio y transmisin de datos.

Dispositivos y buses de comunicacin para los dispositivos Network

131 |

Estado

10-07 ,

Half Duplex, entrada/salida


serie
10-07 y 00-07 en diferentes <D0-D7>
intervalos de tiempo

<p0D~7>

-------- 1 Full Duplex


-------- .
Yo
Entrada/salida serie
00-07

Reloj (opcional)
(a)

DTE

DCE

10 o 11
Tiempo
Bits de datos serie
UART tor
-|
Bit de inicio
|
P-Bit
(Opcional)

Todo ello integrado


en
un
sistema
incorporado

Lb)

Yo
J

En una fase
diferente o la
frecuencia de
estado 1 y
Estado 0

Bit de parada.
(c)

Fig. 3.1 (a) de entrada, de salida de puerto serie Puerto serie, Bi-direccional de half-duplex, puerto serie y Bi
(c) Un puerto serie UART bits

3.1.2 Salida serial sincrnica


La parte 3 de la Figura 3.1(a) muestra una salida sincrnico de puerto serie. Cada bit de cada byte est en
sincronizacin con el reloj. Los bytes se envan a tipos constantes [Parte 4 en la figura 3. l(a)].Tf trie cloctc perodo
es igual a T, entonces la tasa de transferencia de datos es de l/t de bps. El remitente enva los pulsos de reloj en el
pin SCLK o la salida de datos en serie y reloj de pulso a travs de la misma lnea de salida entrada cuando los
pulsos de reloj o modula adecuadamente o codificar la salida serie de bits.

132

Los sistemas integrados

El elemento de procesamiento en el puerto (perifrica) enva el byte a travs de un registro de desplazamiento


en el puerto al cual el microprocesador Escribe el byte.
Salida serial sincrnica se utiliza lor imerprocessor transferencias, salidas de audio y secuencias de datos de
salida,

3.1.3 Input-Output serial sincrnica


La parte 5 de la Figura 3.1 (a) muestra una entrada serial sincrnica-puerto de salida. Cada bit de cada byte se
sincroniza con el reloj de entrada y de salida. Los bytes enviados o recibidos a tipos constantes como se muestra en
las piezas (2) y (4) en la Figura 3.1(a)]. La IOs estn en la misma lnea 10 cuando los impulsos de reloj modula
adecuadamente o codificar la serie de entrada y salida, respectivamente. Si el perodo de reloj equivale a T. entonces
la tasa de transferencia de datos es de 1/ T bps. El elemento de procesamiento en el puerto (perifrica) enva y recibe
el byte en un puerto regstrese para o desde el cual el microprocesador escribe o lee el byte.
Entradas/salidas serial sincrnica se denominan tambin maestro esclavo de entrada salida (MISO) y salida
principal entrada esclava (MOSI), respectivamente.
Se utilizan para transferencias interprocessor y transmisin de datos. Los bits se leen o escriben frontal en
medios magnticos tales como una unidad de disco duro o en soportes pticos como CD mediante el uso de
dispositivos con serial sincrnico de 10 puertos. La parte 6 de la Figura 3.1(a) muestra el puerto cuando sincrnico
de 10 lneas de entrada y salida estn separadas.

3.1.4 Entrada serie asncrono


Figura 3.1(h) Muestra el puerto serie asncrono de entrada de lnea, denotada por RxD (recibir datos). Cada bit de
RxD es recibida en cada byte a intervalos fijos pero cada byte recibido no est en la sincronizacin. Los bytes se
puede separar por intervalos variables o diferencias de fase. La figura 3.1(c). En el lado derecho, se muestra el punto
de inicio de la recepcin de los bits de cada byte, indicada por una lnea la transicin de I a 0 durante un perodo T.
cuando un emisor cambia despus de cada perodo de base T. luego un byte en el puerto es recibida en la entrada
en el perodo 10 T o 11 T. El tiempo de 2 T es debido al uso de bits adicionales al inicio y al final de cada byte. Una
adicin de tiempo se toma cuando un P-bit se enva antes del bit de parada.
La velocidad de transferencia de bits (para la lnea serie bits) es (l/T) baudios por segundo, pero diferentes
bytes puede ser recibida en diferentes intervalos. La palabra "Baudios" est tomado de una palabra alemana para la
gota. Bytes verter desde el remitente como gotas de lluvia a intervalos irregulares. El remitente no enviar los pulsos
de reloj junto con los bits.
El receptor detecta n bits en los intervalos de T desde mediados del primer indicando poco. n = 0. 1...... 10 o
11, Averigua si la entrada de datos es 1 o 0 y guarda los bits en un registro de desplazamiento de 8 bits. El elemento
de procesamiento en el puerto (perifrica) guarda el byte a un registro del puerto, desde donde el microprocesador
lee el byte.
Asynchronous serial de entrada tambin se denomina entrada UART si la serie es de entrada segn el protocolo
UART (Seccin 3.2.3). Serie asncrona se utiliza para la entrada de teclado y entradas de mdem.

3.1.5 Salida serie asncrono


Figura 3.1(b) muestra la salida de la lnea de puerto serie asncrono, denotados por transmitir datos (TxD). Cada bit
de cada byte es enviado a intervalos fijos pero cada byte de salida no est en sincronizacin (separada por un
intervalo variable o la diferencia de fase). La Figura 3.1(c) muestra el punto de partida del envo de los bits de cada
byte, lo cual est indicado por una lnea transicin de 1 a 0 por un perodo T. El remitente puerto de TxD no enva
pulsos de reloj junto con los bits. ^
El emisor transmite bytes en los intervalos mnimos de n bits T. inicie desde el medio de inicio indicando poco,
donde n=0,1,... lOor 11 y enva los bits a travs de un 10 11 -Registro de desplazamiento de bits [Figura 3.1 c)].
El elemento de procesamiento en el puerto (perifrica) enva el byte en un puerto regstrese para donde el
microprocesador Escribe el byte.

Dispositivos y buses de comunicacin para los dispositivos Network

R ---133

Asynchronous Serial outpul tambin se llama UART salida si la salida serie es segn un protocolo UART
(Seccin 3.2.3). Salida serie asncrona se utiliza para entradas de mdem y de la impresora.

3.1.6 Puerto paralelo


Un puerto paralelo puede tener uno o multibit y de entrada o salida puede ser bidireccional, 10.
(i) Un bit de entrada, salida y 10
(ii) Ocho o ms bits de entrada, salida y 10
En la seccin 3.3 se describen en detalle los puertos de dispositivo paralelo.

3.1.7 Half duplex y full duplex


La parte 5 de la Figura 3.1(a) en el lado izquierdo muestra los 10 puertos serie bidireccional (half-duplex puerto
serie). Half duplex significa que en cualquier momento la comunicacin slo puede ser una forma (entrada o salida)
en una lnea bidireccional. Un ejemplo de modo half-duplex es una comunicacin telefnica. En una lnea
telefnica, slo podemos hablar en el modo half-duplex. La parte 6 de la Figura 3.1(a) muestra la entrada y salida
por separado las lneas de puerto serie. Full duplex significa que la comunicacin puede ser en ambos sentidos
simultneamente. Un ejemplo de la asy nchronous dplex completo modo de comunicacin es la comunicacin
entre el mdem y el ordenador a travs del TxD y RxD lneas [Figura 3.1(b)).
Existen dos tipos de puertos de comunicacin para IOs: serie y paralelo. Comunicacin por puerto Serial line
es sincrnico cuando un reloj del dispositivo maestro controla la sincronizacin de los bits en la lnea.
Comunicacin por puerto Serial line es asincrnica cuando los relojes del emisor y el receptor son
independientes y los bytes recibidos, no necesariamente a diferencias de fase constante. La comunicacin
serial puede ser full duplex, lo que significa simultneamente la comunicacin en ambos sentidos, o half
duplex, lo cual significa una forma de comunicacin.

3.1.8 Ejemplos de puertos serie y paralelos, IOs


El cuadro 3.1 da una clasificacin de 10 dispositivos en varios tipos. Tambin da ejemplos de cada tipo.

Tabla 3.1 Ejemplos de diversos tipos de dispositivos 10

Tipo de dispositivo 10
Entrada serial sincrnica

Salida sncrono serie

Entrada serie asncrono

Ejemplos
La transferencia de datos entre procesadores, lectura de CD o disco duro, entrada
de audio, entrada de vdeo, el tono de invitacin a marcar, de la red de entrada,
entrada del transceptor, entrada de escner, control remoto, entrada 10 bus serial
de entrada, Lectura de memoria flash con SDIO (Asociacin de datos segura 10)
card
La transferencia de datos entre procesadores, comunicacin multiprocesador,
escribiendo a CD o disco duro, salida de audio, salida de vdeo, Salida de
comunicador, dispositivo de red salida, televisor con control remoto, control de
salida del transceptor, y salida de bus serial 10, escrito a la memoria flash
mediante tarjetas SDIO
Los datos de serie del controlador de teclado, mouse, teclado, los datos del
controlador de mdem de entrada, entradas de caracteres en la lnea de serie
[tambin llamado UART (receptor y transmisor universal) de entrada cuando
segn el modo UART] J
(cont)

134

Los sistemas integrados

10 Deric de tipo E
Salida serie asncrono
Puerto paralelo solo bit de
entrada

Ejemplos
Salida desde el mdem, salida para impresora, la salida de una lnea serie (tambin llamada
UART salida cuando segn modelo de UART
(i) la realizacin de una revolucin de la rueda, (ii) el logro de la presin predefinida en
una caldera, (iii) exceda el lmite superior del peso permitido en la sartn de una balanza
electrnica, (iv) la presencia de una pieza magntica en las proximidades de o dentro del
alcance de un brazo robot a su punto final y (v) un lquido de llenado hasta un nivel fijo

Puerto paralelo de salida de un


(i) La salida PWM para un DAC, que controla levei lquido, la temperatura, la presin, la
solo bit
Entrada del puerto paralelo

Salida de puerto paralelo

3.2

velocidad o la posicin angular de un eje giratorio o un desplazamiento lineal de un objeto


o un motor de d.c. (ii) control de impulsos a un circuito externo
(i) entrada de ADC del sensor de medicin de nivel de lquidos o sensor de temperatura o
sensor de presin o el sensor de velocidad sensor de rpm del motor d.c. o (ii) entradas de
codificador de bits para la posicin angular de un eje giratorio o un desplazamiento lineal
de un objeto
(i) el controlador de LCD para display LCD multilnea unidad matrix en un telfono celular
para mostrar en pantalla el nmero de telfono, la hora, los mensajes, las salidas de
caracteres o imgenes de bits pictograma o correo electrnico o pgina web (ii) (iii) del
controlador de impresin de bobina del motor de pasos de bits de salida de conduccin

Dispositivos de comunicacin serie

3.2.1 Sincrnico, lso-synchroncus y comunicaciones asncronas de dispositivos


serie
Comunicacin sncrona cuando un byte (carcter) o frame (una coleccin de bytes) de datos
se reciben o se transmiten en intervalos de tiempo constante con diferencias de fase uniforme,
la comunicacin se llama sncrono. Bits de una trama de datos son enviados en un determinado intervalo
de tiempo mximo. Iso-sincrnica es un caso especial cuando el intervalo de tiempo mximo puede ser variado.
Un ejemplo de comunicacin serial sincrnica es tramas enviadas a travs de una LAN. Marcos de datos
comunicar, con el intervalo de tiempo entre cada fotograma permanece constante. Otro ejemplo es la comunicacin
entre procesadores en un sistema multiprocesador. La tabla 3.2 ofrece un puerto de dispositivo sincrnico de bits.
La figura 3.1(a) Parte 2: Se muestra el formato de 10 bits en serie y serial line unidos como una funcin de
tiempo. Dos caractersticas de comunicacin sncrona son como sigue:
1. Bytes (o fotogramas) mantener constante la diferencia de fase. Esto significa que son sincrnicos, es decir,
en la sincronizacin. No hay permiso para el envo de los bytes o los fotogramas a intervalos de tiempo
aleatorio; de este modo, por lo tanto, no se proporcionan para el intercambio durante el intervalo de
comunicacin. [Handshaking significa que el origen y el destino del primer intercambio de seales entre
ellos antes de comunicar los datos bits.] El maestro es aquel cuya gua los impulsos de reloj de la
transmisin y el esclavo es el que sincroniza t,l poco^segn el reloj maestro.
2. Tictac de un reloj en una cierta tasa debe estar siempre ah para transmitir en serie los bits de los bytes (o
fotogramas). El reloj no es siempre implcito para el receptor de datos sincrnica. En general, el transmisor
transmite la informacin de la velocidad del reloj en la comunicacin sncrona de los datos.

Dispositivos y buses de comunicacin para los dispositivos Network

135

Tabla 3.2 bits puerto de dispositivo sncrono

Obligatoria u
opcional
Opcional

S.nn.

Bits en el puerto

1.

Bits de cdigo de
sincronizacin o bi- bits
de cdigo de
sincronizacin o marco
stan y final de bits de
sealizacin

2.

Bits de datos

Obligatorio

3.

Bits de reloj

Mayormente no
opcional

Explicacin
Unos pocos bits (separados por intervalos
en) como cdigo de sincronizacin La
sincronizacin de trama, o sealizacin
precede a los bits de datos'. Puede haber
inversin de bits de cdigo despus de
cada fotograma. Bits de la bandera en stan
y final tambin se utilizan en ciertos
M s bits
bits de trama o transmitir, de tal manera
protocolos
que cada bit est en la lnea de tiempo o en cada
fotograma en la lnea de tiempo m.AT2
Ya sea en una lnea de reloj separados o en una
sola lnea de tal manera que la informacin del
reloj tambin se integra con los bits de datos por
una codificacin adecuada o modulacin

"recproco de AT es la tasa de transferencia de bits por


segundo (bps), -m puede ser un gran nmero. Depende del
protocolo.

La figura 3.2 muestra los mtodos por los cuales los Len seales sincrnicas, con la informacin de registro,
son enviados, (i) Hay dos lneas separadas para los bits de datos y reloj. El paralelo de serie (P1SO) y serie-paraleloout (S1PO) se utilizan para transmitir y recibir las seales de datos, respectivamente, (ii) hay una lnea comn y el
reloj, la informacin est codificada mediante la modulacin del reloj con la secuencia de bits, (iii) Hay precedentes
y subsecuentes y sincronizacin de bits de sealizacin adicional. Hay cinco mtodos comunes de codificacin de
la informacin de base en una secuencia en serie de los bits: (a) la modulacin de frecuencia (FM (b) Media
Frecuencia Modulada (MFM) (c) (d) la codificacin Manchester modulacin de amplitud en cuadratura (QAM)
(e) bi-fase de codificacin. El receptor sncrono serie separa bits del mensaje, as como la sincronizacin de reloj.
Modos de sincronizacin

Yo
Separar
Los impulsos de reloj
Junto con el
Bits de datos

PISO
(transmitir)

SIPO
(recibir)

Bits de
datos
modulados
o
codificados
con la
informacin
del reloj

Iirri
FM MFM QAM Manchester Bifase

Informacin de
reloj incorporado
con un bit de datos
Frame antes de
transmitir.

El cdigo de
sincronizacin
de Bits de datos
anterior BitFrame (Cdigo
de
sincronizacin)

Bi-Sync
Codifica
cin

Entre fotogramas
Lossebits
de sealizacin
Fig. 3.2 Diez maneras en las que las seales sincrnica con la informacin de registro
transmiten
desde un
dispositivo maestro al dispositivo esclavo

136 I

Los sistemas integrados

Yo _j
Comunicacin asincrnica cuando un byte (caracteres) o frame (una coleccin de bytes) de
datos se reciben o se transmiten a intervalos de tiempo variables, la comunicacin se le llama
asincrnica. datos de voz en la lnea se enva en modo asincrnico. A travs de una lnea de telfono la
comunicacin es como\ nchronous. Otro ejemplo es la comunicacin del teclado.
Un ejemplo de modo de comunicacin asincrnica es RS232C la comunicacin entre los dispositivos de UART
(Seccin 3.2.2).
Comunicacin UART (Seccin 3.2.3) de datos asincrnica frtiles se utiliza la transferencia de informacin
entre el teclado o el teclado y el ordenador.
Dos caractersticas de la comunicacin asincrnica son como sigue:
1. Bytes (o fotogramas) no necesita mantener una diferencia de fase constante y son asincrnicas, es decir,
no en la sincronizacin. Bytes o marcos pueden ser enviados a intervalos de tiempo variables. De este
modo, por lo tanto, facilita el intercambio entre entre el transmisor serie Puerto serie y puerto receptor.
2. Aunque el reloj debe marcar a una cierta velocidad de transmitir bits de un byte (o marco) en serie, siempre
est implcito en el receptor de datos asincrnica. El transmisor no transmite (ni por separado ni mediante
la codificacin mediante modulacin) junto con el flujo de bits en serie cualquier informacin de la
velocidad del reloj en la comunicacin asncrona. El reloj del receptor no es, por lo tanto, capaz de
mantener la misma frecuencia y la diferencia de fase constante con el transmisor en el reloj.
Cuando un dispositivo enva los datos utilizando un marco de comunicacin serial, es posible que no nos lx
simple como se muestra en la Figura 3.1 (a) y (b) o como se indica en la Tabla 3.2. Puede ser compleja y debe ser
segn el protocolo, el cual es seguido por dispositivos transmisor y receptor durante la comunicacin entre ellos.

Ejemplo 3.1.
Un ordenador personal IBM tiene dos puertos COM Pons (comunicacin), ME COM y COM2. Estos tienen
8 bytes a 10 direcciones Ox3F8 y 0x2F8.
Figura 3.1(b) mostraron seales de enlace de puerto COM adems TxD y RxD. Cuando un mdem se conecta,
se detecta una seal de portadora en la lnea telefnica. Un mdem enva la seal de deteccin de portadora de
datos DCD en lime t().
Un mdem se comunica entonces a conjunto de datos preparado (DSR) en el momento I, cuando recibe los
bytes en la lnea. El extremo receptor responde en el tiempo t2 por Data Terminal Ready (DTR). Despus de
DTR. Solicitud de envo (RTS) seal es enviada en el tiempo t, y el extremo receptor responde por
la seal Preparado para transmitir (CTS) en el tiempo t4. Jj despus de la respuesta CTS. Los bits de datos son
transmitidos por mdem de t, al receptor terminal en Jj intervalos sucesivos [Figura 3.1(c)]. Entre dos conjuntos
de bytes enviados en modo asincrnico, el ml seales de handshaking RTS y CTS puede volver a ser
intercambiados. Esto explica por qu los bytes no Mipermanezcan sincronizados durante una transmisin
asncrona.
Wf
Un sistema de comunicacin que pueden utilizar los siguientes protocolos de transmisin sincrnica o
asincrnica desde un puerto de dispositivo: RS232C, UART, HDLC, X.25, Frame Relay. ATM. DSL y ADSL.
Estos son los protocolos de red los dispositivos fsicos en telecomunicaciones y redes de computadoras. Ethernet y
token ring son protocolos utilizados en redes LAN. Hay una serie de protocolos para la comunicacin serial.
RS232C, UART y HDLC son descritos en las secciones 3.2.2 a 3.2.4.
Los protocolos integrados en los dispositivos de red, tales como puentes, routers, dispositivos de Internet
integrada utilizar enrutamiento de puente, aplicaciones y protocolos de la web. Internet habilitado sistemas
integrados utilizan protocolos de aplicacin - HTTP (protocolo de transferencia de hipertexto) y HTTPS (Hyper
Text Transfer Protocol Secure Socket lavamanos), SMTP (Simple Mai! Protocolo de transferencia), POP3 (Post
Office Protocol, versin 3), ESMTP (Extended MT?j, TELNET (Tele red), FTP (file transfer protocol), el dominio
DNS (servidor de red), IMAP 4 (1 nternet Application Protocol) de intercambio de mensajes y de BOOTP
(Bootstrap Protocol) y otros (Seccin 3.11).

Dispositivos y buses de comunicacin para los dispositivos Network

Uso de aparatos inalmbricos integrados wire-less- protocolos IrDA. Bluetooth. 802.11 y otros (Seccin
3.13).
Sincrnico, iso-sincrnicos y asincrnicos son tres formas de comunicacin. Informacin de reloj se transmite
de forma explcita o implcitamente en la comunicacin sincrnica. El receptor reloj continuamente mantiene
la diferencia de fase constante con el transmisor en el reloj. HDLC es un protocolo de enlace de datos para redes
de ordenadores y dispositivos de telecomunicaciones. RS232C y UART son modo asincrnico de comunicacin
estndar.

3.2.2 RS232C/comunicacin RS485


(i) RS232C de comunicacin RS232C es entre el DTE (Equipo) de puerto COM (comunicacin) y el DCE
(mdem) puerto. DTE significa Equipo Terminal de datos'. DCE significa Equipo de Comunicacin 'Data'.
RS232C es una interfaz estndar de seal entre DCE y DTE.
Figura 3.1(b) muestra la interfaz (protocolo) de seales en un puerto RS232C. La recepcin de datos y
transmitir seales de datos desde el puerto RS232C son RxD y TxD, respectivamente. Puerto serie RS232C RxD
y TxD bits son asincrnicas y siga el protocolo UART (Seccin 3.2.3). El receptor final de nivel de tensin - 3 25 V denota lgica I y nivel de tensin de +3 a + 25 V denota lgica 0. Transmisor de nivel de tensin final de 5 a - 15 V denota lgica I y nivel de tensin de + 5 a + 15 V denota lgica 0.

Ejemplo 3.2

El ordenador personal IBM dos puertos COM (puerto de comunicaciones) llamado COM2 y COM I.
tienen direcciones 10 millas 0.\2F8-0x2FF y 0x3F8-0x3FF, respectivamente. El puerto COM es puerto
RS232C. Tiene de serie RxD y TxD ml de salida y de entrada. Tiene seales de enlace DCD. DSR . DTR .
RTS y CTS. Ji
Puerto RS232C en un ordenador es utilizado hasta 9600 baudios/s serie asncrona con velocidad de
transmisin de comunicacin en modo UART. Generalmente las gamas de baudios se fij en 300, 600.
1200.4800 y 9600. Cuando se transmite hasta
0.
25 m o I m en cable (destrenzado) la mxima velocidad en baudios puede ser 115,2 k 38,4 K baudios/s,
respectivamente.
Puerto RS232C se utiliza para teclado comunicacin serie a 1200 baudios/s de velocidad de transmisin serie
asncrona con UART comunicacin en modo de puerto COM de PC de IBM. Las seales utilizadas arc RTS. CTS.
TxD y RxD para comunicacin de teclado. Mice tambin es puerto RS232C puerto COM en la computadora.
(ratones nuevos hoy en da utilizan USB en lugar de puerto COM).

Ejemplo 3.3

Un telfono inteligente mvil tiene un dispositivo Bluetooth por persona! Red inalmbrica de rea. Un
dispositivo Bluetooth es capaz de emular a puerto serial DCE, que ahora puede comunicarse en modo UART.
Un equipo en el otro lado lia un puerto serie llamado puerto COM (ejemplo 3.1). El dispositivo mvil
se me coloca en una cuna. El dispositivo mvil poit pasadores de datos conecta la base de pasadores. La base se
conecta al ordenador o porttil JJ PUERTO COM. La niobiie y luego comunicar los puertos serie del equipo.
Los datos (por ejemplo, Ml, imgenes o datos de la libreta de direcciones) entre ellos sincronizar entre COM y
emulada serie en mi dispositivo Bluetooth.
RS232C estndar proporciona para puerto serie UART de modo asincrnico de comunicacin. Un conjunto
diferente de niveles de tensin son prescritas para el 0s y RS232C estndar.

' ---

138

Los sistemas integrados

(") RS485
RS485, ahora llamado E1A-485 es un protocolo de capa fsica en caso de dos cable full duplex o half
duplex j
Conexin serie entre varios puntos. La transmisin est a 35 Mbps hasta 10 metros y 100 Kbps a 1.2 km. Electrial
seales estn entre -7 y +12 V V. Logic 1 es +ve y 0 es invertir la polaridad. Diferencia de potencial define la
lgica 1 y 0. Se utiliza un convertidor para convertir RS232C bits a RS485 y otra para el viceversa.

3.2.3 UART
La Figura 3.1 (b) mostraron seales de enlace de puerto RS232C y serie UART bits en la salida de una lnea de serie ;
dispositivo. El UART modo es como sigue:
1. Hay una lnea sin retorno a cero (NRZ) estado. Esto significa que en el estado de inactividad el estado lgico
es I en la lnea serie.
2. El inicio de serie de bits est sealada por 1 -> 0 Transicin (lado negativo) sobre la lnea por un perodo
igual al recproco de la velocidad en baudios. La velocidad en baudios es prefijado en tanto el receptor y
el transmisor. El receptor detecta el bit de inicio en la mitad del intervalo, Logic 0 Estado del transmisor
bit de inicio.
3. Bits de UART, al enviar un byte, constan de bit de inicio, 8 bits de datos (por ejemplo, un carcter ASCII
o de un comando de Word), opcin bit programables (P-bit) y cada bit de parada, durante el intervalo de
8T. Al enviar o recibir un byte, la lgica de Estados durante el intervalo 10 8T o 8T 11 son como se
muestra en la Figura 3.1(c) como una funcin del tiempo t. Un perodo de bits, 8T es igual a la inversa de
la velocidad en baudios, la tasa a la que los bits del transmisor UART son enviados. Un poquito antes del
bit de parada es bit programables
P
y
se
llama
TB8
en
el
transmisor
y
el
RB8
en
el
receptor.
J
4. Los bits de datos en determinados casos puede ser de 5 o 6 o 7 en lugar de 8.
5. El bit de parada puede ser para un intervalo mnimo de 1,5 o 2 ST 5T en lugar de ST en determinados casos.
j
6. Bit programable opcional (P-bit) puede ser utilizado para la deteccin de paridad o puede ser usado para
especificar el propsito de los bits de datos en serie que estn antes de la P-bit. Por ejemplo. P bits puede
especificar como los bits de un control o comando word cuando P = 1 y bits de datos cuando P = 0. Poco
P puede especificar la direccin del receptor cuando P = 1 y datos cuando P = 0, de forma que slo el
receptor dirigido se despierta y recibe los datos en las posteriores transferencias de datos. Cuando P se
utiliza como direccin/especificacin de datos, proporciona un medio para una interfaz serie de tipo
UART dispositivos a travs de un conjunto comn de TxD y RxD lneas y formar un bus UART.
UART 16550 Incluye un bfer FIFO de 16 bytes y es hoy en da utilizado ms comnmente como en
comparacin con el IBM PC original puerto COM, que tena un registro de 8 bits en el puerto UART y estaba
basado en 8250 y no incluyen el bfer FIFO.
Comunicacin por puerto serie UART suele ser de 10 bits o 11 bits en formato: un bit de arranque, 8 bits de
datos, un bit opcional y un bit de parada. Comunicacin UART puede ser full duplex, que es simultneamente
en ambos sentidos, o half duplex, que es una manera de hacerlo. Es un importante modo de comunicacin.

3.2.4 Protocolo HDLC


Cuando los datos se comunican con los dispositivos fsicos de una red, la comunicacin serial sincrnica puede ser
utilizado. HDLC (Control de enlace de datos de alto nivel) es un protocolo estndar internacional para una red de
enlace de datos. Se utiliza para vincular datos de punto a punto y entre varios puntos. Se utiliza en redes informticas
y telecomunicaciones. Es un protocolo orientado a bits. El nmero total de bits es,no ^ necesariamente un mltiplo
entero de un byte o un entero de 32 bits. La comunicacin es full duplex.
El cuadro 3.3 da al puerto de dispositivo de red sincrnicas bits en un protocolo HDLC. El lector puede referirse
a un libro de texto estndar, por ejemplo, "Las comunicaciones de datos, redes de computadoras y sistemas

139 i

Dispositivos y buses de comunicacin para los dispositivos Network

Tabla 3.3 Formato de bits en sncrono basado en el protocolo HDLC dispositivo de red

S.nn.

Bits' en el puerto

Seal de inicio y final del


bastidor
Los bits de direcciones de
destino
Bits de control Caso 1: Marco
de informacin

2
3a

Presentar
obligatoriamente
o opcionalmente
Obligatorio

Bits de la bandera en el inicio, as como al final son


(011II110)

Obligatorio

8-bits en formato estndar y 16 bits en formato

Nos obligatoria por


caso 1 o 2 o }

3b

Bits de control Caso 2: marco


de supervisin

3c

Bits de control Caso 3: ONU

Bits de datos

Obligatorio

PCS (secuencia de verificacin


de trama) bits
Bits de la bandera del extremo
del bastidor

Obligatorio

Obligatorio

Explicacin

extendido
El primer bit 0, el prximo 3 bits N(S), el siguiente bit
P/F~ y los ltimos 3 bits N(R) en el formato estndar
N(R)J y N(S) = 7 bits cada una en formato extendido
Los primeros dos bits (10), el prximo 2 bits RR3 o
RNR o REJ o SREJ, siguiente bit P/F y los ltimos
3 bits N(R) en el formato estndar. N(R)J y N(S)J =
7 bits cada una en formato extendd
Los primeros dos bits (11), el prximo 2 bits m5.
siguiente bit P/F y los ltimos 3 bits bits restantes tor
M. [8 bits arc irrelevante despus de M bits en extended
formatl
M transmitir bits de trama, de tal manera que cada bit est
en la lnea de tiempo a o. cada fotograma en la lnea de
tiempo m.y tambin hay poco relleno.6
16 bits en formato estndar y 32 en formato
extendido
Bits de la bandera al final tambin estn (01111110)

Bits dados los neumticos en funcin de su orden de transmisin o recepcin.


P/F = 1 y P significa que cuando una estacin primaria (comando device) es el sondeo de la estacin secundaria
(dispositivo receptor). P/F" = I y F significa cuando el dispositivo receptor no tiene datos para transmitir. Normalmente se
hace en el ltimo fotograma.
* RR. RNR. Y REJ SREJ son mensajes para transmitir "Receptor preparado.' 'Receptor no preparado.' 'Rechazar.' y
'Selectivos rechazar". O SREJ REJ es una confirmacin negativa (NACKt. NACK se enva slo cuando la trama es
rechazada.[/I nio llora slo cuando la leche no est en necesidad, else xiven calla !] "Rechazar* significa que el
receptor recibi una trama fuera de secuencia: es rechazada y una repeticin de la transmisin de todos los fotogramas desde
el punto del bastidor del rechazo es solicitado mediante REJ. 'Selectivos rechazar" significa que u tramas recibidas fuera de
scqucnce; debe rechazarse y repita la transmisin selectiva es solicitado para este bastidor usando SRFJ.
4
N(R) y N(S) significa recibidas (anterior) y envo (ahora) bastidor nmeros de secuencia. Estos son el mdulo 8 o 128 en
formato estndar o extendido fotograma, respectivamente.
Cinco bits de 5 m para los neumticos de un comando (o respuesta) desde un transmisor. Ejemplos de un comando
se restablecen, disamneci o establecer un tipo de modo definido; ejemplos de una respuesta son un mensaje desde el receptor
a un modo de desconexin, marco aceptado, rechazado, y rechazado el mandato para un reconocimiento sin numerar.
6Cuando cinco es transmitir los datos, uno 0 es adems de peluche. Esto evita malentendidos por el receptor los datos hits como bits de la bandera (
0 1 1 1 1 1 1 0 ).
2

3.2.5 La comunicacin de datos en serie con el SPI, SCI y si los puertos


Los microcontroladores tienen dispositivos internos de SPI o SCI o si como se explica a continuacin. Cada
dispositivo tiene registros separados para el control, Estado serialmente recibi bits de datos y transmisin de
bits en serie. Cada dispositivo es programable como se describe a continuacin. El dispositivo puede utilizarse
en 10 modos programado o controlado por interrupciones en la recepcin y la transmisin.

Interfaz de perifricos sincrnica (SPI) Puerto Figura 3.3(a) muestra un puerto SPI seales.
Figura 3.3(b) Se muestra el puerto SPI en 68HC11 y 68HCI2 microcontrolador. Tiene funcin
de dplex completo para la comunicacin sincrnica. Hay seales de reloj SCLK serie, MOS1
y MISO para entrada y salida del maestro.

140

Los sistemas integrados

Seccin 3.11. Figura 3.3(b) muestra las caractersticas programables y DDR caracterstica de puerto D. Un SPI
caracterstica es irogrammable tasas de bits de reloj y, por lo tanto, para la serie de los bits de datos hasta el
intervalo de 1,5 ps para un cristal de 8 MHz a 68HCII.
SPI tambin es programable para definir la ocurrencia de negativos y positivos de bordes dentro de un
intervalo de >sus datos en serie fuera o dentro. Tambin es programable en el drenaje abierto o Totem pole de
salida de un maestro a un lave y lor seleccin del dispositivo como maestro o esclavo. Esto puede hacerse por
medio de una seal de entrada de hardware SS (esclavo elegidos cuando 0) pin. En el hardware el esclavo
seleccionar pin se conecta a I' en el principal dispositivo SPI y a '0' en l esclavo. Definir SPI como maestro o
esclavo puede hacerse tambin por software. Un poco de programacin en el dispositivo introl registrarse
hace esto.
H.8HCI2 proporciona operaciones de dispositivo de comunicacin SPI a 4 Mbps. Dispositivo SPI opera hasta 2
Mbps en v s H C H .
>f'rial Conectar Interface (SCI) Puerto
La figura 3.3(c) muestra un SCI port caractersticas programables y
DDR
>en bits de 68HCII/I2. SCI es un puerto UART de modo asincrnico. La comunicacin es en modo full-duplex
para la 'I la transmisin y el receptor. SCI en baudios se fijan como prescaling bits. Tasa no programable por
separado para udividual lneas dentro y fuera de serie. Una velocidad en baudios pueden ser seleccionados entre
32 posibles por los tres bits y wo prescaling tasa de bits. La SCI receptor tiene una funcin de reactivacin y es
programable por RWU (activacin del receptor 'navaitable) bits. Se habilita si RWU (lsl poco de SCC2, el registro
de control de comunicaciones serie 2), y es -d si RWU se restablece. Si RWU si set. A continuacin, el receptor
de un esclavo no es interrumpida por los sucesivos bytes. SCI las dos bits de registro del control de la TB8 y RB8.
RWU caracterstica Ayuda en la comunicacin entre procesadores y SCI es iefinvJ para transmisin y recepcin
utilizando el SCC2 bits. Comunicacin UART, cuando est programado por .ontrol de bits, est en formato I l bits.
Un nmero de procesadores puede comunicarse en el bus en modo UART por RWU,
-s lien RBS y TBS bits estn configurados.
Existen distintos dispositivos de hardware a 68HC11 para comunicaciones sincrnicas y asincrnicas.
Estos HC SPI y SCI., respectivamente. 68HC12 dispone de dos dispositivos de comunicacin SCI que puede
funcionar a dos velocidades de reloj ITfercnl. Velocidad en baudios estndar se pueden configurar a 38,4 kbps.
Slo hay un SCI y ales en baudios estndar 6SHC11 puede configurarse hasta 9,6 kbps solamente.

'Serial Interface (IS) Puerto Figura 3.3(d) muestra un puerto IS. SI se trata de un modo de
interfaz UART puerto asncrono, tambin funciona como USRT (universal synchronous
receptor y transmisor). SI es as- isynchronous sincrnica de puerto de comunicacin serie
llamado USART (universal asynchronous receiver sincrnica y t.msmitter) puerto. Es un
dispositivo de 10 serie interno en 8051. Hay un chip de dispositivos de hardware comunes
:ailed si en Intel 80196. Sus caractersticas son las siguientes: tarifas programable despus de
cargar el registro de 14 bits en baudios_RATE registrarse dos veces. SI opera en una de las
siguientes maneras:
(i) Half-duplex, modo de funcionamiento sincrnico, llamado modo 0. Cuando un cristal es de 12 MHz, en el
8051 y est conectada al procesador, el reloj bits estn en los intervalos de I ps.
(ii) Full-duplex de comunicacin serie asncrona, llamado modo I, 2 o 3. Utilizando un temporizador, el baud
rate vara de acuerdo a lo programado ahora son ms finos trozos en los modos 1 y 3. Utilizando bits SMOD
en SFR llamado PCON, cuando se utiliza el modo 2, la velocidad en baudios es programable en dos tasas
slo. Es 1/64 o 1/32 de la frecuencia del oscilador en el 8051. TB8 y RB8, cuando se utiliza el formato de 1
l bits proporcionan el 10 Ih bits para la deteccin de errores o para indicar si el byte de datos se enva un
comando para la recepcin de datos o si el dispositivo.
La mayora de los microcontroladores tienen internal serial comunicacin SPI y SCI o si-como dispositivos para
la comunicacin serial. El ordenador personal IBM tiene dos chips UART para los dos puertos COM. La tabla 3.4
proporciona las caractersticas internas de los puertos serie en seleccionar microcontroladores.

/ -Dispositivos y buses de comunicacin para los dispositivos Network

SS
MOSI
MISO

SCLK

141

Seleccione la entrada de
esclavos (para definir un
dispositivo SPI como esclavo
al SS activa, otra cosa es el
maestro)
En la salida Master y Slave en
la entrada en la entrada
principal a la salida esclava
Salida de reloj en el
(a)
maestro y en el
esclavo de entrada
PD.2
MISO
PD.3
MOSI

2. Programables como maestro o esclavo o por

DDRD
PDA
PD.5

SCLK
SS

Los datos programables


Registrarse en
direccin Port
d

3. Programable para la instancia de la


ocurrencia de negativos o positivos
bordes orboth reloj

68HC11/12 SPI

4. Programable para drenaje abierto


de salida o Salida Totem pole
(

DDR
D

Yo ___
68HC11/12
SCI
(UART)

).

PD.O

RxD

8051 (UART/SyncSerial IS)


P3.0 RxD o pecado o S0UI

PD.1

TxD

P3.1 TxD o SCLK

Velocidad en baudios
programable, funcin de
reactivacin programable para
multi procesador programable
y comunicacin ST bit (P-bit)

(c)

UART o programable para


comunicacin serial sincrnica,
programables en baudios, bits
programable B" (P-bit), funcin
de reactivacin programable
para la comunicacin multiprocesador
(d)

1. SDIO (Secure Digital Input Output) hasta ocho


Tarjeta SDIO i
lgico
1
Funciones durante la comunicacin
2. CRC comprobaciones sobre los datos
transferidos
1
3. Especifica las capacidades de intentos adicionales por
SDIO.
9 clavija !
Retransmisin en error
Host
Conector ]
4. La comunicacin de datos de 48-bit de
Controller
comando/formato de solicitud
Para el registro de control de 48 bits/registro
__ 1
V)
status bits
5. Admite la transferencia de datos en bloque de
bytes
(e)
6. Programable para comunicacin en SPI (20
Mbps) o
Fig. 3.3 (a) las seales
del(25
puerto
SPI (b)
caractersticas
programables
1-bit SD
Mbps)
o SD
de 4 bits (100
Mbps por el puerto SPI y DDR en el puerto D en
por serie 4
68HC11/12
Bits enviados en paralelo) formatos usando 4 o
o 4 port
pinsen 68HCll/i' (d) Si el puerto en 8051 (e) caractersticas de comunicacin SDIO SDIO (/)
(c) 1 SCI

Yo

Estructura de la tarjeta

142

Los sistemas integrados

Tabla 3.4 Procesador interno con puertos serie de microcontroladores


Caractersticas

Intel 80196
8051 huei y hue! 8751

Motorola
M68MCUE2

Puerto serial sincrnica (half-duplex o full-duplex)

Hall

Full

La mitad

Puerto UART asincrnica (half-duplex o full-duplex)

Full

Full

Full

La programabilidad de 10 como 11 bits por byte de UART


Onu-multiplcxed separados pines de un puerto para
puertos serie sncronos y UART
Puerto serial sincrnica como maestro o esclavo definicin
por software o hardware
Puerto serie UART programabilidad como transmisor o
receptor y otro poco de paridad o RWU o control u otra
finalidad.
Puerto serial sincrnica registra

Registros de puerto serie UART

Utiliza el temporizador interno o utiliza programable


independiente generador de velocidad en baudios.

No hay

No hay

S (separada de 4
pines)
Hardware y
software
S

SCON.SBUF
Y
TL-TH 0-1

SPCR. SPSR
Y
SPDR

SPCON
SPSTAT
BAUD_RATF.
Y
SBUF

BAUD. SCCI
SCC2. SCSR
Y SCTTDR
SCIRDR
Separar

SPCON
SPSTAT
BAUD_RATE y
SBUF

Software

SCON. SBUF
Y TL-TH 0-1
Tiempo en 8052 (2)
Timer

Software
S

Separar as como el
temporizador

Los microcontroladores tienen dispositivos internos de tres tipos de SP1, SCI y SI. SPI es sncrono modo
maestro/esclavo comunicacin full dplex de serie. SCI es UART transmisor-receptor asncrono de serie de
modo comunicacin full dplex. SI es sncrona y asncrona half duplex full duplex UART comunicacin serie.

3.2.6 Entrada y salida Secure Digital (SDIO)


Secure Digital (SD) de la Asociacin cre un nuevo formato de tarjeta de memoria flash, llamado formato SD. Es
una asociacin de ms de 700 empresas comenzaron a partir del 3 de empresas en 1999. Esta tarjeta SDIO para
IOs en formato SD (Figura 3.3(e)] se ha convertido en una caracterstica popular en dispositivos mviles de mano,
PDA, cmaras digitales y sistemas integrados de bolsillo. Tamao de la tarjeta SD es slo 0,14 x 2,4 x 3,2 cm.
Tarjeta SD (Figura 3.3(f)] tambin est permitido que sobresalga del dispositivo de mano ranura abierta, que puede
ser en la parte superior para facilitar la insercin de la tarjeta SD.
SDIO es una tarjeta SD con 10 programables funcionalidades tales que (a) se puede utilizar hasta ocho
funciones lgicas, (b) puede proporcionar memoria adicional para el almacenamiento en formato SD, y (c) puede
proporcionar IOs mediante protocolos en sistemas tales como adaptador IrDA, UART 16550, adaptador Ethernet,
GPS, WiFi, Bluetooth, WLAN, una cmara digital, un lector de cdigos de barras o RFID.

Dispositivos y buses de comunicacin para los dispositivos Network

143

Figura 3.3(e) muestra un dispositivo de comunicacin caractersticas Puerto SDIO. Il admite SPI (Seccin
3.2.5), 4-bit y l-bil formatos SD. Ambos formatos SD y SPI Especifica que no debe interrumpir la manipulacin
de IOs y tambin el CRC comprobaciones sobre los datos transferidos, y especifica las capacidades para ms
intentos con error. Tarjeta SDIO (Figura 3.3(f)| tiene 9 patillas. Los seis pasadores arc para comunicacin mediante
SPI o SD. Una funcin de procesamiento de Clemente se utiliza como controlador de host SDIO para procesar el
IOs. El controlador puede incluir el controlador de SPI para apoyar el modo SPI para el IOs y es compatible con
la funcionalidad del protocolo necesario internamente. Velocidad de reloj mxima admitida para el SPI es de 20
MHz para un mximo de 20 Mbps de transferencia de datos. Hay una opcional de 4 bits en modo SD, que utiliza
4 lneas de datos. Velocidad de reloj mxima admitida es de 25 MHz para un mximo de 100 Mbps de transferencia
de datos de bit SD de 4 bits en modo SD. Cuatro bits serie ransmits simultneamente a cuatro veces la velocidad
del reloj en 4 lneas de SD en este modo. Cuatro bits en modo SD es un compromiso entre la comunicacin de bits
en paralelo y en serie, para aumentar la tasa de transferencia en serie cuatro veces. En I-bit SD, con el modo de
reloj de 25 MHz la velocidad mxima de transferencia de datos es de 25 Mbps y una serie poco transmite en lnea
yo slo.
SDIO Card tiene una seccin denominada funcin de control 0. Forzosamente se utiliza funcin I y
opcionalmente utiliza funciones entre 2 y 7 (dependiendo de la aplicacin en dispositivos utilizados como
Bluetooth. El PHS, GPS o una cmara digital). Cada funcin tiene PCMCIA (Personal Computer Interface Adapter
Fabricante) define la estructura de la informacin de la tarjeta y se registra, por ejemplo, nmero de ID de
activacin de funcin poco, apoyado ancho de bus (1 o 4), tensin, potencia, velocidad del reloj y el bit de
habilitacin de interrupcin. Las especificaciones de cada funcin de los bits de registro y protocolos que se han
definido en el estndar SD. Un controlador de dispositivo estndar puede ser escrito. Una nueva funcin tambin
puede ser definido.
La comunicacin de datos es de 48-bit de comando/formato de solicitud para el registro de control de 48 bits/
Registro status bits y admite la transferencia de datos de bloques de bytes. Para transacciones de byte nico, tarjeta
SDIO puede tambin incluir un UART 16550 en modo SD la comunicacin a travs del bus.
SDIO SPI es un conector de 9 pines basado en tarjeta, que admite el SPI, as como I-bit SD o SD de 4 bits de
la comunicacin. SDIO admite 8 funciones lgicas. Las funciones incluyen SDIO IOs con varios protocolos,
por ejemplo, adaptador IrDA, UART 16550, adaptador Ethernet, GPS, WiFi. Bluetooth, WLAN, una cmara
digital, un lector de cdigos de barras o RFID.

3.3

Puertos de dispositivo paralelo

El puerto paralelo de dispositivos traslados Nmero de bits a travs de los cables en paralelo. Alambres paralelos
efecto capacitivo reduce la longitud hasta w'liich comunicacin puede hacerse en paralelo. Alta capacitancia
resultados en la demora de los bits en el otro extremo est experimentando una transicin de 0 a I o de 1 a 0. Alta
capacitancia puede resultar tambin en el ruido y la diafona (seales inducidas) entre los cables. Por lo tanto,
paralelo puerto transporta los bits hasta distancias cortas, generalmente dentro de una placa de circuito o IC.
La figura 3.4(a) muestra el paralelo de entrada, salida y puertos de dispositivo bi-direccional. La figura tambin
muestra un dispositivo
Un puerto de dispositivo se conecta al bus de direcciones seales, af y Aj a travs de un descodificador de la
direccin del puerto. Y IORD IOWR son seales de control adicionales para un puerto,(dispositivo de lectura y
escritura, respectivamente, en el caso de un procesador 80x86, que tiene asignadas IO IOs. Lectura y escritura de
la memoria, seales RD y WR se utilizan en el procesador con la memoria asignada [seccin de IOs 2.2.2].

Los sistemas integrados

I M4

_____ J
CS-Port Seleccione
Registro BRrBuffer
Para Entrada
entrada

__ un puerto de

3
Interrumpir
Solicitud

Fig. 3.4 (o) paralelo Puerto de entrada, puerto de salida, y un puerto bidireccional para conectar el
dispositivo (b) Las seales de enlace cuando es utilizado por el 10 puertos

Ejemplo 3.4
IBM PC tiene un puerto paralelo con un conector de 25 pines. Hay 8 de 10 patillas, 5 clavijas de entrada
para
Las seales de estado (cuatro alto activo S3 a S6, un activo bajo S7 ) de un dispositivo externo (por
ejemplo, puerto
Puerto de dispositivo de impresin) y 4 clavijas de salida para seales de control (uno alto activo
C2 y tres bajo activo
CO, Cl y C3. Las 8 patas son tierra (patas 0 V). El estado los pasadores y pasadores de control
son
Siempre para el intercambio entre el perifrico y el ordenador.

Dispositivos y buses de comunicacin para los dispositivos Network

Figura 3.4(b) muestra las seales de enlace. Un dispositivo de entrada externo al dispositivo puerto hace un
estrobo solicitud, luz estroboscpica, cuando est listo para enviar el byte y el sistema 10 dispositivo enva el acuse
de recibo. Puerto listo cuando el bfer de recepcin; (BR) est vaco.
Salida externa dispositivo receptor enva el mensaje reconocer cuando el dispositivo del puerto 10 finaliza
el BUFFER FULL seal. El procesador se envi el mensaje de peticin de interrupcin cuando BR" transmitir
bfer est vaco lleno (no disponible para la siguiente escritura) o cuando el bfer de recepcin est lleno
(disponibles para la siguiente lectura). Esto permite que el procesador para interrumpir y retransmitir el siguiente
byte(s) en el prximo ciclo o recibir el byte(s) de entrada utilizando las rutinas de servicio apropiado para la salida
o entrada del puerto, respectivamente.

Ejemplo 3.5
Intel 8255 es una interfaz perifrico programable (PPI) chip. Un dispositivo PPP tiene cuatro direcciones, tres de
los puertos, y uno para el control word. Hay tres puertos de 8 bits: puerto A, B y C. El Puerto C tambin pueden
programarse para que funcionen en conjunto de bits-Modo de reset. Cada bit de este puerto se puede configurar
para que yo o restablecer a 0 por un adecuado control word. Alternativamente, los puertos pueden agruparse
como grupo A (un puerto y el puerto C cuatro bits superior) o del grupo B (Puerto B y el puerto C cuatro bits
inferiores).
1. En el modo 0 de programacin para un grupo, cada grupo de puertos no utiliza seales de enlace.
2. 2 Modo de programacin se utiliza para un puerto como entrada as como de salida. En el modo 2 para la
programacin
Grupo A, un puerto de enlace utiliza seales, luz estroboscpica, Puerto, BUFFER FULL. ACK
y jj interrumpir y funciona como un puerto bidireccional de 10 puertos.
3. 1 Modo de programacin est bien para el puerto como entrada o como salida. En el modo I programacin
para el ML
El grupo A o B, puerto A o B utiliza slo uno de los dos pares de seales de enlace (luz
estroboscpica. Mipuerto listo) o (BUFFER FULL, ACK) ms una seal de interrupcin.
Ji

Jj

Las siguientes caractersticas son tomados en consideracin cuando se trate de un dispositivo de puerto.
1. Puede tener un puerto de dispositivo de entrada de datos de multi-byte y bferes de bferes de salida de
datos. Supongamos que hay un bfer de ocho bytes. Suponiendo que un dispositivo (como en el
microcontrolador 80196) puede generar tres interrupciones, uno al recibir un byte, uno al recibir el cuarto
byte y uno cuando el buffer est lleno, entonces el plazo para el mantenimiento de estas interrupciones
aumenta hasta 8 veces en comparacin con el caso cuando existe un nico byte registrarse en lugar de
bfer.
2. Un puerto puede tener un registro de direccin de datos (DDR) (como en el microcontrolador 68HCII).
Esto es una ventaja, ya que cada bit del puerto es ahora programable. Se puede configurar como entrada o
salida. Los programas de desarme, desmovilizacin y reintegracin del puerto bits.
3. LSTTL puerto-capacidad de manejo y la capacidad de carga del puerto son caractersticas importantes. Un
puerto puede ser un drenaje abierto (OD) puerto. Tiene cero capacidad para conducir a menos que el
drenaje se conecta la tensin de alimentacin positiva. Si el puerto tiene puertas de OD, una adecuada
resistencia de pull-up o el transistor est conectado a cada puerto pin para proporcionar la capacidad de
conduccin. El colector de drenaje o se conecta a la tensin de alimentacin para proporcionar los pull-up.
4. Si un determinado puerto est cuasi bi-direccional (segn EN 80196), entonces el puerto pasadores tienen
limitada capacidad de conduccin,
Que es suficiente para un periodo de uno o unos pocos ciclos de reloj y acciona una compuerta LSTTL
durante ese perodo. Cuando este dispositivo se conecta al puerto ms de uno LSTTL, entonces un circuito
de pull-up apropiado ser requerido para los pines de un puerto.
'
5. Puede haber varias alternativas o funcionalidad en los pines de un puerto, por ejemplo, 80196 pines de un
puerto de entrada. Cada pin de P2 tiene un uso alternativo como multi-canal de entrada analgica para

Los sistemas integrados

La memoria interna es insuficiente. Cada pin de P3 en 8051 tiene varios usos. Estos se utilizan durante la
comunicacin serie, timer/eountersignals.-seales de interrupcin, y f>P Y WR seales de control externas
lor recuerdos. 68HC11 poits B y C son de 8 bits cada uno y tienen usos alternativos lor los pines de un
puerto. Una de las funciones alternativas es llevar a cabo la direccin interna y los buses de datos,
respectivamente.
6. Un puerto puede tener disposicin para salida multiplexada para conectarse a varios sistemas o unidades.
7. Un puerto puede tener disposicin para demultiplexed aportes de mltiples sistemas o unidades.
Un dispositivo paralelo puerto paralelo puede tener entradas, salidas paralelas, bi-direccional y cuasi-bi-direccional
de 10s. Un dispositivo de puerto paralelo puede tener pasadores de enlace. Un dispositivo de puerto paralelo
tambin puede tener pasadores de control para el control de salidas de seal al circuito externo y pasadores de
estado para entradas de seales de estado a circuitos externos.

3.3.1 Interfaz de puerto paralelo con interruptores y teclado

Un teclado de 16 teclas tiene muchas aplicaciones. Un dispositivo de telfono inteligente mvil tiene 16 teclas y
cuatro men: seleccionar arriba, abajo, izquierda, derecha teclas. Se asume que un 10 dispositivo tiene dos puertos,
A y C. El dispositivo tiene un elemento de procesamiento que funciona como un dispositivo de control por teclado
(controlador).
La figura 3.5(a) muestra cmo un conjunto de interruptores o un teclado numrico de 16 teclas y cuatro teclas
de seleccin de men puede interactuar con el dispositivo. Cuatro bits de un puerto de entrada de 8 bits (A4-A7)
puede ser usado para las cuatro teclas de seleccin de men. Supongamos que el estado inactivo estado lgico
iguales I. El 16 de teclas pueden ser considerados dispuestos en cuatro filas y cuatro columnas. Los otros cuatro
bits de una (A0-A) son entradas a partir de las lneas de deteccin de cuatro filas. Supongamos que el estado idle
lgica- el estado es igual a 1. Los cuatro bits del puerto de salida C (C0-C3) se envan a lneas de deteccin en
cuatro columnas.
El elemento de procesamiento en el dispositivo activa para el sondeo del puerto de salida C diez veces cada
segundo y enva C0-C3 = 0000; despus de una espera lee D(L-D7 y A4-A7. El elemento de procesamiento calcula
el cdigo de la tecla presionada y genera una seal de estado cuando se encuentra una tecla pulsada. Desde el patrn
de bits encontrados en un"-A3. El elemento de procesamiento calcula 7-bil cdigo ASCII de la tecla pulsada en esa
instancia y puede dar salida a ese cdigo en D0-D6. Tambin salidas D7 = I cuando una tecla especfica se encuentra
presionado, ms D7 = 0. El elemento de procesamiento tambin procesa la rebota cuando se pulsa una tecla. Esta
se ocupa de los efectos de rebote. El elemento de procesamiento es, por lo tanto, funciona como un controlador de
teclado numrico, como teclado numrico especfico.

Ejemplo 3.6
Un teclado de telfono mvil es inteligente y se denomina T9 teclado. Nueve teclas se utilizan para introducir no
slo los nmeros, sino tambin los textos de los mensajes. El elemento de procesamiento est programado como
una mquina de estado para calcular el cdigo ASCII para ser enviados. Una mquina de estado genera los estados.
Por ejemplo, una tecla marcada con el nmero 5 se encuentra en estado (0, 5) en estado reset, que es tambin su
estado de inactividad. La clave-estado sufre la transicin al estado (1,5) cuando se presiona la primera vez. Cuando
se pulsa otra vez dentro de 1 s, el estado se convierte en clave (1, j). Este estado corresponde al carcter j. Si se
pulsa, tercera vez dentro de 1 s, el estado se convierte en clave (1 k). El estado de la llave cambia de forma cclica.
(1,5)-> (1, j)-"(1,k)-(1,1) -> (1,5)-> (1, j),.... La transicin de un estado clave slo se produce si se encuentra
presionado dentro de 1 s de la transicin anterior, y se lleva a cabo la accin apropiada segn el estado. El elemento
de procesamiento calcula el cdigo ASCII de la Leer el valor de A0-A3 y en una instancia clave del estado. Tras
el procesamiento es ms o despus, el estado-clave se restablece a (0, 5).
Dos estados clave simultneamente o por separado experimentando transiciones pueden definir una
transicin a otro estado J. Por ejemplo, w'&n no hay transicin a (1, j) estado tras otro estado clave es (I) y, a
continuacin, # (i, j) sufre otra transicin (1, j), y cuando ese Estado es clave (0, #) permanece en MT

(es).

Jar

Dispositivos y buses de comunicacin para los dispositivos Network

El bus de datos
Procesador

---- 1 puerto
| interfaz
I En rlpvirfi

((>)

----- J4-PC
------- 1 PC7

- Entrada a pasos bobinas mator j


conductor transistores !

INTR
(c)

Fig. 3.5 (a) paralelo Puerto de entrada y un puerto de salida de cuatro bits C utilizado para la interconexin de un
conjunto de 16 teclas en el teclado y cuatro teclas de seleccin de men (ft) paralelo Puerto de entrada
conectada a un codificador de circuito que detecta la posicin girada o lineal de un eje en movimiento y el
puerto B conectado a 6 LED (c) cuatro bits puerto paralelo de salida C conectado a un motor de pasos

Un dispositivo paralelo de tener un nmero de bits de salida inpul y puede usarse para encontrar el cdigo de la
tecla pulsada en una matriz de teclas. Un controlador de teclado numrico tiene un elemento de procesamiento
para calcular el cdigo de la tecla presionada y para generar una seal de estado cuando se encuentra cualquier
tecla pulsada. Un teclado de telfono mvil el controlador procesa los estados de las teclas para activar la
aplicacin del mismo teclado para marcar, as como la edicin de mensajes SMS.

3.3.2 Interfaz de puerto paralelo con codificadores


Encoder es un dispositivo que mide la posicin lineal o angular de Rotacin o Desplazamiento de eje, tiene
aplicacin iij, robots y plantas industriales. Un ngulo de codificador rotatorio tiene varias pistas en un disco
giratorio. Cada pista tiene la mitad de los segmentos medio opaco y transparente. Un codificador lineal tiene un
multi-placa ranurada. De un conjunto de n LED de infrarrojos (IR) y un fototransistor pares de n bits generar
insumos para un puerto. El codificador se conecta al puerto paralelo, como se muestra en la Figura 3.5(b).

148

Los sistemas integrados

3.3.3 Interfaz de puerto paralelo con motor de pasos


Un motor paso a paso rota por un ngulo de paso cuando sus cuatro bobinas reciben corrientes en una secuencia
especfica y tailands secuencia est alterada. Por ejemplo, asuma que las corrientes en una instancia igual + i, 0,
0,0 en cuatro bobinas X, X, Y, Y''. El motor gira en un paso cuando las corrientes cambiar a 0 + i, 0,0. Las secuencias
en intervalos de T se modifican como sigue: 1000, 0100, 0010, 0001, 1000, 0100, ... . [Los bits en el nibble (conjunto
de 4 bits) gire a la derecha por turno.] Aqu 1 corresponde a + i. As, el motor gira n ngulos de paso en intervalo
de (n.T). Las secuencias se cambi para hacer girar el motor en el sentido opuesto, como sigue:
0001,00010,0100,1000,0001,0010,.... [Los bits en el nibble (conjunto de 4 bits) girar Mays izquierda.]
Alternativamente, las bobinas son dadas las corrientes en el
Secuencia de 1100, 0110,0011, 1001, 1100,0110 ......... O 0011, 0110, 1100, 1001,0011,0110 ............. El motor
Gira (n/2) pasos en el intervalo es igual a (n.T/2). T es el perodo de los pulsos de reloj que impulsa el motor por el
cambio de la bobina de corrientes a la siguiente secuencia.
Las bobinas conectar al puerto paralelo de 4 clavijas de salida, como se muestra en la Figura 3.5(c).
Alternativamente, un elemento de procesamiento llamado motor gradual deriver pueden ser utilizados. El
controlador tiene dos salidas desde el puerto: los impulsos de reloj y un poco de direccin de giro r. Por ejemplo,
si r = 1, el motor gira en el sentido de las agujas del reloj y si r = 0, entonces el motor rota anti4-PC7.

3.3.4 Interfaz de puerto paralelo con el controlador de LCD


Un controlador de LCD tiene un elemento de procesamiento de seales de control que necesita tres como insumos
y entrada/salida de 8 bits para el conjunto paralelo de 8 bits de IO. Ocho bits puerto paralelo de salida B pasadoresPB0, PB7 Conecte el controlador de LCD, como se muestra en la Figura 3.6(a). El controlador de LCD tambin se
conecta a un bit PC0 a un puerto de salida RS (registro seleccione) seal.
Microcontrolador
8051 o i l<"> I P2

-1
__ _ _____________ _ ______ E______ 1 j

Controller
PC,
J PBoYO PB7

1
Pantalla | i

RS

11

R/W

Yo
| Tabla de fuente, CGRAM, j : |
driver LCD | j
Controlador de display LCD j

Datos

(h)

Fig. 3.6 (a) salida de puerto paralelo de ocho bits B conectado a un controlador de LCD (B) salida en paralelo de 8 bits
El puerto B y paralelo de 8 bits de un puerto de entrada conectado a un circuito de control de pantalla tctil

Dispositivos y buses de comunicacin para los dispositivos Network

149

Cuando se restablece la RS como 0, PB0-PB7 comunica una palabra de control para el registro de control del
controlador de LCD. Cuando RS se establece como 1, PB0-PB7 comunica los datos al controlador de LCD.
El controlador de LCD tambin se conecta a un PC, un bit en el puerto de salida para r/\s (lectura/escritura).
PC, se establece en 1 al registro de estado de controlador de LCD se lee de PB0-PB7. PC, se restablece a 0 cuando
se escribe en el controlador de LCD el PB()-PB7 bits. El elemento de procesamiento genera todas las informaciones
necesarias para las pantallas LCD.
El controlador de LCD es enviado palabras de control de datos y palabras para la inicializacin y programacinPB0, PB7 bits, PC y PC, salidas para cada palabra para controlador de LCD. A continuacin, el controlador tiene
que ser habilitada por el envo de 1 E en el pasador. Se conecta a un bit PC2 en el puerto de salida para E (enable).
Existe un intervalo en el que el controlador puede estar en estado deshabilitado. Durante este intervalo, no puede
aceptar instrucciones o datos a travs de la salida de palabra de control o datos pines de un puerto. Por ejemplo,
una instruccin de control para borrar la pantalla. El elemento de procesamiento interno tiene que borrar los bytes
en todas las direcciones N N caracteres en la pantalla LCD. Supngase que en un LCD tpico es 150 ps. Cuando
los primeros 1 est escrito en E, luego 0 est escrito y 150 ps programa se denomina retardo entre ellos; la salida
E crea un impulso negativo en el controlador de LCD. Deshabilita el envo de cualquier palabra de control o datos
para un periodo de 150 ps.
El controlador de LCD tiene M muestra las direcciones de la ROM de caracteres. M = 128 128 cdigos ASCII.
Para cada carcter ASCII distinto, hay un grfico de 64 bits. El controlador de LCD tiene un carcter grfico
CGRAM interno (RAM). Para cada carcter ASCII, 8 bytes son enviados desde font tabla ROM para CGRAM
direccin. CGRAM HA N direcciones. N = 64 al 64 caracteres se muestran en la pantalla LCD. Una direccin
cambia por incrementar o decrecer la posicin del cursor a la direccin anterior o siguiente en la pantalla. Mediante
el envo de un adecuado control palabras seguidas de datos, el controlador de LCD est programado para mostrar
hasta 64 caracteres en la pantalla.
Un dispositivo paralelo con datos de salida 8 y 3 bits para E, RS y RJ W puede utilizarse para conectar un
3,3.5
Puerto
controlador
de LCD.paralelo interfaz con pantalla tctil
Pantalla tctil es un dispositivo de entrada Dispositivo de pantalla LCD de esperma. Tambin se comunicaban a
travs del puerto 10 B funciona como pantalla lejos del bus de datos, control y estado de palabras a una pantalla
LCD controlador de dispositivo. La interfaz utiliza un puerto de entrada adicional para un byte, que corresponde a
la direccin de la posicin tocada en la pantalla.
Es una pantalla tctil resistiva o capacitiva. En tocar en una posicin en la pantalla, no hay cambio en la
resistencia o la capacitancia, que depende de la posicin de tocados. Un toque puede ser el dedo o el lpiz ptico.
El lpiz es de aproximadamente una quinta parte ms delgado que un lpiz y aproximadamente la mitad de la
longitud del lpiz. La resistencia o la capacitancia es parte de un circuito de puente que genera una tensin
analgica. Un ADC de 8 bits es dada una entrada desde un puente y el circuito de salida ADC de 8 bits se conecta
al puerto de entrada de 8 bits A.
Ocho bits puerto paralelo de 10 pines B PBn-PB7, E, R y R/W y ocho bits de entrada un puerto paralelo para
conectar los puertos del circuito de la pantalla tctil, tal como se muestra en la Figura 3.6(b). Una seal de
interrupcin INTR es emitido cuando se toca la pantalla.

Ejemplo 3.7
Un PocketPC tiene una pantalla tctil. El dispositivo de pantalla tctil facilita la GUI. Puede mostrar
mens, as como
Un teclado virtual. Utilizando el teclado en pantalla y el stylus, un conjunto de caracteres que pueden
introducirse para crear
O edicin de mensajes SMS, e-mails, u otros archivos. El lpiz se celebr como si fuera un lpiz, y
se utiliza para tocar
El teclado virtual y, a continuacin, el dispositivo selecciona el men y comandos en la pantalla.

150

Los sistemas integrados

V. J

Un dispositivo paralelo, con 8 bits de datos de entrada de un ADC y 8 y 4 de bus de datos de 10 bits para INTR,
E, R y R/ W puede ser utilizado para conectar una interfaz de puerto con un elemento de procesamiento a una
pantalla tctil. El ADC genera bits de entrada para el puerto de la seal analgica, que es como por la toc la
posicin en la pantalla.

3.4

Sofisticadas funciones de interconexin en los puertos del dispositivo

Un puerto de dispositivo puede no ser tan simple como el de un motor de pasos de puerto o de una lnea de serie
UART. En la actualidad, un complejo sistema integrado tiene 10 dispositivos altamente sofisticados, por ejemplo,
tarjeta SD10 (Seccin 3.2.6), 10 dispositivos con rapidez la serializacin y la deserializacin del transceptor de
datos rpido y sistema de procesamiento de vdeo en tiempo real. Las siguientes son las pocas interfaces sofisticadas
funciones de puerto y dispositivo.
1. Deje que el nivel de voltaje de funcionamiento esperado para el estado lgico I = 5 V (TTL o CMOS). El
circuito trigger Schmitt tiene una propiedad que cuando una transicin de 0 a I se produce slo si el nivel
de tensin supera 2/3 del nivel 5 V hay una transicin a 1. Asimismo, cuando una transicin de I a 0 ocurre,
slo si el nivel de tensin desciende por debajo de 1/3 del nivel 5 V hay una transicin a 0. Por lo tanto, el
circuito trigger Schmitt elimina el ruido tan grande como 2/3 de 5 V o 3,3 V, cuando se superpone, en una
lnea de entrada para el dispositivo. Una gran ventaja de la incorporada en el circuito Schmitt Trigger port
es el acondicionamiento de la seal mediante la eliminacin de ruido. De lo contrario, un puerto de
dispositivo entrada tendr un chip externo basado en Schmitt Trigger para eliminacin de ruido. Se trata de
un dispositivo utilizado en transceptores para sistemas de repeticin, que se utilizan en comunicaciones de
larga distancia.
2. Cuando un dispositivo port est esperando instrucciones, gestin de potencia puede ser hecho en las puertas
del dispositivo. ltimamente, una nueva tecnologa denominada DalaGate (desde Xilinxj ha sido
desarrollado para su uso en los puertos. DalaGate es un interruptor de encendido/apagado programable para
la administracin de energa: DataGate hace posible reducir el consumo de energa reduciendo innecesario
alternar de insumos cuando estos no estn en uso. La gran ventaja de un circuito similar DataGate
incorporada en un puerto de dispositivo es reducida disipacin de potencia cuando el puerto del dispositivo
se opera a velocidades rpidas. Un dispositivo de este tipo es sumamente til en los sistemas conectados a
un bus comn y existe una necesidad de controlar la entrada innecesaria de alternar. Por ejemplo, en una
unidad de interfaz de bus, las seales de entrada debe activarse slo cuando la entrada se pasa al circuito.
Como el nmero de interfaces de bus en el sistema crece, la demanda para evitar la huelga la conmutacin
de seales de entrada aumenta.
3. Anteriormente, el puerto interfaces utilizadas para ser drenaje abierto CMOSs o TTLs o RS232Cs. (/) en la
actualidad, un sistema puede ser necesaria para funcionar a una tensin inferior a 5 V. |recordar la seccin
1.3.1.] Baja tensin TTL (LVTTL) y baja tensin CMOS (LVCMOS) puertas podra utilizarse un! Los
puertos de dispositivo de 1,5 V
10. (/); hoy en da, un sistema puede ser requerido para operar utilizando tecnologa avanzada de 10
interfaces estndar. Ejemplos son la alta velocidad HSTL Transreceiver (lgica) y termin la serie de
mangueta Logic (SSTL) estndares. HSTL se utiliza para operaciones de alta velocidad; SSTL se utiliza
cuando los autobuses van a estar aislados de ramales relativamente grande.
4. El dispositivo se conecta a un bus de sistema y tambin al 10 de autobs cuando est conectado en red con
otros dispositivos. Dispositivo e impedancias de bus durante 10 deben coincidir. Otra lnea, las reflexiones
se producen. Los recientes acontecimientos hacen que sea posible hacer coincidir estas dinmicamente. Por
ejemplo, una nueva tecnologa,,llama,incitar (Xilinx impedancia controlada Tecnologa) puede ser
utilizado. La gran ventaja de un dispositivo incorporado dinmicamente para impedancias coincidente es
que si las resistencias son reemplazados con dinmicamente controlado digitalmente, y conciliado
impedancias en los dispositivos, no hay reflexiones y por lo tanto no hay piezas faltantes o averas de bus.

Dispositivos y buses de comunicacin para los dispositivos Network

151

5. 10 Un dispositivo puede constar de varios gigabits (622 Mbps hasta 25 Gbps 3. i) transceptores (MGTsj.
Se necesita un apoyo especial circuitos lor esta tasa. 10 basculante transreceivers serie 1M son ejemplos
de circuitos que ofrecen circuitos de apoyo a este ritmo.
6. Un dispositivo para un 10 de mayo de integrar un SerDes (la serializacin y la deserializacin) subunidad.
SerDes es una subunidad estndar en un dispositivo donde los bytes colocados en "transmitir la
celebracin de buffer' serializar en la transmisin y, una vez que los bits se reciben estos deserializar y
son colocados en el 'receiver buffer'. Una vez que el dispositivo SerDes subunidad est configurado, la
serializacin y la deserializacin se realiza automticamente sin el uso de las instrucciones del procesador.
La gran ventaja de la unidad SerDes es que estas operaciones rpidas de neumticos cuando se comparan
con las operaciones sin SerDes. [Un dispositivo para el 10 de mayo de integrar un DAA (acceso directo
a disposicin utilizando analog 10s junto con un maestro y siete esclavos) o McBSP cdecs (puerto serial
buffer multicanal con una alta velocidad de comunicacin) subunidad durante la serializacin.
7. Recientemente, varios 10 estndares han sido desarrollados para 10 dispositivos. Un apoyo a las mltiples
10 normas puede ser necesaria en algunos sistemas integrados. Una tecnologa. Seleccione flexible IO
Tecnologa Ultra, admite ms de 20 Terminacin nica y diferencial 10 normas de sealizacin. Ventajas
de mltiples puertos de dispositivo estndar son obvias.
8. 10 Un dispositivo podr integrar una subcapa de codificacin fsica digital (PCS). Las seales de audio y
vdeo analgico puede ser modulada de cdigo de pulso (PCM) en el subnivel. El PCS subcapa
proporciona cdigos directamente desde entradas analgicas dentro del propio dispositivo. Los cdigos
se guardan en los bferes de datos del dispositivo. La ventaja de un PC al puerto de dispositivo
incorporado es que no hay necesidad de codificacin PCM externo. Adems, estas operaciones se llevan
a cabo en segundo plano, as como un rpido. Mejora el rendimiento del sistema cuando hay entradas de
multimedia en el dispositivo.
9. Un dispositivo para el 10 de mayo de integrar una unidad anloga medios fsicos (PMA) Accesorio para
conectar entradas y salidas directas de voz, msica, vdeo e imgenes. La gran ventaja del PMA es
inherente de que el dispositivo se conecta directamente al soporte fsico. PMA es necesaria para el
procesamiento en tiempo real de las entradas de audio y vdeo en el dispositivo.
En la actualidad. 10 dispositivos tienen caractersticas ms sofisticadas. Disparador Schmitt entradas se
utilizan para la eliminacin de ruido. Dispositivos con tensin de Oia gates y dispositivos mediante la
administracin de la energa prevenir innecesario alternar en las entradas se utilizan para aplicaciones
sofisticadas. Adaptacin de impedancia controlada dinmicamente es una tecnologa nueva y elimina los
reflejos de lnea en la interfaz de los dispositivos. La subunidad SerDes serializa y deserializa salidas y
entradas en los dispositivos. Un puerto puede tener DAA, McBSP, PCS y PMA subunidades para IOs
analgico para dispositivos de audio y vdeo.

3.5

Los dispositivos inalmbricos

Los dispositivos inalmbricos se han vuelto muy comunes en los ltimos aos para la transmisin en serie de
bits.
Los dispositivos inalmbricos de infrarrojos (IR) o frecuencias de radio despus de modulacin adecuado de
bits de datos. IrDA (punto 3.13.1), Bluetooth (Seccin 3.13.2, WiFi, WLAN 802.11 (Seccin 3.13.3) y ZigBee
(Seccin 3.13.4) se han hecho populares los protocolos para la comunicacin inalmbrica de datos bits frente una
fuente al receptor.
Una fuente de infrarrojos se comunica a travs de una lnea de visin y el fototransistor receptor se usa para la
deteccin de rayos infrarrojos. Ejemplo de aplicaciones de comunicacin por infrarrojos del mando a distancia del
televisor de bolsillo incluye controladores y sistemas robticos. Dispositivos de infrarrojos utilizan el protocolo
IrDA.

Los sistemas integrados

152

Las frecuencias de radio comunicarse en distancias cortas y largas. El transmisor y el receptor utilizan antenas
para transmitir y recibir seales y modulador y demoduladores para transportar los bits de datos utilizando
frecuencias de RF. GSM mvil dispositivos inalmbricos utilizan bandas 890-915 MHz, 1710-1785 MHz. o 18501910 MHz bandas. El uso de dispositivos inalmbricos CDMA mvil 2 GHz frecuencias de portadora. Dispositivos
inalmbricos Bluetooth y ZigBee (secciones 3.13.2 y 3.13.4) uso de 2,4 GHz o de frecuencias de 900 MHz.
El nmero de bandas de frecuencia es limitada, mientras que un gran nmero de dispositivos que puede
necesitar para comunicarse. Por lo tanto, el tiempo y la multiplexacin de divisin de frecuencia se utilizan. Es un
mtodo innovador de saltos de frecuencia de radio a travs de un espectro ms amplio, como en dispositivos
Bluetooth. El salto de frecuencias de portadora transmitida entre diferentes canales en una determinada tasa de
saltos. El transmisor modula los bits de datos segn las especificaciones del protocolo. El receptor sintoniza a estas
subieron las frecuencias de portadora a una determinada tasa de saltos y en la misma secuencia de saltos como las
usadas por el transmisor. El receptor demodula y detecta los bits de datos segn el protocolo de la capa fsica
utilizado para la transmisin.
Varios dispositivos inalmbricos red utilice FHSS o DSSS, transmisores y receptores. Populares son protocolos
IrDA, Bluetooth, 802.11 y ZigBee.

3.6

Temporizador y dispositivos de cmputo

La mayora de los sistemas integrados necesitan un dispositivo de distribucin.

3.6.1 Dispositivo de distribucin


Un dispositivo

temporizador es un dispositivo que cuenta el intervalo regular (5T) los impulsos de reloj en su
entrada. Los conteos se almacenan y se incrementa en cada pulso. Tiene bits de salida (en un recuento registro oral
la clavijas de salida) durante el perodo de cuenta. Los condes multiplicado por intervalo 8T da el tiempo. El conteo
inicial de (recuentos) x 5T intervalo proporciona el intervalo de tiempo entre dos instancias cuando el recuento
actual son los bits de lectura y el conteo inicial se leen. Tiene una clavija de entrada (o un bit de control en un control
Register) para restablecer para hacer recuento de todos los bits = 0. Tiene una clavija de salida (o un bit de estado
de registro de estado) para la salida cuando todos los bts count equalO despus de llegar al valor mximo, lo que
tambin significa el timeout en el desbordamiento.

3.6.2 Contador
Un contador es un dispositivo que cuenta la entrada para eventos que pueden ocurrir a intervalos regulares o
irregulares. Los condes da el nmero de eventos de entrada o pulsos desde la ltima vez que se lea.

Ciego contando una sincronizacin contador puede ser un funcionamiento libre (ciego)
dispositivo de conteo con un prescaler para los impulsos de reloj y para comparar los recuentos
con los precargados en una comparar
Registrarse. La prescalar pueden programarse como p = 1, 2, 4, 8, 16, 32 . Mediante la programacin de un
prescaler registrarse.
Divide los pulsos de entrada segn el valor programado de p. tiene una clavija de salida (o un bit de estado en el
registro de estado) para la salida cuando todos los bits es igual a Count 0 despus de llegar al valor mximo, lo que
tambin significa que despus de un tiempo de espera o de desbordamiento. El contador se desborda despus p x 2"
x 5T intervalo. Puede tener una clavija de entrada (o un bit de control en el registro de control) para habilitar una
salida cuando todos los bits es igual a Count count comparar precargados en el registro. En esa instancia, un bit de
estado o la clavija de salida tambin se establece en y una interrupcin puede ocurrir en caso de igualdad de
comparacin. Este dispositivo es til para la alarma o interrupciones del procesador en el preajuste instancias o
despus de intervalos preestablecidos con respecto a otro evento de otra fuente.

Dispositivos y buses de comunicacin para los dispositivos Network

El contador puede ser el funcionamiento libre (ciego) contar con un dispositivo para la entrada de reloj
prescalar
Legumbres, para comparar los recuentos con los precargados en una comparacin de registro, as como para
capturar cuenta
En un evento de entrada. Este dispositivo las funciones son similares a las anteriores, pero adems hay una clavija
de entrada para la deteccin
Un evento y para guardar el conteo en la instancia de ese evento. En este ejemplo, un bit de estado tambin pueden
establecer en y
Se puede producir una interrupcin del procesador para capturar el evento.
El dispositivo anterior es til para la generacin de alarmas e interrupciones del procesador en los tiempos
preestablecidos as como para
Observando las instancias de ocurrencias de los acontecimientos y las interrupciones del procesador para solicitar
el procesador para su uso
Los recuentos capturados en los acontecimientos. La generacin de alarmas puede ser sincronizado con el capturar
eventos de entrada.
Los recuentos de la escritura en el registro comparar hace esto. Cuenta en el registro se establece igual para
capturar registrarse
Cuenta adems cargos adicionales, que definen el intervalo despus de que una alarma se genera.

3.6.3 Temporizador cum Contador


Un ciego contando free running contador con prescaling, comparar y captura de registros tiene una serie de
Un temporizador cum contador es un contador que tiene dos funciones. (I) se cuenta la entrada debido a los
aplicaciones. Es til para la accin o el inicio de una cadena de acciones e interrupciones del procesador en los
acontecimientos en casos irregulares y (2) se cuentan los impulsos de reloj a intervalos regulares. Una entrada o un
casos preestablecidos, as como para sealar los casos de ocurrencias de los acontecimientos y las
bit interrupciones
de estado en el del
dispositivo
de distribucin
controlapara
el modo
como
o contador.
Loseventos
condes
procesador
para solicitarregistro
el procesador
utilizar
los temporizador
recuentos capturados
en los
da el
nmero
de eventos
para
acciones
futuras. de entrada o pulsos desde la ltima vez que se lea. Tiene una clavija de salida (ora bit de
estado de registro de estado) para la salida cuando todos los bits es igual a Count 0 despus de llegar al valor
mximo, lo que tambin significa que el tiempo de espera de desbordamiento o interrupciones al procesador. La
tabla 3.5 enumera doce usos de un dispositivo temporizador. Tambin se explica el significado de cada uso.
Tabla 3.5 Usos de dispositivo temporizador

S.No.
1.

2.
3.

4.
5.
.'V

Aplicaciones y explicacin
Reloj en Tiempo Real (Sistema de funcionamiento como latidos del corazn). [El reloj de tiempo
real es un reloj que, una vez que se inicia el sistema, no se detiene y no se puede restablecer.
Su valor no puede ser recargada. Tiempo Real fluye incesantemente y nunca devuelve'.] Reloj de
tiempo real est configurado para garrapatas usando prescaling bits y rale-establecer los bits en
registros de control apropiado. Seccin 3.8 da los detalles.
Iniciar un evento despus de un tiempo de retardo de preset. Retraso es tan cargado de valor por
conteo.
Iniciar un evento (o un par de eventos o una cadena de eventos) despus de una comparacin entre
el tiempo preestablecido con el valor calculado. Hora preestablecida es cargado en un registro de
comparacin. [es similar a predeterminar una alarma.]
Capturar el valor de recuento en el temporizador de un evento. La informacin
de tiempo (ejemplo de evento), es almacenado en el registro de captura.
Encontrar el intervalo de tiempo entre dos eventos. Los recuentos son capturados en cada evento
en el registro de captura y leer. Los intervalos se encontr as. Una rutina de servicio la cuenta
leer sobre
interrupcin.
Espere
a que
aparezca un mensaje de una cola o buzn o semforo para una hora preestablecida
cuando se utiliza un RTOS. Hay un perodo de espera antes de predefinidas RTOS permite
ejecutar una tarea sin esperar el mensaje. (Seccin 7.4)
{podra)

1541

Los sistemas integrados

J
S.No.
7.
8.
9.

10.
11.

12.

Aplicaciones y explicacin
Watchdog Timer. Se reinicia el sistema despus de un tiempo definido. Seccin 3.7 proporciona
detalles.
Baudio o control de tasa de bits para la comunicacin en serie en una lnea o red. Timeout Timer
interrumpe definir el tiempo de cada baudio.
Contador de pulsos de entrada cuando se utiliza un temporizador, que se lame dando insumos no
peridico, en lugar de las entradas de reloj. El temporizador acta como un contador si, en lugar de
entradas de reloj, las entradas estn dadas para el temporizador para cada instancia para ser
contados.
Programacin de diversas tareas. Una cadena de software-temporizador interrumpe y RTOS utiliza
estas interrupciones para programar las tareas.
El reparto del tiempo de diversas tareas. Un sistema operativo multitarea o multiprogramd presenta
la ilusin de que varias tareas o programas que se estn ejecutando simultneamente conmutando
entre programas muy rpidamente, por ejemplo, despus de cada 16,6 ms. Este proceso se conoce
como cambio de contexto. RTOS interruptores despus de cortes de tiempo preestablecido de una
tarea en ejecucin a la siguiente. Cada tarea puede, por lo tanto, ejecutar en ranuras de tiempo
predefinido.
Multiplexacin por divisin de tiempo (TDM). Dispositivo temporizador se utiliza para
multiplexado de la entrada de un nmero de canales. Cada canal de entrada distintas y se le asigna
una ranura de tiempo fijo para obtener una salida TDM. [Por ejemplo, varias llamadas telefnicas
son las entradas y TDM dispositivo genera la salida TDM para iniciarlo en la fibra ptica.]

Un dispositivo de distribucin tiene el nmero de miembros y la Tabla 3.6 da a los Estados.


Cuadro 3.6 Miembros en un temporizador

Nxm
S.No.
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.

Los Estados
El estado reset (recuento inicial es igual a 0)
Carga inicial obsoleto (recuento inicial cargado)
Estado actual (contando o inactiva o antes de iniciar o despus de desbordamiento o
overrun)
Estado de desbordamiento (recuento recibido para hacer count igual a 0 despus de
alcanzar
nmero mximo)
Estado deelsaturacin
(varios cargos recibidos despus de alcanzar el estado de
desbordamiento)
Ejecucin (activo) o Detener (Bloqueado) estado
Terminado (Hecho) estado (parado despus de un intervalo de tiempo predefinido o
tiempo
de espera)
Restablecer
estado habilitado o deshabilitado (enabled rearme count igual a 0 por una
entrada)
Cargar estado habilitado o deshabilitado (reset count equals recuento inicial tras el tiempo
de
espera)automtico habilitado/deshabilitado el estado (habilitado es igual a Count
Re-Load
recuento inicial tras el tiempo de espera)
La ejecucin de rutinas de servicio activar/desactivar el estado (activado despus del
tiempo de espera o desbordamiento)

Al menos un temporizador de hardware es un dispositivo necesario en un sistema. Es utilizado como un reloj


del sistema. Deje que el nmero de pulsos del reloj del sistema necesarias ante una interrupcin del sistema
iguala numTicks. El temporizador de hardware obtiene la entrada de una seal de salida de reloj del procesador y
se activa el sistema de reloj como por la numTicks preajustado en el temporizador de hardware. En cada sistema de
reloj, la tarea de modo de usuario se interrumpe y el sistema toma el control. El sistema permite el modo privilegiado
acciones y el contexto de la CPU cambia segn el estado predefinido del sistema. El sistema de control acciones
son realizadas por el sistema operativo (software).

Dispositivos y buses de comunicacin para los dispositivos Network

1155

La figura 3.7 muestra el hardware ahora son ms finos y seales de control (hits) y marcas de estado. Visitas
de control se aplican segn las seales del hardware y el correspondiente control de accesos a registro. Bits de
control (o seales) puede ser de 9 tipos. Estos arc: (i) Temporizador enable (activar un temporizador), (ii)
Temporizador start (iniciar el recuento en cada entrada de reloj), (iii) el temporizador (stop) para detener el
recuento de la prxima entrada de reloj, (iv) Prescaling bits (para dividir la seal de frecuencia de reloj del
procesador), (v) hasta contar Enable (Habilitar contando incrementando el valor de recuento en cada entrada de
reloj) (vi) (habilitacin de conteo descendente para reducir en una entrada de reloj), vii) carga activa (para
habilitar la carga de un valor en un registro en el temporizador), (viii)-Timer Interrupt Enable (Habilitar
interrumpir el servicio cuando el temporizador outs (desborde) y alcanza el valor count es igual a 0) (ix) Tiempo
de Activar (habilitar una seal cuando el temporizador llega a desbordamientos (count es igual a 0)| A otro
dispositivo.

Como
perodo de reloj
Evento

UN temporizador de hardware es un contador que obtiene


Entradas a intervalos regulares

Fig. 3.7 seales, reloj-insumos, bits de control y estado banderas en registros o memoria en un
dispositivo temporizador de hardware
Indicador de estado segn la correspondiente seal de hardware time-out del temporizador de hardware. Esta
bandera y seal establecida cuando el temporizador todos los bits (valor de recuento) llegue a 0.
Tabic 3.7 enumera diez formas de los temporizadores para los usos indicados en la Tabla 3.5. Temporizador
de software (SWT) es un concepto innovador.
El reloj del sistema o cualquier otro hardware del dispositivo de calado de garrapatas y genera una interrupcin
o una cadena de interrupciones a intervalos peridicos. Este intervalo es como por el conde-valor . Ahora, la
interrupcin se convierte en una entrada a un reloj SWT. Esta entrada es comn a todos los SWTs que estn en
la lista de SWTs activado. Cualquier nmero de SWTs puede hacerse activa ponen en una lista de principios
activos SWTs. Cada SWT constituir un indicador de estado en su tiempo de espera (count- llegando el valor 0).
La figura 3.7 muestra los bits de control y bits de estado en un SWT. Control SWT bits se establecen segn
la aplicacin. No hay hardware de entrada o salida en un SWT. Una bandera se establece cuando el recuento de
SWT-valor llega a 0 despus de leer el mximo. El cuadro 3.8 muestra todas las variables de SWT. Incluye los
bits de control y marcas de estado. As SWT ha similares y marcas como variables de control en el temporizador
o contador de hardware. ,ff>
Acciones SWT es anloga a la de un temporizador de hardware. Si bien hay un lmite fsico (1,2 o 3 o 4) para
el nmero de temporizadores de hardware en un sistema, SWTs puede ser limitada por el nmero de vectores de
interrupcin proporcionado por el usuario. Procesadores (microcontroladores) definen tambin el vector de
interrupcin de dos o cuatro direcciones SWTs.

Los sistemas integrados

156
L_ _ ^

Sistema
Las
garrapat
as

Cargar software
temporizador con numticks y
habilitar todas las variables
de control
Temporizador de software

Variables de
control
Indicadores de
estado
NumTicks
Contar

___ Yo _ .
: SWT.F |
La memoria
Indicador de estado

Variables de control

Cargar
Habilitar

Habilitaci
n de conteo
ascendente
-\-

JL
.
Habilitacin

de
conteo
descendente

SWT.Load
Habilitar SWTJDLE
El tiempo
Yo
de
Y
\
habilitaci
o
n
de SWT, SWT.ejecutando
SWT.Terminado
interrupci
Contar
n
Activado

SWT.Timeout
Bandera

Ejecutar una rutina de servicio, por ejemplo, para un


Captura de ADC y marco de lectura en la cmara {Figura 4.3(b)]

Fig. 3,8 bits de control, indicadores de estado y variables de un


temporizador de software Cuadro 3.7 Diez formas de un temporizador
S.Nu.

1.
2.
3.
4.

Tipos

Temporizador interno de hardware


Temporizador de software (SWT)
Controlado por el software de usuario
Temporizador de hardware.
RTOS hardware controlado ahora son ms finos. Un RTOS pueden definir los tics del reloj por
segundo de un temporizador de hardware en un sistema. [Consulte la funcin OS.ticks (N) en la
seccin 9.2.1].
5.
Temporizador con time-out eventos peridicos (auto-recarga despus del desbordamiento del
estado). Puede ser un temporizador programable para auto-reload cada vez.
6.
Temporizador monoestable. (sin recargar tras el desbordamiento y estado finalizado.) desencadena
el evento-inpul para activarla al estado de ejecucin de su estado de inactividad. Tambin se utiliza
para la tutela de los retardos de tiempo entre dos stales o eventos. En el caso o alcanzar un estado
One shot y el temporizador se inicia despus de la hora de otro estado o se produce un evento.
7.
Temporizador de accin de conteo ascendente. EllaEsUn temporizador que incrementos en
Cada recuento-inpul
A partir de un reloj.
8.
Temporizador de accin de conteo descendente.Ella Es un temporizador que disminuye
En cada recuento de entrada.
Se necesitan
dispositivos
de con
distribucin
una
de usos en un
sistema que
(i) slo
puede haber
un nmero
9.
Temporizador
el bit de para
estado
deserie
desbordamiento
(bandera),
restablece
automticamente
limitado de temporizadores
de
hardware
presente
en
el
sistema.
Un
sistema
tiene
al
menos
un
temporizador
de
tan pronto como comienza a ejecutar la rutina de servicio de interrupcin.
hardware.
El Temporizador
reloj del sistema
est configurado desde que
tliis.noUn
microcontrolador
10.
con desbordamiento-bandera,
reinicio
automtico. puede tener 2, 3 o 4
temporizadores de hardware. Uno de los formularios de las garrapatas de temporizador de hardware las entradas
del reloj interno del procesador y genera el reloj del sistema. Usando el reloj interno o el reloj de los sistemas,
el nmero de temporizadores software puede ser drven. Estos temporizadores programables por el controlador
de dispositivo de programas,
(ii) Un temporizador de software es un software que se ejecuta y aumenta o disminuye el recuento-variable
(valor de recuento) sobre una interrupcin en un temporizador de salida o en una interrupcin del reloj en tiempo
real. El software tambin genera timer interrupt en desbordamiento del conde-valor o de valor de acabado.
Temporizadores de software se utilizan como dispositivos de distribucin virtual. Hay una serie de bits de control
y un indicador de estado de tiempo de espera en cada dispositivo temporizador.

Dispositivos y buses de comunicacin para los dispositivos Network

I 157

Cuadro 3.8 Variables para los bits de control y estado en un temporizador de software
S.nn.
1.

2,
3.
4.
5.

6.
7.

8.
9.

10.
II.

3.7

32 o 16 o H o I-bit variables
Reposicionar el valor 32/16/8
Valor de carga inicial (numTicks) 32/16/8
Conde-value (valor predeterminado) 32/16/8
Valor mximo de 32/16/8
Valor mnimo de 32/16/8
Ejecute bit para activar temporizador
Bit de habilitacin de interrupcin de temporizador
Bit de habilitacin de reinicio del temporizador
Bit de habilitacin de carga de temporizador
Temporizador reload (despus de terminado el estado) Bit de habilitacin
Indicador de desbordamiento

WATCHDOG TIMER

Watchdog Timer es un dispositivo de distribucin que pueden establecerse para un intervalo de tiempo
preestablecido, y un evento debe ocurrir durante ese intervalo; de lo contrario, el dispositivo generar la seal de
tiempo de espera. Por ejemplo, podemos anticipar que un conjunto de tareas debe finalizar dentro de 100 ms. El
temporizador se desactiva y se detiene en caso de finalizar las tareas dentro de 100 ms. El temporizador watchdog
genera interrupciones despus de 100 ms y ejecuta una rutina que ejecuta las tareas porque no se pudo finalizar en
el intervalo previsto. Una tarea de software tambin pueden programarse como un temporizador watchdog
(Seccin 9.3.3). Un microcontrolador puede tambin prever el Watchdog Timer.
El temporizador tiene una serie de aplicaciones. Una aplicacin en un telfono mvil es que la pantalla se
desactiva en caso de ninguna interaccin GUI lagos lugar dentro de un tiempo especificado. El intervalo se
establece normalmente a 15, 20. 25 o 30 s en un telfono mvil. De esta manera, ahorrar energa.
Otra aplicacin en un telfono mvil es que si un determinado men no est seleccionado por un clic dentro
de un intervalo de tiempo preestablecido, pueden presentarse otro men o un pitido puede ser generada para invitar
a la atencin del usuario.
Una aplicacin en un controlador de temperatura es que si un controlador no lleva a cabo ninguna accin para
cortar la corriente en el tiempo preestablecido, la corriente se desconecta y plante una seal de advertencia, que
indica fallo en el controlador. No cortar corriente puede causar una caldera en la que el agua es calentada hasta
reventar.
Ejemplo 3.8
Microcontrolador 68HC11 tiene un temporizador watchdog en el hardware. Hay dos registros, CONFIG
(Configuracin del sistema) y el registro de control COPRST (equipo funcionando correctamente y
restablecimiento del procesador en caso de fallo). Son para programar las interrupciones del temporizador
watchdog. CONFIG tiene un bit, NOCOP. Se configura cuando el procesador escribe la palabra de
configuracin en la direccin 0x003F. NOCOP es el segundo bit de CONFIG. Si este bit se pone a 0, la CP
instalacin est habilitada. [CP significa equipo (68HC1I) funciona correctamente Watchdog Timer. La CP
Watchdog Timer proporciona para mantener una vigilancia sobre el tiempo de ejecucin del programa de
usuario].
Cuando el programa de usuario tarda ms tiempo en una rutina de cepillada o espera que el usuario
proporciona para almacenar a intervalos deseados; en primer lugar, el 0x55 y luego la OxAA-reset en el
ordenador de control de registro COPRST. Manteniendo un reloj significa que tan pronto como el temporizador
watchdog desbordamientos (tiempos de espera), el programa se restablece el contador de acuerdo con 16 bits
en la parte inferior y superior de bytes que estn precargadas en las direcciones OxFFFA y

Los sistemas integrados

1158!

OxFFFB, respectivamente. Si estos 16 bits son los mismos que los bits OxFFFE y OxFFFF, entonces el
microcontrolador ejecuta las instrucciones vvhich son los mismos que cuando se restablece en potencia o, de lo
contrario, se ejecuta la rutina en la direccin de 16 bits recuperados de OxFFFF OxFFFE y siempre hay fallos
observados en el intervalo de tiempo.
El Oth y 01 bits del registro de opciones, la opcin, en la direccin 0x0039 son la CR( y CR() bits. Si NOCOP
restablece (0) y CR, CR0 = 0-0, el temporizador de tiempo de espera se produce despus de cada 216 pulsos.
Como T = 0,5 (j.s para el procesador cuando la salida de reloj E es 2 1VIH2, el WDT time-out ocurre en 4 de cada
16.384 ms (216 x 0,5 ps) a menos que el software de usuario almacena en intervalos deseados antes de la hora de
salida, primero la J!0x55 y luego la OxAA en el ordenador de control de registro COPRST reset. Esto significa
que el programa de usuario Ml restablece el temporizador watchlog por s mismo despus de terminar la seccin
observada del programa. [Despus de 2ml de impulsos si CR, CRo-= 0-1, 214 pulsos por 1-0, 213 pulsos por 111.
Wm
Un temporizador de vigilancia tiene una serie de aplicaciones y es un dispositivo de distribucin de tal manera
que se establece para un intervalo de tiempo preestablecido y un evento debe ocurrir durante ese intervalo; de lo
contrario, el dispositivo generar una seal de tiempo de espera y la interrupcin para el fracaso en lograr ese
evento en el intervalo de tiempo observados.

3.8

Reloj en tiempo real

Reloj de tiempo real (RTC) es un reloj que hace que las ocurrencias del intervalo regular las interrupciones en su
cada tick (timeout). Una rutina de servicio de interrupcin se ejecuta en cada tiempo de espera (desbordamiento)
de este reloj. Este dispositivo de distribucin una vez iniciado nunca se restablece o nunca se recarga con otro
valor. Una vez que se establezca, ste no es modificado despus. El RTC se utiliza en un sistema para guardar la
fecha y hora actuales. El RTC se utiliza tambin en un sistema para iniciar devolucin de control para el sistema
operativo (SO) despus de que el reloj del sistema perodos predefinidos.

Ejemplo 3.9
(0 suponga que un temporizador de hardware de un RTC para el calendario est programado para interrumpir
despus de cada 5,15 ms. Suponga que en cada garrapata (interrupcin) se ejecuta una rutina de servicio y
actualizaciones en una ubicacin de memoria. En el plazo de un da (86400 s) habr 224 garrapatas, la ubicacin
memoiy wi II alcance 0x000000 despus de alcanzar el valor mximo OxFFFFFF. Dentro de 256 das habr
232 garrapatas, llegar a la ubicacin de memoria 0x00000000 despus de alcanzar el valor mximo
OxFFFFFFFF. Tenga en cuenta que la batera debe utilizarse para proteger la memoria de un perodo tan largo.
(Si) se supone que un RTC tiene que implementar el software utilizando un temporizador. Supongamos que
un temporizador de 16 bits hardware de garrapatas del reloj del procesador [despus de 0.5. Desbordar
desbordamiento y ejecutar una rutina de servicio de interrupcin despus de 215 ps = 32,768 ms. La rutina de
servicio de interrupcin puede generar un puerto poco despus de la salida cada vez que se ejecuta y tambin
pueden llamar a una rutina de software o enva un mensaje para una tarea. Si n = 30, el RTC estableci software
se ejecuta cada 30 x 32,768 ms, lo cual es cerca de 1 s.
(i) un reloj en tiempo real para las interrupciones a intervalos regulares est presente en un microcontrolador.
68HC11 tiene un registro denominado registro de control del acumulador de pulsos, PACTL y dos bits de menor
importancia, RT-RT0 (1 y 0). PACTL es de slo escritura. Si el par RTrRT0 es 00, una interrupcin puede
ocurrir despus de 213 pulsos del reloj e. Si la e impulsos de reloj son de 2 MHz y por lo tanto T es de 0,5 ps, las
interrupciones de un reloj de tiempo real se producen despus de cada 4.096 ms. Si el RT-RT0 par es 01, una
interrupcin puede ocurrir despus de 214 pulsos del reloj E, es decir, despus de cada 8.192 ms. Si el RT-RT0 par
es 10, la interrupcin puede ocurrir despus de 215 pulsos de la

Dispositivos y buses de comunicacin para los dispositivos Network

159

^ __ )
E el reloj, que es despus de cada 16.384 ms. Si el RT|-RT(I par es 11, una interrupcin puede ocurrir despus
de cada 216 pulsos del reloj E, es decir, despus de cada 32,768 ms. El reloj de tiempo real se basa en un
contador de marcha libre en 68HC11. RT|-RT0 controlar su tasa de bits de tictac.
Las interrupciones de un reloj de tiempo real estn activadas o desactivadas por poco en el reloj de control
(CC) registro. Las interrupciones de relojes de tiempo real tambin localmente enmascarada por la 6LH bit,
RTI en registro de mscara de interrupcin timer2, TMASK2. Este bit se configura para desenmascarar y
restablecer para enmascarar las interrupciones de reloj de tiempo real. Si RTI y yo bits permiten la peticin
de interrupcin para el reloj de tiempo real, el tiempo de espera del microcontrolador recupera los bytes
inferiores y superiores de la rutina de servicio de interrupcin en las direcciones OxFFFO direccin de byte)
y superior (para OxFFFI byte inferior). Esta es la direccin del vector de interrupciones de reloj de tiempo
real en 68HCII. La rutina de servicio de interrupcin debe borrar (0) El RTIF, que es la bandera de interrupcin
para el reloj de tiempo real se interrumpe, me la RTIF es un bit de flag register intemipt timer2, TFLG2. La
TFLAG2 est en la direccin 0x0025. Es Jjpor cada interrupcin de la interrupcin del reloj en tiempo real y,
por tanto, debe ser limpiado con el fin de habilitar la siguiente interrupcin Jj antes de regresar de la rutina de
servicio correspondiente y antes del prximo Mj -reloj de tiempo real se produce una interrupcin. Mj
Un reloj de tiempo real (RTC) proporciona el reloj del sistema y tiene un gran nmero de aplicaciones. Se
trata de un reloj que genera el sistema interrumpe a intervalos predefinidos. Una rutina de servicio de
interrupcin se ejecuta en cada garrapata (timeout) o desbordamiento de este reloj. Este dispositivo para calar
una vez iniciado es generalmente nunca restablecer o nunca se recarga a otro valor.

3.9

Sistemas integrados en red

Cada uno de los 10 dispositivos pueden ser conectados a otros utilizando interfaces especficas; por ejemplo, un
dispositivo de 10 y se conecta a un controlador LCD entrelazada, controlador de teclado o controlador de
impresin mediante interfaz especfica, litis comunicacin simplifica el nmero de conexiones y proporciona un
protocolo comn para interconectar diferentes o en el mismo tipo de 10 dispositivos.
Cualquier dispositivo que sea compatible con un sistema bus de 10 pueden aadirse al sistema (suponiendo
un controlador de dispositivo apropiado programa est disponible) y un dispositivo que sea compatible con un
determinado 10 bus puede ser integrada en cualquier sistema que utiliza ese tipo de bus. Esto hace que los sistemas
que utilizan 10 autobuses muy flexible, en contraposicin a las interconexiones directas entre el procesador y cada
10 dispositivos, y permite que el sistema soporte a diferentes 10 dispositivos (dependiendo de las necesidades de
sus usuarios), y tambin permite a los usuarios cambiar los 10 dispositivos que estn conectados al sistema a
medida que cambien sus necesidades.
La principal desventaja de un 10 autobuses y autobuses (en general) es que cada autobs tiene un ancho de
banda fijo que debe ser compartida por todos los dispositivos que se conectan al bus. Peor an, las restricciones
elctricas (longitud de cable y lnea de transmisin) causan efectos autobuses para tener menos ancho de banda
que utiliza el mismo nmero de cables para conectar slo dos dispositivos. Bsicamente, hay un equilibrio entre
la simplicidad de la interfaz y el uso compartido de ancho de banda. Suponer que el ancho de banda del bus es de
200 Mbps. Si el autobs se comunica dos dispositivos simultneamente, entonces lo hace por 100 Mbps por cada
comunicacin.
10 dispositivos se comunican con el procesador mediante un bus de 10, que es independiente del bus de
memoria que el procesador utiliza para comunicarse con el sistema de memoria. Los sistemas integrados
conectados internamente en el mismo 1C o sistemas a muy corto, corto y las largas distancias, y puede ser
Ttetw&pidi mediante los siguientes tipos de 10 autobuses, cada uno funciona de acuerdo a protocolos
especficos.
1. Utilizando un bus serial IO permite que un ordenador o sistema embebido o controlador de interfaz de
red con una amplia gama de 10 dispositivos sin tener que implementar una interfaz especfica para cada
dispositivo 10. Cuando.

Los sistemas integrados

160 i

Los 10 dispositivos de la red de arco sistemas embebidos distribuidos a largas distancias ol 25 cm y


encima, todos pueden comunicarse a travs de un bus serie comn. Es un bus serie tiene muy lew lneas.
Secciones 3.10.1 a 3.10.5 describir los protocolos de comunicacin de bus serie.
2. Utilizando un paralelo 10 bus permite a un ordenador o controlador o sistema incorporado a entrelazado
con una serie de sistemas internos en distancias muy cortas sin tener que aplicar un entrelazado especficos
tor cada IO Device. Seccin 3.11 describe los protocolos de comunicacin de bus paralelo.
3. Usando el Internet o intranet, un ordenador, o controlador de dispositivo del sistema incorporado 10 puede
entrelazar globalmente y puede conectarse con otros sistemas o equipos y amplia gama de dispositivos en
los sistemas distribuidos. Seccin 3.12 describe estos sistemas.
4. Utilizando un protocolo inalmbrico permite a un ordenador de mano, o controlador Embedded System
10 Dispositivo de interfaz de red y con un nmero de sistema porttil de 10 dispositivos en distancias
cortas de hasta 100 m utilizando una red de rea personal inalmbrica (WPAN) Protocolo, sin tener que
implementar una interfaz inalmbrica especfica para cada dispositivo 10. Seccin 3.13 describe los
protocolos de comunicacin de bus inalmbrico.
Los sistemas integrados son distribuidos y en red mediante un bus serie o paralelo o protocolo inalmbrico
software y hardware adecuado.
RAM | ROM i j
-j j -------------------------- -! L -2 el bus de memoria 1 '
Bus de direcciones j 1
.,|m a l o s :
Un sistema de
procesador

El bus de datos ;
M e

Bus de control j
1
_
. de. bus. serie
. . . .j (por
Controlador
ejemplo. I USB o I2C o CAN)
10 Bus de serie

]r

1 10 | Interfaz de
Dispositivo.! 1

| IO Device Interface
11
Procesador | 1 procesador de
El sistema B j | Sistema C

| Interfaz de
dispositivo 10

N
| Procesador de
| Sistema D

JL

Interfaz de
dispositivo 10

.J!_

Procesador de
Sistema E

Fig. 3.9 Un procesador de sistema integrado conectado al bus de memoria de sistema y de red a
otros sistemas a travs de un bus serie.

3.10 Los protocolos de comunicacin de bus de serie


La figura 3.9 muestra un procesador de sistema integrado conectado al bus de memoria de sistema y de red a otros
sistemas a travs de un bus serie. Secciones 3.10.1 a 3.10.5 describir buses serie popular.

Dispositivos y buses de comunicacin para los dispositivos Network

3.10.1 L2C Bus


Supongamos que hay una serie de circuitos de dispositivos en una serie de procesos en una planta, un 1C para
cada medicin de temperaturas y presiones. Estos ICs mutuamente a travs de una red comn de bus serial
sincrnica. I2C (entre IC connect) bus es un bus popular para estos circuitos. Hay tres estndares de bus I2C:
Industrial I2C de 100 kbps, 100 kbps SM l:C. y 400 kbps l2C. El I2C fue originalmente desarrollada por Philips
Semiconductors.
I:C tiene dos lneas de autobs que llevan sus seales- es una lnea de reloj y uno es de datos bidireccional.
Hay un protocolo lor I'C bus. La figura 3.10(a) muestra las seales durante una transferencia de un byte al usar
L2C bus.
Cada dispositivo tiene una direccin mediante la cual tienen lugar las transferencias de datos. El maestro
puede abordar otros 127 esclavos en una instancia. Tiene un elemento de procesamiento que funciona como un
controlador de bus o un microcontrolador con interfaz de bus I2C del circuito. Cada esclavo tambin puede
opcionalmente tener un controlador de bus I2C y el elemento de procesamiento. Un nmero de maestros tambin
pueden conectarse al bus. No obstante, en cualquier caso, slo puede haber un maestro, que es uno de los que
inicia una transferencia de datos en serie (SDA) y la lnea de datos que transmite la serie SCL (pulsos de reloj).
Cuadro
3.9 Comienzo del bit de inicio segn la Tabla 3.9.
Desde el maestro o esclavo, una trama de datos tiene
campos
Figura 3.10(b) Se muestra el formato de los bits en el bus I2C.
Y su longitud de campo
Primer campo de l-bit
Segundo campo de 7 hits
Tercer campo de control 1 hit
Cuarto campo de mando l hit
Quinto campo de 8 hits
Sexto campo de l-bit

Sptimo campo de l-hit

Explicacin

Bit de inicio es similar a la de un UART.


Se llama el campo de direccin. Define la direccin de esclavos enviados a la
trama de datos (de muchos bytes) por el maestro.
Define si un ciclo de lectura o escritura est en progreso.
Bit siguiente define si los datos actuales es un acuse de recibo (del esclavo)
Se utiliza para el dispositivo IC bits de datos.
Es un acuse de recibo negativo (NACK) de bits del maestro. Si est activo,
entonces reconocimiento despus de una transferencia no es necesario desde el
esclavo, de lo contrario, se espera confirmacin del esclavo.
Es un bit de parada como en un UART.

La desventaja de este bus es el tiempo tomado por un algoritmo en el master de hardware que analiza los bits
a travs de I2C en el caso de que el esclavo no proporciona el hardware para el hardware que lo soporta. Algunos
admiten el protocolo ICs y algunos no lo hacen. En ese caso, los circuitos de interfaz para los ICs tambin son
necesarias. Existen tambin controladores de colector abierto en el mster. Por lo tanto, una resistencia de pullup de 2,2 K o un circuito activo para tirar hacia arriba de la lnea de la lgica I para en cada lnea es esencial.
I2C es un bus serie para la interconexin de ICs. Tiene un bit de inicio y un bit de parada como en un UART.
Tiene siete campos para el inicio, la direccin de 7 bits, definiendo una lectura o escritura, definiendo un byte
como reconocer un byte, el byte de datos, NACK y extremo.

3.10.2 CAN BUS


Nmero de dispositivos y controladores se encuentran y estn distribuidas en un coche. Un automvil utiliza
nmero de controladores embebidos distribuidos, incluyendo aquellos para los frenos, motor, energa elctrica,
lmparas, control de temperatura interior, aire acondicionado, puerta delantera, tablero de instrumentos, la
pantalla del panel de visualizacin del contador y el control de crucero. Controladores Embebidos de red debe a
travs de un bus. CAN (Controller area network) bus es un bus estndar de red distribuida. Se utiliza
principalmente en la electrnica de automocin. Tambin se utiliza la electrnica mdica y la planta industrial
de controladores.

Los sistemas integrados

(a)
I ----------------- 8T --- ------------ ----- --------- 8T
Tiempo

- 7T ---------------Direccin
secundaria
Bit de inicio
Direccin de inicio
poco
Leer/escribir indicando
Bit bit de acuse de
recibo

Fig. 3.10

(a)
(b)

h
ri
\|

Bits de
datos
Bit NACK

Am

Bit de
parada.

Seales durante una transferencia de un byte cuando se utiliza el 12C (Inter Integrated Circuit) bus
Formato de SDA bits en el bus L2C

El bus CAN | Figura 3.11 (a) | Red dispone de una lnea de serie, que es bi-direccional. CAN bus tiene varias
funciones de multidifusin y maestro. Un dispositivo puede utilizar el controlador CAN recibe o enva un bit en
cualquier instancia por operar con la mxima tasa de I Mbps (perodo de bits = I ps). Se emplea una conexin de
par trenzado de 120 Ohmios de impedancia de lnea en cada nodo de controlador. La pareja puede funcionar hasta
una longitud mxima de 40 m.
1. Puede tirar la lnea serie a un nivel 1 lgico por un resistor (activo o pasivo) entre la lnea y +4,5 V a +12.3
V. Lnea est en lgica 1 en su estado inactivo, tambin llamado el estado recesivo.
2. Cada nodo tiene un bfer-gate entre un polo de entrada y una posible lnea de serie. Un nodo obtiene la
entrada en cualquier instancia desde la lnea tras detectar el momento en el que la lnea es derribado a 0.
Este ltimo se denomina estado dominante.
3. Cada nodo tiene un controlador actual circuito entre la clavija de salida y la lnea serie. El nodo enva un
bit a la lnea tirando de la lnea 0 por su controlador para un per odo de bits. Se utiliza un transistor NPN
de conduccin actual transistor, el emisor de los cuales tambin se conecta a la lnea de tierra y el colector
se conecta a la lnea. Utilizando un controlador (compuesto de un bfer Puerta inversora conectado a la
base del transistor NPN), el nodo puede tirar la lnea 0, que es lo contrario a la lgica I en su estado inactivo.
Esto permite que otros nodos sentido la entrada.
4. Un nodo enva los bits de datos como una trama de datos. Las tramas de datos siempre comienzan con I y
siempre terminan con siete os. Entre dos tramas de datos, hay un mnimo de tres campos. La Tabla 3.10
muestra los detalles de cada campo en una trama CAN. En la figura 3.11(b) Se muestra el formato de los
bits de una trama CAN.
5. La lnea CAN-bus suele interconectar^a AAN controlador entre la lnea y el nodo host. (Un nodo host es
uno que tiene controlador para utilizar como bus master.] La lnea proporciona entrada y salida obtiene
durante la recepcin y la transmisin usando capas f sica y de enlace de datos en el nodo host. El
controlador CAN tiene una unidad de interfaz de bus (BIU compuesto de bfer y conductor), controlador
de protocolo, estado-cum-registros de control, el receptor-buffer y objetos de mensaje. Estas unidades se
conectan el nodo del host a travs de la interfaz de host del circuito.

Dispositivos y buses de comunicacin para los dispositivos Network

6. Hay un mtodo de arbitraje denominado C'SMA/AMP (Acceso mltiple con deteccin de portadora y
Arbitraje sobre la prioridad del mensaje). Un nodo slops transmitir un bit dominante de deteccin, lo que
indica que otro nodo est transmitiendo.
Tabla 3.10 cada campo en una trama CAN
Y su longitud de campo
Primer campo de 12 hits

Segundo campo de 6 hits

Tercer campo de 0 a 64 hits

Funcin
Este campo es el arbitraje, que contiene el paquete de 11 -Pulsa la direccin de destino y el
RTR (paquetes de bits significa un conjunto de bits enviados en el autobs). RTR significa
'Transmisin remota solicitud'. La recepcin dirigida dispositivo est en direccin de destino
especificada en 11 bits y RTR subcampo se define sobre la base de si el byte de datos que se
va a enviar es una base de datos para el dispositivo o una peticin al dispositivo. 1 l-bit
direccin identifica el dispositivo en el que se env an los datos o la solicitud. Cuando un RTR
bit es 1, significa que este paquete es para el dispositivo en la direccin de destino. Si este
bit est a 0 (estado dominante) significa que este paquete es una solicitud de datos desde el
dispositivo.
Es campo de control. El primer bit es identificador de extensin. El segundo bit es siempre
1. Los ltimos 4 bits son el cdigo de longitud de datos.
Su duracin depende de la longitud de los datos de cdigo en campo de control.

Cuarto campo (tercera si los datos Es CRC (Verificacin de redundancia cclica) campo de CRC de 15 bits, adems de l-bit
Campo no tiene poco presente)
Bit de delimitador. El nodo receptor utiliza para detectar errores, si los hubiere, durante el
De 16 bits
La transmisin.
Quinto campo de 2 hits

Sexto campo de 7 hits

Firsi bit ACK es la ranura". El remitente enva como yo y el receptor, el cual debe enviar 0
en este siot cuando delects error en recepcin. El remitente, deteccin alter 0 en la ranura de
ACK, retransmite la trama de datos. El segundo bit ACK es el delimitador de bits". Seala
el fin del campo ACK. Si el nodo de transmisin no recibe ninguna confirmacin de datos
dentro de un determinado marco de ranura de cal, debe retransmitir.
Este es el final de la trama y la especificacin tiene siete os.

CAN es un bus serie para la interconexin de una red central de control. Es ampliamente utilizado en los
automviles. Tiene campos para arbitraje de bus los bits, bits de control para la direccin y longitud de datos,
bits de datos, bits de comprobacin CRC, reconocimiento de bits y bits de finalizacin.

3.10.3 Bus USB


USB (Universal Serial Bus) es un bus entre el sistema host y el nmero de dispositivos perifricos interconectados.
Un mximo de 127 dispositivos pueden conectarse a un host. Proporciona una rpida (hasta 12 Mbps) y as como
una baja velocidad (hasta 1,5 Mbps) transmisin y recepcin serie entre el host y los dispositivos serie. Un host
USB, que incluye el controlador para funcionar como bus master puede conectar tarjetas de memoria flash, pencomo dispositivos de memoria, cmara digital, impresora, ratones, PocketPC y juegos de video. Thre son tres
normas: USB 1.1 (baja velocidad de 1,5 Mbps canal 3 m junto con una alta velocidad de 12 Mbps, 25 m de
canal): USB 2.0 de alta velocidad (480 Mbps), canal de 25 metros y Wireless USB de alta velocidad (480 Mbps a
3 m).
Protocolo USB tiene esta caracterstica-un dispositivo USB puede l hot enchufado (adjunta), configurar y
utilizar, restablecer, reconfigurar y utilizarlo; pueden compartir el ancho de banda con otros dispositivos,
mientras que otros estn separados (en funcionamiento)

Los sistemas integrados

Controlador integrado de I-1


Un sistema
|-|

Controlador CAN

1 Mbps multicast, multi-master, retransmisin automtica de datos errneos


120 Ohmios de impedancia de lnea de par trenzado CAN-H y CAN-L cables Serial bus de E/S

Controlador CAN

Controlador CAN

Rr " n_

Embedded
Sistema controlador B
(controlador de motor)

'/H i

Controlador CAN

Embedded
Sistema controlador C
(controlador de frenos
antibloqueo)

Embedded
Sistema controlador D
(tablero)

Controlador CAN

[_!
Embedded
Sistema controlador
de E
(transmisin)

CRC de 15 bits, 1 bits 1 -

Campo de arbitraje de 12 bits (11 bits bit RTR plus de

delimiter bit ACK, ranura 1-bit

7 bits 0000000 de delimitador

identificador)

Campo de control de 6 bits

FM.iM

0- el cdigo de longitud de datos de 64 bits.


II
Trama de datos (identificador de 11 bits estndar)
Estado
R (recesiva) D
(dominante) '

I-ig. 3.11

<t>)

de fin de trama mnima entre 3


bits separacin del bastidor
Fotograma
siguiente

_____________Tiem
po

(a) la red durante una transferencia de datos cuando se utiliza la CAN (Controller Area Network).
Bus (B) Formato de los bits en CAN bus

Y reconectados. Acoplamiento y desacoplamiento puede hacerse sin necesidad de reiniciar. Los programas host
compartir el ancho de banda entre los dispositivos conectados. Un dispositivo USB puede ser alimentada por bus o
auto-alimentado. Adems, existe un software de administracin de energa en el host para puertos USB.
Host USB se conecta a dispositivos o nodos con puerto USB-drving el software y el controlador de host
conectado a un hub raz. Un hub es uno que se conecta a otros nodos o hubs. Una topologa de rbol formas como
sigue. El concentrador raz se conecta al hub y nodo nivel I. Un concentrador en el nivel I se conecta al hub y el
nodo en el nivel 2, y as sucesivamente. Slo los nodos estn presentes en el ltimo nivel. El concentrador de raz y
cada hub a un nivel se conectan en una topologa en estrella, con el siguiente nivel. La estructura de datos del
descriptor del dispositivo USB tiene una jerarqua, que es como sigue: en el descriptor de dispositivos toot que tiene
el nmero de descriptores de configuracin y cada descriptor de configuracin tiene el nmero de descriptores de
interfaz y que tiene el nmero de descriptores de punto final.
Cable de bus USB tiene cuatro cables, uno de +5 V, dos pares trenzados y uno de tierra. Hay impedancias de
terminacin en cada extremo que se aplican segn la velocidad del dispositivo. Las interferencias electromagnticas
(EMI) se utiliza cable blindado de 15 Mbps para dispositivos USB.
Seales serie no retorna a cero ((n NRZI) y el reloj est codificado insertando un cdigo sncrono (SYNC) campo
antes de cada paquete. [Consulte la Tabla 3.2]. El receptor sincroniza su reloj continuamente recuperacin de bits.
La transferencia de datos es de cuatro tipos: (a) controla la transferencia de datos (b) transferencia de datos masivos
W) interrumpir la transferencia de datos impulsada (D) Isosynchronous transferencia.
USB es un bus de encuestados. El circuito controlador de host sondea peridicamente la presencia de un
dispositivo, de acuerdo a lo programado por el software. Se enva un paquete de token. El token se compone de
campos para el tipo, direccin y direccin de dispositivo USB

-ifr que yo irif iltwifi frfiTWii--^^^.

(a)
Bit de inicio R A D transicin

Dispositivos y buses de comunicacin para los dispositivos Network

165

Nmero de punto final del dispositivo. El dispositivo hace el enlace a travs de un apretn de manos Paquete,
indicando xito o el fracaso de la transmisin. Un CRC celebrada en una base de datos permite la transmisin
pricket la deteccin de errores en el receptor.
USB admite tres tipos de tubos-(al 'flujo' sin USB-protocolo definido. Se utiliza cuando la conexin ya est
establecida y el flujo de datos se inicia, (b) 'Default' de control para proporcionar acceso,
(e) 'Mensaje' para controlar las funciones del dispositivo. El host configura cada tubo para los siguientes casos:
(a) ancho de banda de datos a utilizarse, (b) la transferencia y el tipo de servicio (c) tamaos de bfer.
Wireless USB es una extensin inalmbrica de USB 2.0 y opera en la banda ultra ancha (UWB) 3.1 a 10.6
GHz frecuencias. Se utiliza para el corto alcance de la red de rea personal (alta velocidad de 480 Mbps, 110 Mbps
o 3 m, 10 m de canal). FCC ha recomendado un host wire adapter (HWA) y un dispositivo adaptador de cable
(DWA), que proporcionan soluciones de USB inalmbrico. Wireless USB tambin admite dispositivos de doble
funcin (DRDs). Un dispositivo puede ser un dispositivo USB, as como una capacidad limitada de host. Por
ejemplo, una cmara digital USB inalmbrico utiliza un host USB cuando se conecta a una impresora y un
dispositivo USB cuando est conectado a un ordenador personal. Un dispositivo USB inalmbrico se utiliza para
proporcionar conectividad de Internet entre la computadora porttil o equipo de la red y el proveedor de servicio
mvil.
USB es un bus serie que interconecta un sistema. Se conecta y desconecta un dispositivo de la red. Se utiliza
un concentrador raz. Nodos que contienen los dispositivos puede ser organizado como una estructura de
rbol. Es usada principalmente en red los dispositivos IO como lector en un sistema informtico. Wireless
USB se usa para conexiones remotas sin cables.

3.10.4 FireWire - IEEE 1394 estndar de bus


Cmaras de vdeo digitales, videocmaras digitales, discos de vdeo digital (DVD), set-top boxes y sistemas de
msica perifricos multimedia, las ltimas unidades de disco duro, impresoras y necesita un bus de alta velocidad
de interfaz estndar para comunicarse directamente a un ordenador personal. FireWire (IEEE 1394b) es un estndar
para 800 Mbps isosynchronous serie de transferencias de datos.
Un puerto IEEE 1394 FireWire puede funcionar hasta a 400 Mbps y las ltimas mquinas incluyen puertos
FireWire que admiten el estndar IEEE 1394b de labio que operan a 800 Mbps. Desde FireWire puede transferir
datos a una velocidad garantizada, tambin se utiliza en dispositivos en tiempo real, tales como las transferencias
de datos de dispositivos de vdeo.
Una sola interfaz CAN puerto 1394 hasta 63 dispositivos FireWire externos. Es compatible con plug and play
y conexin en caliente. Tambin proporciona autoalimentado y bus-powered soporte en el autobs.
Alta velocidad de FireWire es un bus serie de 800 Mbps para interconectar un sistema con dispositivos y
sistemas multimedia en streaming.

3.10.5 Buses de alta velocidad de serie avanzada


La seccin 3.2.6 se describe SDIO. que es un avanzado bus serie de alta velocidad para dispositivos de bolsillo.
Puede necesitar un sistema incorporado para conectar varios gigabits por segundo (Gbps) transceptor (transmisin
y recepcin) de interfaces de serie. Productos ejemplares son LAN inalmbrica, Gigabit Ethernet, SONET (OC48, OC-192. OC-768). Los siguientes son ejemplos de los protocolos de bus avanzado.
1. IEEE 802.3-2000 [ I Gbps de ancho de banda Gigabit Ethernet MAC (Media Access Control)] para el
desempeo de 125 MHz
2. IEE PS02.3oe proyecto 4.1 [10 Gbps Ethernet MAC[ a 156.25 MHz doble direccin rendimiento]
3. El PIEA802.3oedraft4.1 [12.5 Gbps Ethernet MAC] para cuatro canales de 3,125 Gbps por canal
transceptor rendimiento]
4. XAUI (Unidad de accesorio de 10 Gigabits)
5. (10 Gigabit XSBI Serial Bus Interchange)
6. SONET OC-48
7. SONET OC-192
8. SONET OC-768
9. ATM OC-12/46/192

1166

Los sistemas integrados

3.11 Dispositivo de bus paralelo de protocolos de red de comunicacin


paralela con ISA, PCI, PCI-X Y AUTOBUSES AVANZADA
Un sistema informtico se conecta a alta velocidad con otros subsistemas con un alcance de 10 dispositivos en
distancias muy cortas (<25 cm) usando un bus paralelo sin tener que implementar una interfaz especfica para cada
dispositivo 10. Cuando los dispositivos de baja en los subsistemas integrados distribuidos estn conectados en red,
todos pueden comunicarse a travs de un bus paralelo comn. Un bus paralelo tiene un gran nmero de lneas como
por el protocolo. Las figuras 3.12(a) y (b) muestran el procesador de un sistema incorporado de un bus de memoria
de sistema conectado a la red y a otros subsistemas a travs de un PCI bus paralelo mediante puente PCI y AMBAAPB puente, respectivamente.

Fig. 3.12 (o) y (b) un procesador de sistema integrado conectado al bus de memoria de sistema y de red con otros
subsistemas mediante el uso de PCI bus paralelo y AMBA-APB puentes

Necesitamos un bus de interconexin dentro de PC o sistema incorporado a una serie de 10 tarjetas basadas en
PC, sistemas y dispositivos. Este autobs debe estar separada del sistema-bus que conecta el procesador a los
recuerdos. El

Dispositivos y buses de comunicacin para los dispositivos Network

Bus de sistema de bus de interconexin y funcionan en diferentes niveles de velocidad. Hxcmplary dispositivos
son el monitor, impresora, dispositivos de caracteres, los subsistemas de red, mdem, tarjeta de video, tarjeta
controladora de disco duro, thin client, tarjeta de captura de vdeo digital, streaming muestra, l()()/10 Base T tarjeta
y tarjeta utilizando DEC 21040 PCI Ethernet LAN Controller. Cada uno de estos dispositivos, que realiza una
funcin especfica, puede contener un procesador y dri ves por software. Cada dispositivo tiene rango de
direcciones de memoria especfica, vectores de interrupcin especficos (pre-asignados o auto configurado) y
dispositivos 10 direcciones de puerto. Un autobs de especificaciones adecuadas y protocolo estas interfaces al
sistema host o equipo.
Un interruptor, popularmente llamado PC! Interfaz de bus, los interruptores a la comunicacin del procesador
con el bus de memoria para bus PCI. En la mayora de los sistemas, el procesador tiene un nico bus de datos que
se conecta a un mdulo de conmutador como el puente PCI se encuentra en muchos sistemas de PC, aunque
algunos procesadores integran el mdulo de conmutador en el mismo circuito integrado como el procesador para
reducir el nmero de fichas necesario para construir un sistema, reduciendo as el costo del sistema. El interruptor
se comunica con la memoria a travs del bus de memoria dedicada y conjunto de cables que transferir datos entre
estos sistemas. Otra fO autobs conecta el conmutador a IO Devices. Independiente de la memoria y los buses de
E/S se utilizan porque el sistema de E/S est diseado para ofrecer la mxima flexibilidad, para permitir que el
mayor nmero posible de dispositivos de E/S diferente a la interfaz para el ordenador, mientras que el bus de
memoria se ha diseado para proporcionar el mximo ancho de banda entre el procesador y la memoria del sistema.
Dos viejos autobuses de interconexin para la comunicacin entre el host y un dispositivo son ISA y EISA
(Extended ISA). Una nueva interconexin para el bus PCI o PCI/X. [Una variante de es Compact PCI (cPCI).|
secciones 3.12.1 a 3.12.4 describir tres protocolos de comunicacin bus paralelo.
Bus paralelo interconecta dispositivos y perifricos de E/S a travs de distancias muy cortas y a alta
velocidad. ISA, PCI y armar los autobuses son ejemplos de buses paralelos. Interfaces de bus paralelo del
bus de memoria de sistema a travs de un puente o un circuito de conmutacin.

3.11.1 ISABus
Bus ISA (Arquitectura estndar utilizado en IBM) slo se conecta a un dispositivo integrado que tiene una 8086 o
80186 o 80286, y en el que el procesador El procesador IBM PC arquitectura de direccionamiento y abordar las
limitaciones y las asignaciones de direcciones de vectores de interrupcin son tenidas en cuenta. No hay
direccionamiento geogrfico.
La limitacin de acceso a memoria por un sistema mediante el bus ISA de la IBM PC original fueron como
sigue: El bus ISA los accesos de memoria pueden ser en dos rangos, 640 A I y 15 MB a 16 MB. La antigua gama
tambin se superpone con el intervalo utilizado por placas de video y BIOS. ]Nota: sistema operativo Linux no
soporta el segundo rango para acceder directamente a un dispositivo.
Las limitaciones de la direccin del puerto de E/S para dispositivos son como sigue: El procesador 8086 a
80286 IO ha asignado, no IOs IOs asignados a la memoria. Aunque el conjunto de instrucciones proporciona para
IO instrucciones para direcciones de E/S de 64 kB, el IBM PC ignora la configuracin de las lneas de direccin
AK)a Al5 y estos no son decodificados. Por lo tanto, slo las direcciones de los puertos IO 1024 estn disponibles.
Un esquema de direccionamiento hexadecimal con tres mordisquear direccionamiento entre 000 a 3FF slo puede
ser utilizado por un dispositivo. La una,(, Als bits son, por lo tanto, irrelevante. Las siguientes son las direcciones
asignadas en la arquitectura estndar de IBM (ISA).
1. Las direcciones asignadas son OxOOO-OxOOF para chip de DMA 8237. Las direcciones de otros
dispositivos son como sigue.
2. 0x020-0x021 direcciones asignadas son de controlador de interrupcin programable 8255. Hex 0x0400x043 para temporizador 8253.
3. 0x060-0x063 para puerto paralelo interfaz paralela programable.
4. El hexa-direcciones decimales 080-083,0A0-0AF, 0C0-0CF, 0E0-0EF asignados son para los
componentes de la motherboard.

1168

Los sistemas integrados

5 Direcciones reservadas de perifricos son hex 220-24F. 278-27F. 2HI-2F7. 3CO-3CF y 3E0 a 3F0.
6 Las direcciones asignadas son hex 2F8-2FF y 3F8-3FF lor puertos COM de IBM.
7. Las direcciones son hexadecimales. 320-32F y 3F0-3F7 para disco duro y de disquete, respectivamente.
8. Slo 32 direcciones entre 0x300 a 0x31F estn disponibles para prototipo de tarjeta: por ejemplo, tarjeta
de ADC.
0. Las direcciones asignadas estn entre 380-389 hexagonales y 3A0-3A9 para la comunicacin sincrnica.
10. Synchronous Data Link Control (SDLC) direcciones asignadas estn entre hex. 380-38C.
11. Monitor de puertos estn dentro de 380-38F (monocromo) y 3D0-3DF para (el color y los grficos).
Existe una disponibilidad limitada de vectores de interrupcin en la IBM PC de la familia 80x86. Slo 256
son vectores
Disponible. Funciones del servicio de interrupcin son ahora compartidos a nivel de software: por ejemplo, SWT
interrupciones. Especificaciones ISA original no lo permitan.
EISA es un bus de datos de 32 bits y lneas de direccin versin de ISA, y dispositivos (sistema utilizando
este bus para IOs) tambin son compatibles. Un controlador de dispositivo EISA primero comprueba la
disponibilidad del bus EISA en el equipo host o sistema. Apoya el intercambio de funciones de interrupcin, SCI
(Interfaz de comunicacin serie y Ethernet) controlador de dispositivos. Unix y Linux admiten el bus EISA-driven
tarjetas y dispositivos.
Los buses ISA y EISA son compatibles con la arquitectura de IBM. Se utiliza para conectar los dispositivos
siguientes direcciones de E/S y de los vectores de interrupcin como por la arquitectura de PC de IBM. EISA
es la extensin de 32 bits de ISA. Tambin es compatible con las funciones de interrupcin de software y
3,11.2
PCI y PCI/X Autobuses
dispositivos Ethernet.
Recientemente, el bus paralelo sncrono ms utilizados en el sistema informtico para la interconexin de
dispositivos basados en PC es PCI (Peripheral Component Interconnect). PCI proporciona un rendimiento superior
de la EISA. Es casi independiente de la plataforma. A diferencia de la ISA, que depende de la plataforma de PC de
IBM, los vectores de interrupcin. Direcciones de E/S y las asignaciones de memoria. Su velocidad de reloj es la
ms cercana a la submultiple del reloj del sistema. PCI proporciona tres tipos de interfaces paralelo sncrono. Sus
versiones arco 32/33 MH/. 64/66 MHz. PCI-X 64/100 MHz, Super 264/528 Mbps PCI v2.3 de 3,3 V (en un bus de
64 bits), 132/264 (32 bits) y bus PCI-X Super V 1.01 a 800 MBps bus de 64 bits 3.3 V.
Dispone de bus PCI de 32 bits de bus de datos extensible a 64 bits. Adems, dispone de direcciones de 32 bits
extensible a 64 bits. Su protocolo especifica la interaccin entre los diferentes componentes de un ordenador. Una
especificacin es la versin 2.1. Su rendimiento es sncrono/asncrono hasta 132/ 528 MB/s (33 m x 4 m x 8/ 66
bytes/s). Opera en 3,3 V seales. Una aplicacin tpica es una tarjeta PCI ejemplar tiene 16 MB de memoria Flash
ROM con un router gateway para una red LAN.
Un controlador PCI pueden acceder a hardware automticamente, as como por las direcciones asignadas por el
programador. El PCI caracterstica de deteccin automtica de los sistemas de interconexin y la asignacin de
nuevas direcciones codingadevice es importante para el conductor. El bus PCI, por lo tanto, simplifica la adicin y
supresin (apego y desapego) de los dispositivos perifricos del sistema. Un fabricante registra un nmero global
de dispositivo PCI o tarjeta, as como, 68CII11 o 80386 son globalmente los nmeros registrados. Un registro de
16 bits en un dispositivo PCI identifica este nmero para permitir que el dispositivo se detecta automticamente.
Otro registro de 16 bits es para un nmero de ID de dispositivo. Estos dos nmeros permiten que el dispositivo que
efecte la deteccin automtica en su ordenador host. Cada dispositivo puede utilizar controlador FIFO con bfer
FIFO para lograr el mximo rendimiento.
Un dispositivo o host identifica su espacio de direcciones por tres nmeros de identificacin (i) los puertos IO,
ubicaciones de memoria (ii) y (iii) los registros de configuracin del total de 256 B con un identificador nico de 4
bytes. Cada dispositivo PCI tiene la asignacin de espacio de direcciones de 256 bytes para acceder a ella a travs
del ordenador host. La caracterstica nica de bus PCI es su configuracin de espacio de direcciones. Un nico tipo
de interrupcin asignado (un nmero) controla una interrupcin. Por ejemplo, interrumpir el tipo 3 tiene la direccin
del vector de interrupcin OxOOOOC y cuatro bytes en la direccin que se especifique el servicio de interrupcin

1169 !

Dispositivos y buses de comunicacin para los dispositivos Network

Direccin de rutina. Tipo de interrupcin puede l entre 0x00 y OxFF. Un nmero de registro de configuracin 60
almacena un byte para la interrupcin de tipo n(PCI). El dispositivo PCI o host cuando interrumpe gestiona la
interrupcin de tipo n(pei). La figura 3.13 muestra la configuracin estndar de 64 bytes se registra en un
dispositivo PCI. Las siguientes son las abreviaturas usadas en la figura.
VID: ID del proveedor. Dll): ID de dispositivo. RID: ID de revisin. CR: registro comn. CC: Cdigo de
clase. SR: Registro de estado. CL: lnea de cach. LT: latencia temporizador. BIST Entrada: Base de
garrapata. HI: Tipo de cabezal. HA.: direccin base. CBCISB: Base de tarjetas CI puntero. SS: Sub
Sistema. ExpROM: ROM de expansin. MINjGNT: tiempo mnimo garantizado. MAX_CNT: Mximo tiempo
garantizado.
VID, DID, RID, CR, SR, y HT son obligatoriamente configurado. El resto son opcionales.

EXP ROM " BA BA4


*- BA0 VID

IRQ HT Max- lnea IRQ


GNT pin

-". --------- Reservados ------------ BA5 -HBA,


CR SR librar -t- CC CL

- CBCISP SSVID SSDID


BA2

BA3 LT HT 1 BIST

0x0 0x1 ------------------------------------------------------------------------------ OxF


Fig. 3.13 64 bytes a registros de configuracin independiente del dispositivo estndar en un dispositivo PCI o host

Un controlador PCI debe tener acceso a un dispositivo a la vez. As, todos los dispositivos dentro de la
computadora host pueden compartir las direcciones de los puertos IO y ubicaciones de memoria pero no puede
compartir la configuracin de registros. Esto significa que un dispositivo puede modificar otros registros de
configuracin, pero puede tener acceso a otros recursos del dispositivo o compartir el trabajo o ayudar al otro
dispositivo. Si hay razones para no hacerlo, un controlador PCI puede cambiar la configuracin predeterminada de
inicio las asignaciones de las transacciones.
Un dispositivo puede inicializar en tiempo de arranque. Esto ayuda a evitar cualquier colisin de direcciones.
Un dispositivo PCI en el arranque deshabilita su interrupcin. Su espacio de direcciones es inaccesible y slo los
registros de configuracin de espacio permanece accesible. BIOS PCI con el dispositivo realiza las operaciones de
configuracin y, a continuacin, memoria y espacios de direcciones mapa automticamente al espacio de
direcciones en el equipo host.
PCI bus paralelo es popular en distribuir dispositivos embebidos. PCI y PCI/X los buses son utilizados para
comunicacin de bus paralelo y estos son independientes de la arquitectura de IBM. PCI/X es una extensin
del estndar PCI y admite transferencias 64/100 MHz. Nueva versin de bus PCI admite 132/528 MB/s con
transferencia de datos sincrnica asincrnica/ rendimientos.

3.11.3 Bus del brazo


Procesador ARM interfaces externas de la memoria DRAM (Dynamic RAM CONTROLADOR Y IO on-chip, que
se conectan a dispositivos de datos de 32 bits aria':32-bib direccin lnea a alta velocidad utilizando AMBA (brazo
principal del bus de memoria
Arquitectura)-AHB (brazo de bus de alto rendimiento). Figura 3.12(b) muestra AMBA-AHB y AMBA-APB
Puentes. Los puentes de la interfaz externa de la memoria y los dispositivos de E/S-chip, que funcionan a baja
velocidad usando AMBA-APB. La AHB mxima bps el ancho de banda es 16 veces superior a la del reloj del
procesador ARM.

Los sistemas integrados

Un interruptor, llamado popularmente el AMBA-APB, interruptores de puente CPU ARM comunicacin con
el AMBA bus a bus APB. Los microcontroladores basados en procesador ARM tiene un nico bus de datos en
AMBA-AHB que conneets al puente puente de mosaico, que se integra en el mismo circuito integrado como el
procesador para reducir el nmero de chips necesarios para construir un sistema. Esto reduce el coste del sistema.
El puente se comunica con la memoria a travs de un AMBA-AHB, se dedicar un conjunto de cables que transferir
datos entre estos dos sistemas. Otro APB IU autobs conecta el puente a los 10 dispositivos. Separar AMBA-AHB
y APB 10 autobuses se utilizan porque el sistema de E/S est diseado para ofrecer la mxima flexibilidad, para
permitir que la mayor cantidad posible de 10 diferentes dispositivos de interfaz para el ordenador, mientras que el
bus de memoria se ha diseado para proporcionar el mximo ancho de banda entre el procesador y la memoria del
sistema.
La APB puede conectar el 12C, pantalla tctil, SDIO, MMC (multimedia card), USB, CAN y otras interfaces
requeridas para un microcontrolador ARM.

3.11.4 Buses de alta velocidad paralela avanzada


Muchos de telecomunicaciones, equipo y productos basados en el procesador incorporado necesitan los buses
paralelos para el sistema IOs. Tres versiones de PCI paralelo sncrono/asncrono sncrono del sistema de autobuses
ofrecen interfaces paralelo. Estas tres versiones pueden no tener suficientemente alta velocidad, ultra alta velocidad
y gran ancho de banda que son necesarios para el sistema IOs, routers, switches y gateways de LAN, SAN (Storage
Area Network) y WAN (Wide Area Networks) y otros productos. Estos no satisfacen la fuente sincrnica interfaz
paralelo requisitos. Necesidades de ancho de banda aumentan exponencialmente en el orden de audio, grficos,
vdeo, vdeo interactivo y banda ancha de Internet IPv6. Puede necesitar un sistema incorporado para conectar 10
sistema mediante interfaces Gigabit sincrnico paralelo. Los siguientes son estndar de bus avanzada y protocolos
propietarios desarrollado recientemente.
1. (GMII gigabit Ethernet MAC Interchange Interface).
2. XGMI (10 Gigabit Ethernet MAC Interchange Interface)
3. CSIX-1. 6.6 Gbps HSTL de 32 bits con rendimiento de 200 MHz.
4. Interconexin RapidIO especificacin v 1.1 a 8 Gbps con rendimiento de 500 Mbps o 250 MHz doble
sentido registrar el rendimiento utilizando 8 bits de bajo voltaje (LVDS BUS de datos).

3.12 INTERNET activado los protocolos de red de sistemas


La figura 3.14 muestra un sistema embebido habilitadas para Internet, comunicarse con otros sistemas en Internet.
Los sistemas integrados habilitados para Internet utilizar HTML o archivos de tipo MIME (Seccin 3.12.1), TCP
(Seccin 3.12.2) o UDP (Seccin 3.12.3) protocolo de capa de transporte, y son dirigidas por una direccin IP
(Seccin 3.12.4) y utilizar el protocolo IP en la capa de red. Una direccin IP es de 32 bits (cuatro nmeros
decimales separados por puntos entre ellos) o de 48 bits en IPv4 o IPv6, respectivamente. IPv4 significa versin 4
del protocolo IP e IPv6 significa versin 6. Un sistema con una direccin IP 1 comunica con otro sistema en otra
direccin IP 2 o 3 o... utilizando las conexiones fsicas en la Internet y los routers. Dado que la Internet es una red
global, el sistema se conecta de forma remota ubicada as como de corto rango ubicado el sistema. La conectividad
de red a travs de las capas. Cada capa tiene un protocolo que especifica la manera en que el mensaje o datos desde
la capa anterior transfiere a la capa siguiente.
Hay cinco capas de una red TCP/IP. Ellos son la aplicacin, transporte, red, enlace de datos y capas fsicas. El
protocolo de capa de aplicacin TCP/IP tambin especifica las formas de presentacin. Protocolo de capa de
transporte especifica el establecimiento de la sesin y tambin formas de terminacin.
Secciones 3.12.1 a 3.12.5 describir el conjunto TCP/IP de cinco protocolos ms utilizados.

Aaliitifel'I

Bus del brazo es de dos tipos: AMBA-AHB y AMBA-APB. AHB conecta con memoria de alta velocidad. APB
conecta los perifricos externos al sistema bus de memoria a travs de un puente.

Dispositivos y buses de comunicacin para los dispositivos Network

171

Los sistemas integrados estn habilitados para Internet mediante protocolo TCP/IP protocolos de redes para
Internet y asignar las direcciones IP a cada sistema.
Direccin IP 1
Con Internet habilitado.
Embedded
Sistema controlador

O el tipo MIME html transferencia de mosaico mediante TCP o UDP protocolo de capa de transporte
1
| Red entrelazado

^ ... .......

1i
Red TCP/IP

1M
11
Interfaz de red

11
! Interfaz de red
)
R ______ R

Con Internet habilitado.


Embedded System
Direccin IP 2

| Internet habilitado
J embedded system

11

11

Interfaz de red

Interfaz de red

Mr

!1

Con Internet habilitado.


Embedded System

Direccin IP 3

Direccin IP 4

Equipo remoto
Direccin IP 5

Fig. 3.14 Un sistema integrado con Internet habilitado la comunicacin conectados en Internet

3.12.1 Hyper-Text Transfer Protocol (HTTP).


Un protocolo de la capa de aplicacin segn la aplicacin. Esta capa acepta los datos, por ejemplo, en formato
HTML o formato de texto y coloca el cabezal palabras segn el protocolo y enva el encabezado de la capa de
aplicacin, adems de los datos a la capa de transporte. Un nmero de puerto especifica la aplicacin en el cabezal.
Los siguientes son los protocolos de capa de aplicacin importante que soportan las redes TCP/IP.
1. NTP (Network Time Protocol) sincroniza los relojes del sistema en una red.
2. MIME habilita la conexin de varios tipos de archivos. Los ejemplos arco:
Txt (texto).
Doc (documento de Word archivo MSOFFICE),
Gif (formato de imagen grfica archivo).
Jpg (archivo de imagen en formato JPG), y
Wav archivo de msica o voz.
3. HTTP (puerto 80) permite la conectividad a Internet por Hyper-Text Transfer Protocol (HTTP).
4. FTP (puerto 21 para control. 20 para datos) permite la conectividad de la transferencia de archivos
mediante el protocolo de transferencia de archivos. TFTP (puerto 69) para Trivial FTP. NFS (Network
File System) se utiliza para compartir archivos en una red.
5. TELNET (puerto 23) permite el acceso remoto a terminales remotos mediante el protocolo de acceso
de terminal.
6. SMTP (puerto 25) permite la transferencia de correo electrnico, almacenar y reenviar por el Protocolo
simple de transferencia de correo.
7. PoP3 (puerto 110) permite la recuperacin de correo electrnico.
8. (119) Puerto NNTP (Network News Transfer Protocol) se utiliza para el puerto de transferencia de
noticias.
9. DNS (puerto 53) para el servicio de nombres de dominio.
10. SNMP (puerto 161) Protocolo simple de administracin de red.
11. Y Bootps Bootpc (puertos 67 y 68) para Bootstrap Protocol (DHCP) y el cliente, respectivamente.
12. DHCP (Dynamic Host Configuration.j'rotcibl) utilizado para el arranque remoto as como para
configurar un sistema.
Un puerto asignado nmero admite mltiples conexiones lgicas con una llave Allen. Cada toma tiene direccin
IP y nmero de puerto. Una marca nmero de puerto puede estar entre 0 y 1023. La inscripcin se realiza por la
IANA (Internet

172

Los sistemas integrados

Nmero asignado autoridad. Nmero de puerto (i significa el propio host. Un usuario no registrado puede tener
un nmero de puerto de servidor por encima de 5000.
El puerto 80 HTTP es un protocolo de la capa de aplicacin. El I'ealures HTTP son como sigue:
1. HTTP es el protocolo estndar lor lor solicita una direccin URL (Universal Resource Locator) direccin,
por ejemplo. http.7Avtvw.megraw-hill.coin.) Un URL define una pgina tveb recurso, y se utiliza para
recuperar o enviar pgina web mosaico. La respuesta de tveb pueden ser con o sin la aplicacin de un
proceso. Un cliente HTTP solicita un servidor HTTP en el Internet, y el servidor responde enviando una
respuesta.
2. HTTP es un protocolo sin estado. Para una solicitud de HTTP, el protocolo supone una nueva peticin.
Significa que no hay ningn nmero o secuencia de sesiones celebradas o ningn campo que es retenido
en el prximo cambio. Esto hace que una corriente de intercambio mediante una solicitud HTTP
independiente de los anteriores intercambios. Los posteriores intercambios no dependen de la actual. Un
e-commerce-como la aplicacin necesita un mecanismo de administracin del Estado. Una cookie es un
mosaico de texto creados durante un determinado par de intercambios de la peticin y la respuesta HTTP.
La creacin est en CGI o un programa de procesamiento de textos o la secuencia de comandos o al cliente
(navegador). Un intercambio previo puede depender de esta cookie. Mediante este mecanismo, los
aptridas caracterstica de HTTP es compensado. La cookie HTTP proporciona un mecanismo de
administracin del Estado.
3. HTTP es un protocolo de transferencia de archivos como para HTML (Hyper Text Markup Language)
archivos. Esto hace que sea fcil explorar un sitio web URL. (una solicitud de un cliente) es enviado y
respuesta (respuesta de un servidor) es recibido.
4. El protocolo HTTP es muy ligero (pequeo formato) y, por tanto, rpida en comparacin con otros
protocolos existentes. HTTP es capaz de transferir cualquier tipo de datos a un navegador (cliente) siempre
es capaz de manejar estos datos.
5. Adems de la simplicidad, otra importante caracterstica de HTTP es su flexibilidad. Supongamos que
estamos navegando en la web y nuestra conexin se rompe (o usuario): Tambin entonces podemos
comenzar a navegar en la red desde ese punto de nuevo. Es un protocolo sin estado. HTTP no seguir la
pista del estado como FTP. Cada vez que establece una conexin entre el servidor web y el cliente
(navegador), ambos interpretan esta conexin como una conexin nueva. La simplicidad es una necesidad
porque una pgina web tiene su URL recursos distribuidos en un nmero de servidores.
6. El protocolo HTTP se basa en el sistema de Programacin Orientada a Objetos (OOPS). Mtodos se aplican
a los objetos identificados por URL. Esto significa que, como en el caso normal del programa orientado a
objetos, los diversos mtodos que se aplican a un objeto.
7. Desde HTTP 1.0 y la versin 1.1 en adelante, las caractersticas siguientes se han incluido:
(a) Acceso a archivos multimedia es factible debido a la provisin o el MIME (Multipurpose Internet Mail
Extension) tipo definicin de mosaico.
(b) Desde la versin 1.1 en adelante, hay ocho mtodos especificados y mtodos de extensin. Un mtodo
de extensin es agregado para un mtodo HTTP especfico. No puede haber ninguno o uno o varios
mtodos de extensin. Los mtodos especficos HTTP son como sigue. 1. Obtenga 2. POST. 3. Cabeza
4. Conecte. 5. Poner6. Eliminar 7. TRACE. 8. Las opciones. (Los ltimos cuatro desde l.l). En versiones
anteriores, sigue un espacio y luego el nombre del documento. El servidor devuelve los documentos y
cierra la conexin. A partir de l.l, el mtodo POST ha permitido el procesamiento del formulario, ya
que si se usa el cliente transmite los datos del formulario u otra informacin para el servidor. A partir
de 1.1, el servidor no cierra la conexin despus de la respuesta y la respuesta pueden ser procesados
antes de ser enviados.
(c) Una disposicin de autentificacin del usuario existe adems de la autenticacin bsica de HTTP
versin introdujo l.l adelante, autenticacin de acceso implcita impide la transmisin de nombre de
usuario y
(contrasea como HTML o texto.
(d) Agrega un campo de encabezado de host para apoyar a aquellos puertos y hosts virtuales que no aceptar
o enviar paquetes IP. Desde la versin 1.1 en adelante, un informe de error al cliente cuando una
solicitud HTTP es sin un campo de encabezado de host.

Dispositivos y buses de comunicacin (o dispositivos Network

173

(e> Desde HTTP l.l versin en adelante, una direccin URL absoluta es aceptable para el servidor.
Anteriormente slo acept que el servidor proxy.
(f) Cdigos de estado de la respuesta.
(g) El almacenamiento en cach de un recurso es siempre en el servidor (y proxy).
(h) Especificacin del rango de bytes contribuye en gran respuesta en piezas.
(i) Seleccin entre diversas caractersticas en la recuperacin por el cliente es factible cuando un
servidor enva la respuesta a la solicitud del cliente. Por ejemplo, dos caractersticas, el idioma y
la codificacin puede ser especificado en las variables de entorno del servidor mientras que el cliente
enva el encabezado de la solicitud de recuperacin de un recurso. A continuacin, recupera el
recurso en ese idioma y con esa codificacin. El contenido enviado al cliente no cambia, slo la
forma en que estos se presentan para el cambio del cliente.
(j) Especificacin de longitud ayuda a presentacin en trozos.
8. Un mensaje HTTP encabezado durante una peticin de un cliente o durante una respuesta del servidor
consta de dos partes: a) una lnea inicial, ninguno o varios encabezados de mensaje (campos) y lnea
vaca, y (b) el cuerpo del mensaje. Especifica que el mensaje de solicitud HTTP consisten en solicitar los
encabezados de los mensajes. Tambin HTTP especifica que el mensaje de respuesta que consisten en
los encabezados de los mensajes de respuesta.
9. Los encabezados HTTP proporciona para la entidad. Estos contienen informacin acerca de la entidad
que figuran en el cuerpo del mensaje o en el cuerpo de la caja no est presente, entonces la informacin
acerca de la entidad, no a su cuerpo. Por ejemplo, la informacin de la longitud en bytes de contenido.
10. Esquema de interaccin de HTTP es que un cliente solicita directamente o a travs de servidores proxy o
gateway. Es por lo tanto un mensaje HTTP cither solicitud o respuesta. El formato de los mensajes
llamados RFC 822. especifica las formas de envo de mensajes de texto en Internet. El mensaje durante
la solicitud del cliente o durante la respuesta desde el servidor consta de dos partes: (a) la lnea de inicio,
ninguno o varios encabezados de mensaje (campos), adems de una lnea vaca, y b) el cuerpo del
mensaje. La lnea de inicio es una 'request-line' o 'status' en la lnea de solicitud o respuesta-mensaje,
respectivamente.

3.12.2 Protocolo de control de transporte (TCP)


TCP (Protocolo de control de transporte) es un protocolo usado en la capa de transporte. Esta capa acepta los
mensajes de la capa superior en la transmisin .por la capa de sesin o de aplicacin. Esta capa tambin acepta una
secuencia de datos de la capa de red en el extremo receptor. Antes de comunicar un mensaje a la siguiente capa de
red, puede agregar un encabezado. El mensaje puede comunicarse en partes o segmentos o fragmentos. El cabezal
tiene generalmente los bits adicionales para las direcciones de origen y de destino. Tambin, hay bits en la
secuencia y reconocer la gestin, controles de flujo y de errores, etc.
Hay bits para el desplazamiento, ventana, banderas, checksum, puntero urgente, opcin y tambin para el
relleno. TCP soporta el modo de redes punto a punto.
TCP Especifica un formato de secuencias de bytes a la capa de transporte de TCP/IP. TCP se utiliza para full
duplex reconoci el caudal. Su formato tiene un encabezado TCP de 5+1 (N-5) Palabras para opciones y padding
y datos de un mximo de 1 palabras. Entonces, yo > 214 - n. Aqu n > 5. n es el nmero de palabras en el
encabezado y se denomina desplazamiento de datos, lo que significa que el nmero de palabras despus de que los
bits de datos comienzan en la secuencia. Si n > 5, significa que hay palabras para las opciones y el relleno. El
relleno se refiere a bits utilizados para rellenar la parte restante del campo disponible. Por ejemplo, el campo de
opciones puede indicar que se ejecute la aplicacin por el nodo de destino. Un reconocido flujo significa que los
mensajes se comunican en una red punto a punto y de modo que no hay un reconocimiento para establecer primero
una conexin. Full duplex significa que en un caso dado, r^-ssages ir hacia delante y hacia atrs desde el emisor
hasta el receptor, y que el receptor acusa recibo. Una solicitud y su respuesta no forman una transmisin separada.
TCP es orientado a la conexin virtual. No permitir la multidifusin, pero punto a punto de conexin virtual.

Los sistemas integrados

3.12.3 Protocolo de datagramas de usuario (UDP).


Tambin es compatible con TCP/IP en la capa de transporte un protocolo ms sencillo que TCP. Cuando un mensaje
est orientado a conexi n y aptridas, entonces el protocolo de capa de transporte en el conjunto TCP/IP es el
protocolo de datagramas de usuario (UDP). UDP apoya la difusin del modo de red. Un ejemplo es la aplicacin
lor comunicando el cabezal antes de un flujo de datos. El encabezado especifica los bits para origen y destino Pons,
longitud total del mensaje incluidos y suma de comprobacin del cabezal (opcional). Durante la recepcin, este
mensaje a la capa superior Hows alter eliminar el encabezado de bits recibidos desde el encabezado de capa de
transporte. Bits de encabezado Agregar al tiempo de transmisin en la aplicacin o la capa de sesi n bytes.

3.12.4 Protocolo de Internet (IP)


Todos los dispositivos habilitados para Internet comunicarse utilizando el protocolo de Internet (IP). La capa de
transporte transmite datos sobre la red, se divide en los paquetes en la capa de red. Cada paquete que se transmite a
travs de una cadena de enrutadores de Internet. Un acket es unidad mnima de datos que transmite en Internet a
travs de los routers. Varios pacets formando una fuente puede alcanzar un destino usando rutas diferentes y pueden
tener distintos retrasos. El paquete consiste en la cabecera IP, adems de datos o protocolo de enrutamiento IP
header y junto con el servicio de enrutamiento de mensajes. El paquete tiene un mximo de 216 bytes (214 palabras,
1 palabra = 32 bits = 4 bytes).
Enrutamiento de red segn estndar IPv4 (versin 4) o IPv6 (versin 6). IPv6 es un protocolo de banda
ancha.
La Tabla
3.11 muestra
loselcampos
de encabezado
protocolo IPv4.
Cuadro
3.11 varios
campos en
encabezado
IPv4 para eldeenrutamiento
de los paquetes a travs de los
enrutadores a nodo de destino
Campo en el encabezado IP

Explicacin
IP versin bits arc 0100 para IPv4 (actualmente en uso amplio) y 0110 para IPv6 (IP Next genration
IPng para Internet de banda ancha).

Versin
Precedance
Servicio
QoS (Calidad de
servicio).
ID de fragmento

Tipo de precedencia es entre 8,h a I0,h bit. Bits ! 11 Especifica la precedencia ms alta. Por
ejemplo, para la transmisin de audio o vdeo, 000 especifica los datos comunes.
Tipo de servicio es entre II1,1 a 15 bits".
Bits son para QoS (Calidad de servicio) especificaciones en trminos de seguridad, rapidez,
demoras y costos adicionales o deseada debe ser alcanzado.
Cada mensaje puede tener muchos paquetes fragmentados a travs de los routers. Cada fragmento
debe, por tanto, proporcionar un ID exclusivo para su identificacin para el montaje en el receptor
final.
Flags indican si el fragmento actual es el ltimo, si los fragmentos son permitidas y si ms
fragmentos seguir. Deje q = Nmero de palabras del cabezal

Banderas

(1 palabra = 32 bits). Pabelln 1 bit indica si ms fragmentos del paquete tendr xito este
fragmento. El bit 2 del pabelln lo identifica como un fragmento de prueba o no. Pabelln 3 bits
comprueba si la fragmentacin es o no permitido.
Checksum del encabezado comprueba errores en la transmisin del cabezal.

Checksum
Tiempo de vivir

Tiempo de vida indica el nmerode retransmisin saltos permitidos en caso de error en la entrega.

Tipo de protocolo
- ,|ts

Tipo indica si el paquete est transmitiendo un flujo de bytes UDP o TCP stream
Desde la capa de transporte. Los protocolos de enrutamiento importante que encapsulan despus
del encabezado IP de un paquete IP son:

( Corad)

Dispositivos y buses de comunicacin para los dispositivos Network

L-'ielil til el encabezado IP

Longitud del cabezal


(data-offset)
El origen y el destino
Opciones de direcciones

3.12.5

175

Explicacin

IGMP (Internet Group Management Protocol). El IGMP es un protocolo para


administrar la transmisin de datos entre seleccionar grupos de hosts. Varios hosts
unirse a un grupo. Grupo multicast utilizar routers que utiliza el IGMP.
ICMP (Internet Control Management Protocol). ICMP es un protocolo para el control
de enrutamiento entre los hosts de red.
ICMP es flujo de bytes de datos dentro de un paquete IP (datagramas). Su formato es
como sigue. 20 primeros bytes son mnimas del encabezado IP. A continuacin, sigue
los campos de l-byte para cada tipo y cdigo, sucesivamente. Prximos dos bytes son
de suma de comprobacin. A continuacin, los mensajes ICMP, el formato y la
duracin de la cual es variable.
Los protocolos de enrutamiento interior, por ejemplo, el Protocolo de informacin de
enrutamiento (RIP) y OSPF (Open Shortest Path First) protocolo.
Interdomain (exterior), protocolos de enrutamiento, por ejemplo, el Protocolo de
Gateway Exterior (EGP), BGP (Border Gateway Protocol) y GGP (la puerta de
Gateway
Protocol).
La longitud
del encabezado IP (desplazamiento de datos) p < 2IJ - q. Aqu p > 5. q es
igual a la cantidad de palabras
En el encabezado y los datos se llama desplazamiento [nmero de palabras despus
de que los bits de datos comienzan en el stream.]
IP direcciones IP de origen y destino Si q >5. existen palabras para opciones.
Y el relleno. El relleno se refiere a los bits que se utilizan para rellenar la parte restante
del campo disponible. Por ejemplo, opcin 4 significar poner la hora en todos los
paros de los paquetes durante el trnsito a travs de los enrutadores de destino. Sellado
de tiempo permite mediciones de retardo de paquetes para calcular el rendimiento de
la red de calidad.

Ethernet

El inventor de Ethernet LAN es Robert Metcalfe. En la actualidad, alrededor de un tercio de la LAN en el mundo
son las redes LAN Ethernet y, en cada fotograma, hay un encabezado como en un paquete. En una LAN Ethernet
estndar es IEEE 802.2 (ISO 8802.2). ft es un protocolo de red local de ordenadores, estaciones de trabajo y
dispositivos. LAN es utilizado para el intercambio de equipos locales, los sistemas y los recursos locales, tales
como impresoras, espacio de disco duro, software y datos. La tabla 3.12 da las caractersticas de los dispositivos
de LAN Ehemet.
Para la transmisin de datos se fragmenta en las tramas. Cada marco tiene un encabezado. En primer lugar,
el cabezal dispone de ocho bytes, que define un prembulo. El prembulo indica el inicio de una trama y se utiliza
para la sincronizacin. Entonces el cabezal tiene 6 bytes de la direccin de destino. 6 bytes de la direccin de
origen, a continuacin, sigue la direccin de destino. Luego hay seis bytes. Estos son para el campo Tipo. Estos
son tiles slo para las capas de red y de mayor longitud de la definicin. El mnimo de 72 bytes y mximo de
1500 bytes de datos siga la definicin de longitud. Por ltimo, hay 4 bytes de comprobacin CRC para verificar
la secuencia de fotogramas.

3.13 Protocolos de sistemas mviles e inalmbricos


Ns
Las figuras 3.15(a), (b) y (c) muestran un dispositivo o sistema informtico conectado a otros dispositivos de
mano o PC a travs de infrarrojos, Bluetooth y ZigBee protocolos inalmbricos, respectivamente. Secciones
3.13.1 a 3.13.4 describir el IrDA, Bluetooth, WLAN (LAN inalmbrica) y 802.11 protocolos ZigBee.

Los sistemas integrados

Cuadro 3.12 caractersticas de LAN Ethernet


Lealure

LAN Ethernet.

La topologa y el modo de transmisin Autobs


Velocidad
10 Mbps, 100 Mbps (cables apantallados y sin apantallar) y 4 Gbps (en modo de
cableado de par trenzado)
Medio de difusin
Pasivo. Las conexiones por cable. Como el formato de trama IEEE 802.3.
SNMP (Simple Network Management
Protocol)
Sistema
Funcionamiento

El control
Protocolo de resolucin de direcciones
(ARP) para resolucin de 32 bits para
las direcciones de protocolo de Internet
de 48 bits con el host de destino
Direccin
de medios.
Conectividad
con Internet y la Intranet

Abrir (por lo tanto permite a equipos de diferentes especificaciones)


Cada uno de ellos conectado a un canal de comunicacin comn en la red. Escucha
y si el canal est inactivo luego transmite. Si no inactivo, espera e intenta
nuevamente. Acceso mltiple es como en una red de conmutacin de paquetes
Pasivo, basado en la conexin
S, hay una direccin MAC (media access control) para transmitir y enviar tramas
en la misma LAN. Tambin podemos utilizar el direccionamiento de multidifusin
para enviar tramas a todos o algunos tipos de dispositivos Ethernet.
S, fuera de la LAN se envan a las direcciones de Protocolo de Internet.

3.13.1 Asociacin de datos por infrarrojos (IrDA)


Infrarrojos (IR) es la radiacin electromagntica de longitud de onda mayor que la luz roja visible. Una fuente
infrarroja consiste de un fsforo con arsnico de galio-Empalme basado el diodo. Un receptor de infrarrojos
consta de un- arsnico de galio-fsforo fototransistor basada en junction, que conduce la corriente elctrica
cuando el haz IR cae sobre ella y no conducir cuando RI no caer sobre ella. El colector de drenaje o tiene
tensin cercana a 0 V cuando se lleva a cabo y est cerca de la tensin de alimentacin cuando no la conducta.
IrDA (Infrared Data Association) recomienda un conjunto de protocolo como estndar. Soporta
velocidades de transferencia de datos de hasta 4 Mbps. Es compatible con bi-direccional de la comunicacin
serie a travs de ngulo de visualizacin entre 15 y una distancia de cerca de I m. A 5 m, la transferencia
de datos por infrarrojos puede ser hasta velocidades de transferencia de datos de 75 kbps. No debe haber
obstculos o muro entre la fuente y el receptor.
La figura 3.15(a) muestra un dispositivo porttil conectado a otro ordenador mediante el protocolo IrDA.
Protocolo
IrDA admite 5 niveles de comunicacin. El nivel i es el mnimo requerido de la comunicacin. El nivel 2
es el acceso- basa la comunicacin. El nivel 3 est basado en el ndice de precios de la comunicacin. El nivel
4 se sincroniza la comunicacin. Software de sincronizacin, por ejemplo, ActiveSync o HotSync es utilizado.
El nivel 5 es la sincronizacin SyncML (markup language) basada en la comunicacin. SyncML es un
protocolo utilizado para la administracin de dispositivos y sincronizacin con dispositivos de cliente y
servidor, que estn conectadas mediante IrDA.
IrDA es utilizado en telfonos mviles, cmaras digitales, teclado, mouse, impresoras para comunicarse
con ordenadores porttiles y para descargar imgenes y datos de sincronizacin ridas! IrDA es utilizada
tambin para la televisin con mando a distancia, aire acondicionado, proyector LCD, dispositivos de VCD
desde una distancia.
Admite varios protocolos IrDA en tres capas. Es la capa inferior de la capa fsica 1.0 o 1.1. Soporta tasas
de transferencia de datos of9.6 kbps a 115,2 y 115,2 kbps hasta 4 Mbps en la capa fsica IrDA 1.0 y 1.1,
respectivamente.

Dispositivos y buses de comunicacin para los dispositivos Network

El protocolo
IrDA
Embedded
Dispositivo

(a)

Protocolo Bluetooth !
Embedded
I.
Serial
Dispositivo
Emulater
<
- Piconet de rea personal Bluetooth 10m
Protocolo Bluetooth
dispositivo
incrustado

X_r

Interfaz IrDA

Interfaz IrDA

177

Cuna

"

'

Puerto COM

-L

Equipo en
rea personal
Red
Equipo en
rea personal
Red

Scatternet de rea personal Bluetooth 100m

Protocolo Bluetooth
dispositivo
incrustado

Protocolo Bluetooth
dispositivo
incrustado

(b>

Protocolo ZigBee
Dispositivo embebido

Protocolo ZigBee
Dispositivo embebido
Home Red de dispositivos ZigBee

Protocolo ZigBee
Dispositivo
embebido

Fig. 3.15.

(c)

Protocolo ZigBee
Dispositivo
embebido

( a ) , ( b ) y (c) un dispositivo porttil conectado a otro ordenador o dispositivos de mano


A travs de IrDA, Bluetooth y ZigBee protocolos inalmbricos, respectivamente

La capa intermedia es la capa de enlace de datos. En la capa de enlace de datos, especifica IrLMP (IR link
management protocol) y la subcapa superior IrLAP (IR link access protocol) subnivel inferior. Un IrLAP es HDLC
comunicacin sincrnica (Seccin 3.2.4).
Un protocolo de capa superior IrDA es diminuto TP (protocolo de transporte). Otro protocolo de capa superior
es IrLMIAS (IR enlace Protocolo de servicio de acceso de informacin de gestin). Un protocolo de capa de
transporte durante la transmisin especifica los medios de control de flujo, la segmentacin de datos y
paquetizacin. Durante la recepcin, que ensambla los segmentos y los paquetes. El protocolo de capa superior a
la capa de sesin es IrLAN. IrBus, IrMC. IrTran. Protocolo IrOBEX (ob jeto Exchange) y emulador de puerto serie
estndar protocolo IrCOMM (comunicacin por infrarrojos). IrBus proporciona serial bus de acceso a los puertos
de juegos, joysticks, ratones y teclados. Protocolo de la capa de aplicacin es para la seguridad y la aplicacin
especificada por el IrDA. Por ejemplo, la Alianza IrDA se utiliza protocolo de sincronizacin para sincronizar
dispositivos mviles gestor de informacin personal (PIM). Admite Object Push (PIM) o Transferencia de archivos
binarios.
Windows y otros sistemas operativos basados en el protocolo IrDA admite dispositivos de comunicacin. Un
monitor de infrarrojos en Windows controla el puerto de infrarrojos del dispositivo de infrarrojos. Se detecta una
fuente de infrarrojos cercanos. Controla, detecta y selecciona la actividad de comunicacin por infrarrojos. Un
dispositivo de infrarrojos en el comando configura la conexin mediante IrDA. y comienza la comunicacin por
infrarrojos. Cuando la comunicacin por infrarrojos est inactiva, el monitor Plug and Play permite (a menos que
est desactivado).
Sobrecarga
del protocolo IrDA est entre 2% a 5 0 % de la sobrecarga de dispositivos Bluetooth. La
3.13.2
Bluetooth
configuracin de comunicacin la latencia est a slo unos pocos milisegundos. La exigencia de una lnea de vista
Hardware
est conectado
al sistema integrado de autobuses y Bluetooth software incrusta en el sistema
despejada Bluetooth
y comunicacin
es la limitacin.
para apoyar WPAN utilizando protocolo inalmbrico Bluetooth. Figura 3.15(b) muestra un dispositivo porttil
conectado a

178

Los sistemas integrados

Otros equipos mediante el protocolo inalmbrico mediante Bluetooth. Un gran nmero de reproductores de CD y
los dispositivos mviles son Bluelooth-enab".ed. Bluetooth se utiliza tambin para escuchar de manos libres
Bluetooth CD o iPod reproductor de msica o telfono mvil mediante Bluetooth capullos de poca.
Bluetooth es un estndar IEEE 802.15.1 protocolo. La capa fsica se comunica a radio frecuencias de portadora
en la banda de 2,4 GHz con FHSS (Frequency Hopping Spread Spectrum). Intervalo de salto es de 625 ps y el
nmero de frecuencias se subieron 79. La transferencia de datos entre dos dispositivos o entre un dispositivo y
mltiples dispositivos.
Admite hasta 10 m de baja potencia y de hasta 100 m de alta potencia. El alcance depende de la interfaz de
radio en la capa fsica. Velocidad de transferencia de datos l.x Bluetooth es compatible I Mbps. Bluetooth 2.0 ha
mejorado la velocidad de datos mxima de 3.0 Mbps durante 100 m. Protocolo Bluetooth admite la deteccin
automtica y auto-organizacin de la red en nmero de dispositivos. Dispositivo Bluetooth auto descubre
dispositivos cercanos (< 10 m) y se sincronizan y forman una red WPAN (Wireless Personal Area Network).
Protocolo Bluetooth compatible con alimentacin de control para que los dispositivos se comuniquen a nivel de
potencia mnima requerida. Esto Previene el ahogamiento de seales por superimposilions seales de alta potencia
con seales de nivel inferior.
La capa fsica tiene tres subcapas: radio, baseband y link manager o host controller interface. Existen dos tipos
de enlaces: enlaces de trfico de mejor esfuerzo y trfico de voz en tiempo real de enlaces. El trfico en tiempo real
utiliza el ancho de banda reservado. Un paquete es de alrededor de 350 bytes. La subcapa de enlace Manager
gestiona el eslabn maestro y esclavo. Especifica el cifrado de datos y autenticacin del dispositivo de manipulacin
y formacin de pares de dispositivo para las comunicaciones Bluetooth. Da especificaciones para estado de modo
de transmisin, supervisin, control de nivel de potencia, la sincronizacin y el intercambio de capacidad de flujo
de paquetes, la latencia, la velocidad de datos mxima, velocidad media de datos y los parmetros de tamao de
rfaga mxima de las capas inferiores y superiores.
El Host Controller Interface (HCI) interfaz es una subcapa de abstraccin de hardware. Se utiliza en lugar del
link manager subnivel. Proporciona emulacin de puerto serie, por ejemplo, 3-wire emulacin UART. Un
dispositivo Bluetooth puede as interface al puerto COM del ordenador.
Su comunicacin la latencia es 3s. l tiene una gran sobrecarga de la pila de protocolo de 250 kB. Provisin de
comunicacin segura cifrada, auto-descubrimiento y la auto-organizacin y la radio basada en la comunicacin
entre antenas diminutas son las tres caractersticas principales de la tecnologa Bluetooth.

3.13.3 802.11
LAN inalmbrica utiliza los estndares IEEE 802.1 a 802.1 de la Ig. Tasas de transferencia de datos son de 1 y 2
Mbps. El 802.1 lb se llama fidelidad inalmbrica (WiFi). 802.11 b admite velocidades de transferencia de datos de
5,5 Mbps mediante la asignacin de 4 bits y 8 bits de la asignacin de 11 Mbps simultneamente durante la
modulacin.
Un conjunto determinado de la LAN de la red de puntos de acceso a la estacin y el conjunto se denomina
Extended service set (ESS). Es la espina dorsal del sistema de distribucin. Un backbone puede establecer a travs
de la red Internet. ESS admite red de infraestructura fija.
Hay dos tipos de conjuntos de servicios inalmbricos.
1. Un conjunto de servicio tiene una estacin inalmbrica, que se comunica con un punto de acceso, tambin
llamado un hotspot. El servicio se llama conjunto de servicio bsico (BSS). Soporta WLAN red ad-hoc,
que, como y cuando vienen los nodos en el rango cercano, forma la red. BSS admite red ad-hoc que, cuando
los nodos vienen cerca y dentro del rango del punto de acceso, las formas de la red a travs de ESS. Un
nodo puede pasar de uno a otro de BSS.
2. El otro conjunto de servicio tiene varias estaciones. Se llama conjunto de servicios bsicos independientes
(IBSS). No tiene ningn punto de acceso. No se conecta al sistema de distribucin. Puede havsTnult'estaciones de tMe, que tambin pueden comunicarse entre s. IBSS admite red ad-hoc.
802.11 proporciona las especificaciones de la capa fsica y capas de enlace de datos.
La capa de enlace de datos especifica una capa MAC. La capa MAC utiliza acceso mltiple por deteccin de
portadora y Prevencin de colisiones (CSMA/CA) protocolo. Una estacin de escucha de la presencia de la
portadora durante un intervalo de tiempo es

Dispositivos y buses de comunicacin para los dispositivos Network

! 179

L!

Distribuido llamado Separacin inter-trama (DIFS) intervalo. Si el transportista no es detectado (detectado)


durante DIFS, entonces la estacin retrocede durante un intervalo de tiempo aleatorio para evitar colisiones y
reintentos despus de ese intervalo. Un receptor reconoce siempre dentro de un espacio entre tramas shori (SIF).
El reconocimiento se realiza despus del xito CRC (verificacin de redundancia cclica). Si no hay ningn
reconocimiento dentro de SIF, a continuacin, el transmisor retransmite y hasta 7 intentos de retransmisin arco
realizado.
Hay un paquete denominado Solicitud de envo (RTS), que se enva primero. Si el otro extremo las respuestas
por el paquete llamada clear to send (CTS). A continuacin, se transmiten los datos. Especifica la capa MAC
power management, entrega y registro de la itinerancia nodo mvil dentro de la red troncal en un nuevo BSS dentro
de la ESS.
Existen tres mtodos de comunicacin en la capa fsica. Puede utilizar WLAN FHSS o DSSS o infrarrojos ns
250 pulsos. La capa fsica tiene dos subcapas. 802.1 lb tiene tres subcapas: uno es dependiente del medio fsico
(PMD) Protocolo que especifica la modulacin y mtodos de codificacin; la segunda es la convergencia del
protocolo de la capa fsica (PLCP). que especifica el encabezado y el paquete de software para la transmisin.
Especifica la deteccin de la portadora en el receptor, y cmo tiene lugar la formacin de paquetes en el transmisor
y ensamblar los paquetes en el receptor. Especifica los medios a converger MAC (Media Access Control) para
PMD en transmisor y separar el MAC (Media Access Control) del PMD en el receptor. Una subcapa adicionales
en 802.1 lb ZigBee
especifica cdigo complementario (CCK).
3.13.4
ZigBee es un estndar IEEE 802.15.4 protocolo. La capa fsica radio opera en la banda de 2,4 GHz frecuencias de
portadora con DSSS (Direct Sequence Spread Spectrum). Es compatible con un alcance de hasta 70 m. Velocidad
de transferencia de datos soportada es de 250 kbps. Admite diecisis canales. Figura 3.15(c) muestra un dispositivo
porttil conectado a otros dispositivos a travs de una red inalmbrica mediante el protocolo ZigBee.
La red ZigBee es la auto-organizacin y admite peer-to-peer y las redes de malla. La auto-organizacin
significa que detecta los dispositivos ZigBee cercanos y establece la comunicacin y de la red. Peer-to-peer red
significa cada nodo en la red funciona como un dispositivo solicitante as como un dispositivo que responde. Red
de malla significa que cada red funciona como una malla. Un nodo puede conectarse a otro mutuamente
interconectados directamente o a travs de nodos intermedios. La transferencia de datos entre dos dispositivos en
peer-to-peer o entre un dispositivo y varios dispositivos en la red de malla.
Protocolo ZigBee es compatible con un gran nmero de sensores, dispositivos de iluminacin, aire
acondicionado, controlador industrial y otros dispositivos para el hogar y la automatizacin de oficinas y su mando
a distancia y la formacin de redes WPAN (Wireless Personal Area Network). Red ZigBee tiene un router ZigBee,
los dispositivos finales y coordinador. Router ZigBee transfiere paquetes desde un origen vecinos cerca a un nodo
de la ruta al destino. El coordinador se conecta una red ZigBee con otro, o se conecta a la red WLAN o red celular.
Los dispositivos finales son transceptores ZigBee de datos.
Su comunicacin la latencia es de 30 ms. Sobrecarga de la pila de protocolo es de 28 kB.

Resumen
Puntos importantes que se tratan en este captulo son los siguientes.
Puertos de E/S, dispositivos de E/S y dispositivos de distribucin son esenciales en cualquier sistema.
Un sistema integrado se conecta a dispositivos como el teclado, pantalla tctil, unidad de pantalla
multilnea, impresora o mdem o motores a travs de los puertos. Durante una operacin de lectura o
escritura, el procesador accede a esa direccin en una memoria- asignan IO, como si se accede a una
direccin de memoria. Un decodificador toma la memoria del sistema o la direccin IO seales de bus
como entrada y genera una seal de seleccin de dispositivo o puerto, CS y selecciona el puerto o
dispositivo.

180

Los sistemas integrados

Hay dos tipos de 10 puertos y dispositivos, serie y paralelo. Comunicacin serial sincrnica es f maestro esclavo) o el modo modo asincrnico.

Un dispositivo se conecta y accesos desde y hacia el procesador del sistema a travs de un puerto paralelo
o serie 10. Un puerto de dispositivo puede ser full duplex o half-duplex.

Un dispositivo o puerto tiene asignada una direccin de puerto con el que el procesador accede a puerto
del dispositivo de control de registro o registro de estado o datos. Un dispositivo puede utilizar las seales
de enlace antes de almacenar los bits en el puerto o bfer antes de aceptar los bits del buffer del puerto.
La comunicacin serial bits son recibidos por el receptor de acuerdo con las fases del reloj del transmisor.
Comunicacin serial sincrnica del patrn de bits de llevar la informacin de reloj tambin al esclavo.
Comunicacin serie asncrona bits desde un dispositivo no llevan la informacin de reloj para el receptor.
Fase de reloj del receptor es independiente del reloj del transmisor. Sin embargo, el receptor ajusta el reloj
Us fase segn los bits recibidos, por ejemplo, el bit de inicio.
HDLC es el protocolo para la comunicacin sncrona de enlace de datos entre los dispositivos de red.
Una popular serie asncrona es el modo de comunicacin UART. Bits son recibidos por el receptor
independiente de las fases de reloj en el UART (Asynchronous serial puerto de entrada y salida) del
transmisor. UART de microcontroladores generalmente enva y recibe un byte en un formato de 10 bits o
en formato de 11 bits.
Otra popular serie asncrona es el modo de comunicacin RS232C, que se basa en el UART y se utiliza
para conectar el equipo de comunicacin de datos como mdem con un equipo terminal de datos tales
como equipo.
Y UART RS232C tambin pueden utilizar la seal de enlace DCD y un par de seales de enlace, (DSR.
DTP.) y RTS, CTS).
Otros puertos serie popular en los dispositivos son SP1. SCI. SI y el SD10.
La comunicacin en paralelo es sin o con seales de enlace. El nmero de sistemas integrados o interfaces
de dispositivo de puerto paralelo para interruptores, teclado, codificadores, motores, controladores LCD y
pantalla tctil. Existen puertos de propsito especial en el microcontrolador para su interrelacin.
Dispositivos perifricos en el chip internamente el procesador de interfaz con el microcontrolador.
" Un temporizador es esencialmente un contador obteniendo el recuento de entradas (ticks) a intervalos de
tiempo regulares. Distribucin y contando los dispositivos tiene un gran nmero de usos en un sistema.
Tiene que haber al menos un temporizador de hardware en un sistema. Software virtual timer es un
dispositivo de distribucin. Un programa puede utilizar el nmero de temporizadores software en un
sistema.
" Dispositivos de temporizacin programable interno con un procesador (microcontrolador) unidad se puede
usar Tor y muchas aplicaciones para generar interrupciones durante las garrapatas para software
temporizadores.
Watchdog timer temporizador especial es que los tiempos de espera y genera interrupciones en el caso de
determinados no se produce durante el intervalo predeterminado. El temporizador watchdog es utilizado
para cuidar de un sistema bloqueado en una determinada seccin de una tarea durante un largo tiempo
innecesariamente debido a algn error o fallo de hardware.
Reloj de tiempo real genera garrapatas e interrumpe el sistema en intervalos regulares.
El uso de autobuses simplifica la conexin a varios dispositivos. Varios dispositivos pueden ser colocados
en un bus serie comn. Populares son buses serie 1C, USB y FireWire. Cada dispositivo tiene asignada
una direccin de dispositivo o un conjunto de direcciones. Utilizando las direcciones de dispositivos del
receptor o esclavo, un maestro-procesador accede a los dispositivos remotos.
1*0 bus es utilizado entre varios ICs para comunicacin entre circuitos integrados. Un dispositivo que
inicia el comm
La CA.N bus es popularmente usada en red controlado centralmente en la electrnica del automvil.
USB (Universal Serial Bus) es un estndar de bus serie para la comunicacin entre el sistema y los
dispositivos como escner, impresora, teclado y ratn. Hay un concentrador raz y todos los nodos tienen
una estructura de rbol.
Varios dispositivos pueden ser colocados en un bus paralelo comn. Los buses paralelos populares son
ISA, PCI y el brazo de los autobuses.
Interconexin de dispositivos a distancia muy corta a un PC o al sistema integrado principal a travs del
bus ISA o PCI bus o el brazo puede ser usado. Estos autobuses conectan al bus de memoria principal a
travs de un puente (interruptor).
Los sistemas integrados habilitados con Internet a travs de protocolos de red en un conjunto de protocolos

Dispositivos y buses de comunicacin para los dispositivos Network

181

Palabras clave y sus definiciones


La comunicacin asncrona.

CAN
BUS
puerto
COM
Bluetoot
h

Control de registro de
Eliminacin
control cum de
Status
rebotes
register
Retraso
Counter
Demultiplexad
o
Dispositivo
Decodificador

dispositivo

indicador de

Evento Evento

: una comunicacin en la que una diferencia de fase constante entre el


transmisor
Reloj y recuperacin de bits de reloj en el receptor no necesita ser
mantenida y la
Relojes que guan el transmisor y el receptor no estn sincronizados.
Intervalo de tiempo
Entre los cuales un conjunto o marco de bytes que transmite no est prefijada y es
Indeterminado. La comunicacin asncrona contempla tambin el
intercambio de
Handshaking seales antes y durante la comunicacin.
: un auto-descubrimiento y auto-organizacin de protocolo de red para las
redes inalmbricas personales
Red de rea y popularmente usado en dispositivos mviles de bolsillo.
: Un bus estndar utilizado en la red de rea de control generalmente en
automocin y
Electrnica industrial.
: un puerto en el equipo donde un ratn, un mdem o una impresora serie
o inteligente mvil
Cuna de telfono se conecta en serie en modo UART de IOs y hay
handshaking
Seales para el intercambio de seales antes de la comunicacin de modo
UART.
un registro
de bits,una
que
controla
las acciones
un
:: cuando
se presiona
tecla,
debidolos
a laprogramas
accin deloresorte,
la teclade
vibra
ydispositivo.
as hace Se usa
Para
una los
operacin
de escritura
solamente.
Y
rompe
contactos.
Esto provoca
varios SO y yo s antes de que el
: un registro
en una direccin de puerto que ahorra bits de control y estado
interruptor
pulsado
y funciona
como un
Estado
es contabilizado.
Eliminacin de rebotes por hardware o por
El registro
de control
durante la escritura de comandos y el estado registrar
software
elimina
las seales
direcciones
durante
Debido
a rebotes.
de laosituacin.
:Lectura
una accin
comunicacin o ejecucin de cdigos o de ocurrencia de un
: Unidad para obtener el recuento de entradas en la ocurrencia de eventos
evento.
que pueden
Tras
bloquearencontrarse
durante unen
determinado perodo pre-definidos.
irregulares.
Funciona
comomultiplexada
temporizador
cuandolos
se mensajes
dan cuentaa
:Intervalos
Una manera
de separar
una entrada
y dirigir
de entrada
uno
de los a intervalos regulares.
Intervalos.
Varios
canales a una instancia.
: una unidad que tiene un elemento de procesamiento y que se conecta al
procesador de
Sistema incorporado internamente o a travs de la boca o en autobs. Se ha
fijado el pre-asignados
Las direcciones de los puertos del dispositivo (direcciones) de acuerdo a su
interconexin o controlador de bus
Circuito. Un dispositivo no podr prever en controlador de bus para
permitir que funcione
En modo bus master y as puede funcionar en modo esclavo.
: un circuito para tomar las seales del bus de direcciones del sistema como
entrada y genera un
Seal de seleccin de dispositivo, CS, para la seleccin de la direccin del
puerto durante el dispositivo de lectura o
Escribir instrucciones del procesador del sistema.
: un cambio de condicin actual, lo que da una seal elctrica a la entrada
o la salida
Pin o que cambia un bit de estado o que interrumpe el procesador para

1182

Los sistemas integrados

: un contador que comienza en el encendido, el cual es impulsado por un


reloj interno (sistema
Reloj) directamente o a travs de un prescaler o el control de tasa de bits y
que no puede ni
Contador modulacin
Detenido ni se restablezca.
; Frecuencia cambia la incrustacin. Los estados lgicos 0 y ME estn en
diferentes
FSK
Los niveles de frecuencia. Por ejemplo, de 0 a 1.050 Hz y 1 a 1250 Hz en un
telfono
Lnea. Se permite el uso de un canal o una lnea como lnea telefnica para
bits serial
Full duplex
La transmisin y la recepcin.
: un puerto de serie con dos tipos distintos de 10 lneas o canales de
comunicacin. Para
Ejemplo, una conexin de mdem con el puerto COM del ordenador. Hay
dos lneas
Half duplex seales de
RxD y TxD de 9 pines o conector de 25 pines. Los flujos de mensajes en
ambos sentidos en un
enlace
Instancia.
: un puerto serie con uno de 10 lneas comunes o canal. Por ejemplo, un
telfono
Temporizador de
Lnea. Mensaje comos una manera en una instancia.
: las seales antes de almacenar los bits en el puerto o bfer antes de aceptar
los bits
hardware
Desde el puerto del buffer o las seales para configurar o finalizar la
comunicacin entre
Dos de origen y destino.
: un temporizador en el sistema como el hardware que obtiene las entradas
HDLC
desde el interior
Reloj con el procesador o que permite que el reloj del sistema
(interrupciones). Un
Host
Controlador de dispositivo programa los programas como cualquier otro
dispositivo fsico.
: Nivel alto de Protocolo de Control de enlace de datos. Es para la
comunicacin sincrnica
10 puertos
Entre la principal (master) y secundario (esclavo) segn el estndar definido.
Es un
Protocolo orientado a bits.
Bus de PC
: un controlador nodo usando un protocolo y un circuito para activar el
sistema para conectar
Bfer de entrada IrDA
nmero de dispositivos
o perifricos
bus
Comunicacin Isosynchronous :El
Comunicacin
en el que una
diferencia ydepara
faseproporcionar
constante noelsemodo
mantiene
master
entre los marcos, pero se mantienen dentro de un marco. Relojes que guan
Del bus ISA.
Funcionamiento,
como lanorecepcin
de las seales
los bits intervalo
desde otros
el transmisor y elasreceptor
estn separados.
Slo elymximo
de
hosts
o dispositivos.
tiempo
no es prefijado entre que una trama de bytes que transmite es, por
: lo
unque
puerto
salidalosdemarcos,
operacin
instante. entre
Entrada
puededeserentrada
variable.o Entre
existeenel un
intercambio
los
Handshake
y protocolo
enlace
dos extremos,
o puededehaber
una pausa. Se utiliza para la transmisin en
Los
de salida
conocidos como 10 puertos. Por ejemplo,
unapuertos
red LAN
o entreson
dostambin
procesadores.
seLos
dicecontroladores
que un teclado
conectar
Teclado Teclado y controladores:
para
la interconexin con los teclados y el teclado de tal
Amanera
un puerto
que10.se realice la eliminacin de rebotes de claves, el bfer de
: Un
bus estndar
que sigue
un protocolo
de comunicacin
se usaoentre
entrada
de caracteres
e interrumpir
al procesador
en cada yentrada
al final
Varios
Permite
que un sistema
obtener
los datosentrada(s)
y enviar los
datos
de la ICs.
lnea
de carcter
y enviarpara
cdigo
ASCII(s)
para
el
a procesador
mltiples compatible
para su posterior procesamiento e interpretacin de datos o
comando.
LCs
conectado en este bus.
: un buffer donde un dispositivo de entrada pone un byte(s) y el procesador leer ms tarde.
: Infrared Data Association protocolos recomendados para control remoto
por infrarrojos y
Free Running

Dispositivos y buses de comunicacin para los dispositivos Network

183
V ------------

El controlador de LCD

Comunicacin
maestro/esclavo

Multiplexado
Puertos On-chip y
dispositivos

: un controlador para pantallas LCD con carcter CGRAM interno (RAM y


ROM) Grfico para las fuentes de los caracteres y que obtiene los comandos y
datos para mostrar frente al puerto del sistema.
: una comunicacin entre dos procesadores o dispositivos cuando un procesador
gua al otro utilizando un reloj la transmisin de bits a un esclavo, despus o
antes de recibir confirmacin o respuesta dirigida desde el esclavo. Un esclavo
tambin pueden funcionar como maestro o viceversa mediante un programa
adecuado
de control
de hardware
o de al
bits.
: una forma
de dirigir
los mensajes
canal de salida desde los mltiples
canales de origen.

: los puertos y dispositivos junto con la unidad de procesador, por ejemplo, en


microcontroladores, que se comunican mediante buses internos del sistema.
Salida de drenaje abierto : un portn con una falta internamente conexin entre su drenaje y suministro.
La ventaja es que nos eleva la tensin del circuito requerido y los niveles
actuales en la interfaz. Tire hacia arriba del circuito externo es necesaria
cuando se usa la salida.
El bfer de salida
: un registro buffer desde donde un dispositivo de salida recibe el byte(s) despus
de una operacin de escritura del procesador.
Puerto paralelo bus
: un puerto para las operaciones de lectura y escritura en varios bits
PCI/PCI bus X PISO

simultneamente en una instancia. : Un bus estndar utilizado como " bus de

.a,ii

Interconexin de Componentes Perifricos-.

Plug and play


Protocolo

: Un bus estndar utilizado como 'PCI extendido "bus".


: un registro de desplazamiento para una entrada y salida serie paralelo. Se utiliza
: para
un dispositivo
la recepcin
ende
unbits
busenpuede
serie en
sermodo
detectado
sincrnico.
automticamente cuando est
conectado al bus y el dispositivo se puede utilizar directamente sin necesidad
de
restablecer
reiniciar elde
sistema.
: una
forma de otransmisin
mensajes en una red mediante el uso de software
que aade bits adicionales como los bits de arranque, los encabezados, las
direcciones de origen y destino, control de errores y terminando bits. Un
conjunto de protocolo puede tener mltiples capas y cada capa o subcapa
utiliza su protocolo antes de que un mensaje se transmite en una red.

Modulacin PSK

: Cambio de fase de modulacin de incrustacin. La lgica 0 y 1 tienen


diferentes fases en una seal de alta frecuencia. Modulacin PSK permite
el uso de un canal o una lnea como lnea de telfono para la transmisin y
recepcin de bits en serie.
QPSK
: Cambio de fase en cuadratura de la incrustacin. Un ejemplo es el par de bits
00.01, 10 y 11, que son enviados al Cuadrante diferente las diferencias de fase
de una seal de frecuencia de voz. Se permite el uso de las lneas telefnicas
para la transmisin y recepcin de bits en serie en el doble de la tasa. Permite
que el mdem de 56 kbps para mostrar un rendimiento equivalente a 112 kbps.
QPSK y sus mejoras tambin se utilizan ampliamente en las comunicaciones
Cuasi puerto bidireccional : uninalmbricas.
puerto con la doble ventaja de usar un circuito como pull-up por los niveles
de tensin y corriente necesarios cuando la interconexin y uso ningn circuito
pull-up durante un corto periodo de tiempo suficiente para conducir un circuito
LSTTL.
: una
vez que siempre se incrementa en intervalos constantes sin detenerse o
Sanar sintonizar
restableciendo y que es utilizado como referencia por el sistema en todo
,1* del reloj de tiempo
momento.
real (RTC)
: un reloj que genera continuamente interrumpe a intervalos regulares
interminablemente. Un RTC interrumpir las garrapatas los
temporizadores del sistema, por ejemplo, software rimers (SWTs).

otros

184 :

RS2J2C puerto

RxD

Los sistemas integrados

: un estndar para la transmisin y recepcin de UART en la cual TxD y RxD


se encuentran en diferentes niveles de tensin (+12 V para 'O' y -12 V para
T) y seales de enlace, CTS, RTS, DTR, DCD y R1 estn en los niveles TTL.
La RS232C estndar se utiliza en los puertos COM.
: una lnea usado para la recepcin de bits serie UART. El 0 y 1 de seales
estn en TTL o RS232C y los niveles son similares a los de una lnea TxD.

Pan de serie

: un puerto para las operaciones de lectura y escritura con un bit en una


instancia y donde cada bit del mensaje estn separados por intervalos de
tiempo constante.
SIPO
: un registro de desplazamiento paralelo de serie para entrada y salida paralelo.
Se utiliza para la transmisin de bits en serie en modo sincrnico.
Temporizador de software : Software (un servicio de rutina) que ejecuta y aumenta o disminuye el
recuento- variable en una interrupcin de un temporizador de salida o de una
interrupcin del reloj en tiempo real. Un temporizador de software genera
tambin interrumpir el desbordamiento del conde-valor o de valor de acabado
del conde-variable (alcanzando el valor predefinido) o generar un mensaje
para una tarea. Las interrupciones pueden generar mediante la instruccin de
interrupcin de software como SWI.
Registro de estado
: un registro de bits, lo que refleja la situacin en el puerto de amortiguamiento.
Es para una operacin de lectura solamente. El registro de estado poco o bits
pueden o no auto-reset del dispositivo mantenimiento despus de la lectura.
Comunicacin sncrona
: la comunicacin en el que una diferencia de fase constante se mantiene entre
los relojes que guan el transmisor y el receptor. Un intervalo de tiempo
mximo es el pre
Reloj del sistema
: un reloj a escala para el reloj del procesador y que siempre se incrementa sin
parar o restablecer y genera interrupciones en los intervalos de tiempo
Multiplexacin por divisin : predefinidos.
un camino por el cual los mensajes de diferentes canales puede ser enviado
Ttme
en diferentes intervalos de tiempo.
Acabado del temporizador
Desbordamiento o
interrupcin del
temporizador
Restablecimiento del
sintonizador
Recarga de sintonizador
Pantalla tctil

TxD

[/ART

: un estado despus de que el temporizador adquiri el valor de conteo


preestablecido y parado. Genera una interrupcin en el acabado.
: un estado en el que el nmero de entradas de conteo super el ltimo valor
acquirable y en alcanzar el estado de desbordamiento, una interrupcin puede
ser generada.
: un estado en el que el cronmetro muestra todos los bits como os o es. Un
restablecimiento puede ser tambin despus del desbordamiento en caso se
para funcionamiento
: programa
Estado enun
el temporizador
cual temporizador
muestra todos continuo.
los bits como os o es. Una
recarga tambin puede tener lugar despus de haber acabado en caso se
programa un temporizador para auto reload y empezar de nuevo.
: un dispositivo GUI para mostrar iconos, pictogramas, los mens y el teclado
virtual en una pantalla LCD y dando rdenes de entrada o seleccin de mens
o ingresando los datos utilizando el dedo o el lpiz ptico para tocar en la
pantalla adecuada.
: una lnea utilizado para la transmisin de bits serie UART. El 0 y 1 de seales
estn en RS232C niveles de voltaje cuando el puerto COM RS232C es
utilizado, o en los niveles TTL de microcontroladores.
: un estndar de entrada y salida serie asncrona para puerto serial bits. En
microcontroladores (UART) generalmente enva un byte en formato de 10
bits o en formato de 11 bits. El

1185 j

Dispositivos y buses de comunicacin para los dispositivos Network

:.

__ J

Formato de 10 bits se utiliza cuando un bit de arranque precede al


mensaje de 8 bits (carcter) y
Un bit de parada logra el mensaje. Un formato de 11 bits se utiliza cuando
un bit especial tambin
Precede al bit de parada.
Bus USB
: un estndar de bus plug and play para una rpida transmisin y recepcin
serie.
Watchdog Timer
: un dispositivo en un sistema de distribucin que se restablece o ejecuta un
servicio de temporizador watchdog
WDT rutina (rutina) despus de obtener la direccin del vector de
interrupcin en el sistema.
Despus de un tiempo predefinido observados en el caso de que un
evento no ocurra. Cuando el
Visto ocurre un evento, se reinicia de manera que no es tiempo de espera
y no
WDT ejecutar la rutina.
WLAN
una determinada

Preguntas de

: Una LAN inalmbrica para redes mviles y dispositivos inalmbricos con


La infraestructura, que permite el acceso de dispositivos a travs de
puntos de acceso. El
Las funciones del dispositivo segn estndares IEEE 802.11 protocolos
repaso
especificados.

ZigBee
: un nuevo protocolo de red inalmbrica para la comunicacin de corto
1.
(a) Cul
es la ventaja de un procesador que asigna las direcciones de [o puertos y dispositivos como un
alcance
entre varios
dispositivo de memoria?
De sensores y dispositivos, y se ha auto-descubrimiento y auto(b) Dar un diagrama para el puerto
de interfaz
organizacin
dede
lasdispositivos
funciones. con el sistema de autobuses.
2. Comparar las ventajas y desventajas de usar transferencias de datos serie y paralelo/deviccs porls.
3. (a) Explique tres modos de comunicacin serie, 'asynchronous' 'isosynchronous'' usando y asncrona.
Dispositivos serie con un ejemplo de cada; b) describir y comparar UART. RS232C y dispositivos
SDIO.
4. Cmo los siguientes indican el inicio y el final de un byte o de tramas de datos? UART (a) (b) (c) Puede
HDLC
5. Cules son los dispositivos de comunicacin serie interna en 8051 (A) y (b) 68HCI17 comparar los
modos de trabajo
Cada uno de estos.
6. Puerto puede tener un dispositivo de entrada de datos multibyte bulferfs bufferfs) y datos de salida).
Cules son las ventajas de estas?
7. Explicar las ventajas de los sistemas habilitados para Internet. Cul es el dispositivo con conexin a
Internet incorporada en el embedded
Sistema?
8. Explicar las ventajas de los dispositivos inalmbricos. cmo los dispositivos inalmbricos usando
diferentes protocolos de red?
9. Qu entiende usted por autobuses para redes de dispositivos en serie? Qu entiende usted por redes de
autobuses
Dispositivos paralelos?
10. Explicar el uso de cada uno de los bit de control de I3C bus protocol.
11. Qu entiende usted por los dispositivos plug and play? Cules son los protocolos de bus Los buses de
UART, RS232C, USB, Bluetooth,
Puede y PCI que admiten los dispositivos plug and play?
12. Qu entiende usted por el apego y detxhment caliente? Cules son los protocolos de bus Los buses de
Bluetooth, UART, CAN,
PCI y USB que soporta hot apego y desapego?

,|h
13. Qu es un temporizador? Cmo realizar un contador (A) (b) Funciones de temporizador de tiempo
prefijado y generacin de eventos iniciados
(c) Funciones de captura de tiempo?

Los sistemas integrados

J 186

Ejercicios de prctica
15. Cmo hacer el siguiente dispositivo caractersticas ayudan en sistemas integrados? (a) entrada de trigger
Schmitt (h) de baja tensin de 3,3 V (c) IOs controlado dinmicamente la coincidencia de impedancia (c)
PCS subunidad (d) y la subunidad de PMA (cl SerDes. Dar un ejemplar de cada aplicacin.
16. Protocolo PPP para redes punto a punto de partida tiene 8 bits de la bandera. 8 bits de direccin.
Especificacin del protocolo de 8 bits, un nmero variable de bits de datos, el CRC de 16 bits y 8 bits de la
bandera final. El nmero mximo de bits por trama PPP puede ser 12064. Cuntos nmero mximo de bytes
que pueden ser transferidos por trama PPP? Cul es el porcentaje mnimo de sobrecarga en el payload
(bastidor)?
17. La lista de aplicaciones del free running contador, interrumpiendo peridicamente de temporizador y
contador acumulador de pulsos (PACT). Cmo se obtiene la salida PWM desde un pacto? Cmo puede
obtener salida DAC desde un dispositivo PWM?
18. Un contador de 16 bits est recibiendo aportaciones de un reloj interno de 12 MHz. Hay un circuito, el cual
prescales prescaling por un factor de 16. Cules son los intervalos de tiempo en que ocurren interrupciones
desbordamiento de este temporizador? Qu ser de tiempo antes de que estas interrupciones debe ser
atendido?
19. Qu entiende usted por un software de temporizador (SWT)? Cmo la SWTs ayuda en programar varias
tareas en tiempo real? Supongamos tres SWTs se programan para saltar tras 1024, 2048 y 4096 veces desde
el desbordamiento interrupciones del temporizador. Cul ser la tasa de interrupciones de tiempo de espera
de cada SWT?
20. Cules son las ventajas y desventajas de confirmacin negativa poco?
21. Una nueva generacin de automvil tiene aproximadamente 100 sistemas integrados. Cmo el arbitraje de
bus los bits, bits de control para la direccin y longitud de datos, bits de datos, bits de comprobacin CRC,
acuse de recibo y finalizacin de bits bits de bus CAN la ayuda de dispositivos de redes distribuidas en un
automvil.
22. Cmo funciona el protocolo USB para proporcionar la conexin del dispositivo, configuracin, restablecer
la reconfiguracin, uso compartido de ancho de banda con otros dispositivos, desprendimiento (mientras
que otros estn en funcionamiento) y la reconexin?
23. Disear una tabla que compara la velocidad de operacin mxima y longitudes de bus y dar dos ejemplos de
los usos de cada uno de los siguientes dispositivos serie UART (a), (b) I-cable CAN (C) Industrial I'C (d)
SM l'C (e) bus SPI de serie 68 microcontroladores de Motorola (0 tolerante a fallos pueden (g) Puerto serie
estndar (h) FireWire (i) l:C (J! Alta velocidad puede (k) IEEE 1284 (I) de alta velocidad I-C (m) baja
velocidad USB 1.1 de alta velocidad y de canal en canal) SCSI paralelo (s) (p) Fast SCSI Ultra-3 SCSI (q)
FireWire/IEEE 1394 (r) USB 2.0 de alta velocidad.
24. Utilice la bsqueda en Internet. Disear una tabla que compara la velocidad de operacin mxima y
longitudes de bus y dar dos ejemplos de los usos de cada uno de los siguientes dispositivos paralelos1, (a)
(b) ISA EISA (c) (d) PCI PCI-X (e) (f) Compact PCI_GMII gigabit Ethernet (MAC) Interfaz de intercambio
(g) XGMI (10 Gigabit Ethernet MAC Interchange Interface) (h)CSIX-l. 6.6 Gbps HSTL de 32 bits con 200
MHz de rendimiento (i) Interconexin de15,1 RapidlO especificacin v 1.1 a 8 Gbps con rendimiento de
500 Mbps o 250 MHz doble sentido registrar el rendimiento utilizando 8 bits I..VDS (Bus de datos de bajo
voltaje).
25. Uso web search y disear una tabla que proporciona las caractersticas de los siguientes buses serie de ltima
generacin, (a) IEEE 802.3-2000 [1 Gbps de ancho de banda Gigabit Ethernet MAC (Media Access
Control)] para 125 MHz de rendimiento (b) IEE802.3p oe proyecto 4.1 [10 Gbps Ethernet MAC] de 156.25
MHz doble direccin rendimiento! (c) IEE P8l)2.3oe proyecto 4.1 [12,5 Gbps Ethernet MAC] para cuatro
canales de 3,125 Gbps por canal transreceiver rendimiento] (d) XAUI (10 Gigabit Attachment Unit) (e) (10
Gigabit XSBI Serial Bus Interchange) (f) SONET OC-48, OC-192 y OC-768 (g) ATM OC-12/46/192.
26. Tener un mvil telfono inteligente con un teclado T9. Escribir una tabla para los estados de cada tecla.
Escribir otra tabla para los nuevos miembros generado por una combinacin de dos teclas.
27. Compare los puertos paralelos de interfaces para el teclado, la impresora, el controlador y la pantalla tctil
LCD.
28. Mostrar el uso de dispositivos USB de la cmara digital, la impresora y el ordenador para descargar una

Los controladores de
dispositivo y
Servicio de interrupciones
Mecanismo

Hemos aprendido lo siguiente en el captulo


anterior:
Sistema integrado que incluye dispositivos de
hardware
Comunicarse a travs de los puertos serie y
paralelos.
Y autobuses. Puede haber tambin puertos para
reales -Tiempo de voz y vdeo, I/Os.
Un microcontrolador dispone de comunicacin
serie
Y la sincronizacin de dispositivos. Puede tener
el teclado, stepper
Motor, y controladores de pantalla tctil LCD.
buses serie o paralelo la interconexin
Los puertos y dispositivos distribuidos.
L2C bus se utiliza para la comunicacin inter-IC.
Ella
Interconecta mltiples ICs.
8
CAN bus es utilizado en el control de la red
Dispositivos distribuidos. Se utiliza en los
automviles
Y sistemas industriales.
USB se usa para la rpida transmisin serie y
Recepcin entre el sistema embebido y
Los dispositivos serie como el teclado, la
impresora y

Los buses paralelos, ISA y PCI/PCI-X se usan para la


comunicacin por bus de dispositivos entre el equipo host o
sistema basado en PC y dispositivos o sistemas o tarjetas, por
ejemplo, Tarjeta de interfaz de red (NIC).
Protocolos inalmbricos se utilizan para la comunicacin y la
sincronizacin de dispositivos distribuidos en la red de rea
personal inalmbrica.
Habilitado para Internet sistemas embebidos puede red a
Internet usando el conjunto de protocolos TCP/IP.
Tambin he aprendido

" Dispositivo de acceso es requerido para la apertura, conexin,


enlace, la lectura, la escritura, la desconexin o cierre. Procesador accede a un
dispositivo usando las direcciones de dispositivo se registra y almacena. Un
procesador accede a los dispositivos internos, dispositivos a los puertos de
E/S, C
Los dispositivos perifricos y otros dispositivos mediante el
chip
Direcciones.
" un simple dispositivo como puerto SPI (Seccin 3.2.4) tiene
direcciones para tres conjuntos de sus registros: registro de datos(s) (o
tampones), registros de control) y registro de estado(s). D " Un dispositivo
tambin puede tener varios registros (Tabla 3.4). Para
Ejemplo, impulsada por el bus PCI device (Seccin 3.12.2)
tiene 64 bytes estndar registros de configuracin
independiente del dispositivo.

Yo

(
,1*

En este captulo se inclin liow el concepto de rutinas de servicio de interrupcin se utiliza


Para abordar el DMT el dispositivo lOs, peticiones e interrupciones. Aprenderemos la
Siguiente:
1. E/S programada ocupado y mtodo Wait y problemas con este mtodo de E/S.
2. Las interrupciones de trabajo y de las interrupciones del servicio en el sistema
de mecanismo y ejemplos sencillos de interrupciones de hardware y de
software.
3. Rutina de servicio de interrupcin (ISR) son llamados por el sistema cuando
las interrupciones de hardware del dispositivo.
4. Las funciones de software para las seales y las excepciones tambin llamada
ISR. Un ISR tambin se llama en una trampa o la ejecucin de una instruccin
de software para interrumpir.
5. Uso de vectores de interrupcin, la tabla de vectores y el enmascaramiento.
6. Latencia de interrupciones y plazo de una interrupcin de servicio.
7. Contexto y cambio de contexto en una interrupcin.
8. Nuevos mtodos para el rpido cambio de contexto adoptados en los procesadores.
9. Clasificacin ofprocessors para una interrupcin de servicio que 'Save'' o no
guardar el contexto distinto del contador de programa.
10. El uso del canal DMA para facilitar la interrupcin de pequeo periodo de
latencia para las transferencias de datos mltiples en rpida sucesin.
11. Hardware y software de asignacin de prioridades entre las mltiples fuentes
de interrupciones.
12. Los mtodos de servicio en caso de demanda de servicio simultneo de mltiples fuentes
de interrupcin.
13. Los controladores de dispositivo para un dispositivo o puerto de inicializacin y accesos.
14. El uso de controladores de dispositivo, por ejemplo, Linux Internals.
15. Ejemplos de la inicializacin del dispositivo y el controlador de dispositivo que
codifica para los puertos paralelos y seriales UART de lnea.

4.1 PROG RAM M E T-l/s 8USY-WAIT ENFOQUE

Mecanismo sin interrumpir el servicio


Ejemplo 4.1 se muestra un ejemplo de programacin de servicio con un
dispositivo E/S programada ocupado-espere enfoque utilizando un dispositivo sin
interrupcin y el ISR correspondiente. Este ejemplo aclarar los problemas en este
enfoque y las ventajas de utilizar una interrupcin de servicio basada en el mecanismo.

Ejemplo 4.1.
Asumir una red de 64 kbps. Utilizando un UART que transmite en el formato
de 11 bits por carcter, la red transmite a ms de 64 kbps -s-11 =5818
caracteres por segundo, lo que significa que por cada 171,9 fts es un

personaje esperado. Antes

171.9 Ns, el puerto del receptor debe ser verificado para leer y encontrar
otro personaje suponiendo que todos los caracteres recibidos estn en sucesin
sin ningn espacio de tiempo.

190

Los sistemas integrados

Deje el puerto A estar a una tarjeta de interfaz Ethernet en un PC y el puerto B ser su entrada de mdem
que pone a los personajes en la lnea telefnica. Deje que ln_A_OutJ ser una rutina que recibe un carcter
de entrada desde el puerto A y re-transmite un carcter de salida al puerto B. asume que no hay
generacin de interrupcin e interrumpir el servicio (mecanismo de manejo). Deje que ln_A_Out_B tiene
que llamar a la rutina los siguientes pasos una convergencia y ejecuta los ciclos de funciones i a v,
garantizando as que el puerto del mdem a no perder la lectura del personaje.
Ln_A_Out_B rutina:
1. Llamar a la funcin i
2. Llamar a la funcin ii
3. Llamar a la funcin Hi
4. Funcin de llamada iv
5. Llame a la funcin v
6. Loop volver al paso 1
!n_A_OutJ) rutina llama a los siguientes pasos.
Paso a: Funcin i: verificar la existencia de un personaje en el puerto A. Si no est disponible, entonces
espere.
Paso B: Funcin ii: Un puerto de lectura de bytes (caracteres por mensaje) y volver al paso
de una instruccin, que llamar a la funcin iii.
Paso c: Funcin iii: descifrar el mensaje y volver al paso de una instruccin, que llamar a la funcin . iv.
Paso d: Funcin iv: codificar el mensaje y volver al paso de una instruccin, que llamar a la funcin v.
Paso e: Funcin v: transmitir el mensaje codificado al puerto B y volver al paso a la ltima instruccin,
que comenzar una etapa desde el principio.
Un paso es llamado tambin el sondeo. El sondeo de un puerto significa encontrar el estado del puerto,
preparado con un carcter (un byte) en la entrada. El sondeo debe comenzar antes de 171,9 ps debido a
que los caracteres se espera a 64 kbps. Si las instrucciones de programacin en los pasos b, c, d y e y
funciones ii a v tomar un tiempo total de funcionamiento inferior a 171,9 ps entonces este enfoque
funciona.
Problemas con la bulliciosa-esperar el enfoque de la programacin es la siguiente.
1. El programa debe cambiar a ejecutar el in_A_Out_B ciclo de pasos de a a e en un plazo inferior a
171.9 Ps. Programador debe asegurarse de que los pasos de En_A_Out_B y cualquier otro
dispositivo pasos del programa nunca superar este tiempo.
2. Cuando los personajes no son recibidos en un puerto en sucesin regular, el periodo de espera
durante el paso para sondear el puerto puede ser muy significativamente. El desperdicio de
tiempo de procesador para los perodos de espera es la principal desventaja del enfoque de
espera ocupada.
3. Cuando otros puertos y dispositivos estn tambin presentes en el sistema, el problema es de
programacin para sondear
Cada puerto y dispositivo y asegurar que el programa pasa a ejecutar el in_A_Out_B de paso ,
as como los interruptores para sondear cada puerto o dispositivo en el tiempo y, a continuacin,
ejecutar cada una de las rutinas de servicio relacionadas con las funciones de otros puertos y
dispositivos dentro de un intervalo de tiempo especfico y asegurar que cada uno de ellos
es J sonde a tiempo.
Jj
4. El programa y las funciones son el procesador- anu especficos de dispositivo ocupado en el
anterior-wait ml
Enfoque y todas las funciones del sistema se deben ejecutar en la sincronizacin y los intervalos
son Mi completamente dependientes de los perodos asimilados para la ejecucin de software.
Mm
En lugar de controlar continuamente para caracteres aiTne puerto mediante la ejecucin de una
funcin (i), cuando un mdem recibe un carcter de entrada y establece un bit de estado en su registro
de estado, una interrupcin de un puerto debe generarse. En respuesta a la interrupcin de una rutina

Los controladores de dispositivo y interrumpe el mecanismo de servicio

191

Servicio de dispositivo sin necesidad de utilizar 1SR es la rutina (funcin) llamada similar a ln_A_OM_B.
Cada rutina (funcin) llamada tiene las siguientes caractersticas.
1. Una llamada de funcin despus de ejecutar cualquier instruccin en cualquier programa es un planificado
(programado por el usuario) la desviacin de la actual secuencia de instrucciones a otra secuencia de
instrucciones y esta secuencia de instrucciones se ejecuta hasta el retorno de aquella.
2. En una llamada de funcin, las instrucciones se ejecutan como una funcin de la 'C' o un mtodo en Java.
3. Llamadas de funcin estn anidados. Anidamiento puede explicarse de la siguiente manera: cuando una
funcin que llama a otra funcin 2, que a su vez llama a otra funcin 3 y, a continuacin, en la devolucin
de 3, el retorno a la funcin 2 y luego a la funcin 1.
La figura 4.1 muestra la in_A_Out_B pasos rutinarios a" a " e" para las cinco funciones i a v llamado
por ln_A_Out_B y cmo cada uno de los llamados procesos de funcin en una llamada y en un retorno de aquella.
Numeraciones en las flechas muestran las secuencias durante la ejecucin del programa (flujo).
Controlador de red Programa ln_A_Out_B sin interrupciones
Paso a

Paso b.

Fig. 4.1 Los pasos a a e para cinco llamadas de funcin en un ejemplar del programa de unidad de red.
En_A_0UT_B, tambin se muestra cmo cada uno de los llamados procesos de funcin en una
llamada y en un retorno. Numeraciones en las flechas muestran el programa ejecuta secuencias

Un enfoque es '10' programada transferencia, tambin llamado "ocupado y esperar' (servicio de traslado
para acceder a las direcciones de dispositivos de entrada o salida o cualquier otra accin). Las funciones
del sistema de sincronizacin y los horarios son completamente dependientes de software. Cuando los
perodos de espera son una fraccin importante del total del perodo de ejecucin del programa, el
desperdicio del tiempo de procesador en espera es la principal desventaja de este enfoque. Programados
10 enfoque puede utilizarse en procesadores de propsito nico (controladores).

I 192

Los sistemas integrados

" 4.2 Concepto de ISR


Interrumpir significa acontecimiento, que invita a la atencin del procesador para alguna accin en el caso de
hardware o software.
1. Cuando un dispositivo o puerto est listo, un dispositivo o puerto genera una interrupcin o cuando se
completa la accin asignada, se genera una interrupcin. Esta interrupcin se denomina interrupcin del
hardware.
2. Cuando el software de tiempo de ejecucin se detect una condicin de excepcin, cualquiera de los
procesadores hardware o una instruccin de software genera una interrupcin. Esta interrupcin se
denomina interrupcin de software o trampa o excepcin.
3. El software puede ejecutar la instruccin de software para interrumpir la seal para la ejecucin de ISR.
La interrupcin debido a la seal tambin es una interrupcin de software [La seal difiere de la funcin
en el sentido de que la ejecucin de la funcin de controlador de seal (ISR) puede ser enmascarada y
hasta que la mscara se restablece, el controlador no se ejecutar. Por otro lado la funcin siempre se
ejecuta sobre la llamada despus de una instruccin de llamada.]
En respuesta a la interrupcin, la rutina o el programa que se est ejecutando en la actualidad se interrumpe
y se ejecuta un ISR. Tambin se llama ISR ISR de controlador de dispositivo en el caso de los dispositivos y se
denomina seal o excepcin o trampa I wuller en el caso de interrupciones de software. Controlador de
dispositivo isr ejecutar en interrupciones de software del dispositivo abierto (), cerrar (), read, write () () u otras
funciones de los dispositivos.
Ejemplos en las secciones 4.2.1 y 4.2.2 muestran la importancia de interrupciones y el acceso a los
dispositivos utilizando la ISR.y la importancia del uso de los ISRs que generan en las
trampas o excepciones o seales.

i.2.1 Ejemplos de puerto o dispositivo se interrumpe y ISR


Ejemplo 4.2.

Los siguientes son ejemplos de eventos de interrupcin y el acceso a los dispositivos mediante el ISR.
Recapitular Ejemplo 4.1. Supongamos que un personaje al mdem de entrada genera un puerto a interrumpir y
establece un bit de estado en el registro de estado. En interrumpir, una rutina de servicio ISR_PORT_Character
se ejecuta una forma que garantiza que el puerto del mdem a no perder la lectura del personaje. ISR_
PortA_Character ejecuta paso/en lugar del paso una funcin / y el paso b funcin ii de En_A_Out_B de rutina
en Ejemplo 4.1. Coloca el carcter ledo en un bfer de memoria. Los pasos c, d y e son independientes y ahora
son partes de una llamada de funcin out_B. ISR_ PortA ^personaje se ejecuta de la siguiente manera:
Paso 1/funcin vi: Leer un carcter de puerto. Restablecer el bit de estado a fin de que el mdem est listo
para el siguiente carcter de entrada (resetear el bit de estado es generalmente automtico sin necesidad
de instruccin especfica). Ponerlo en un bfer de memoria. El buffer de memoria es un conjunto de
direcciones de memoria donde los bytes (caracteres) estn en cola para su procesamiento posterior.
2. Retorno del ISR.
Out_B rutina es como sigue:
1. Paso g: Llamar a la funcin vi a descifrar el mensaje caracteres en el bfer de la memoria y volver a la
instruccin siguiente paso h.
2. Paso h: funcin Llamar vii para codificar los caracteres del mensaje y volver a la instruccin siguiente
paso k.
3. Paso fc funcin Llamar viii para transmitir el carcter codificado para el puerto B.
4. La devolucin de la funcin,
.
^
La figura 4.2 muestra el paso/ejecutar en ISR_ PortA _personaje en el puerto una interrupcin y pasos
de G a k en out_B de rutina. Numeraciones en las flechas muestran el programa tunning secuencias.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

Cada paso tiene tres partes, guardar el contexto, ejecutar y recuperar el


contexto para volver
Fig. 4.2 Paso/ejecutar en ISR_ PortA _personaje en el puerto una interrupcin y
pasos de G a k en out_B de rutina. Numeraciones en las flechas muestran las

secuencias de funcionamiento del programa-pasos / g, h y k

Ejemplo 4.3.
Asumir un dispositivo de entrada de cantidad de moneda tor en una mquina expendedora automtica de
chocolate (Seccin 1.10.2). Sin mecanismo de interrupcin, una manera es la transferencia de espera ocupados
por el que el dispositivo espera la moneda continuamente, activa en la deteccin de la moneda y ejecuta el
servicio de rutina.
En el caso de mtodo impulsado por el dispositivo debe despertar y activar cada interrupcin despus de
cada deteccin coin-evento Inserting. El dispositivo se encuentra en un puerto de entrada. Recoge una moneda
insertado por un nio. El sistema despierta y activa en interrumpir mediante una interrupcin de hardware. El
sistema de interrupcin de hardware en el puerto recoge la moneda mediante la ejecucin de una rutina de
servicio. Esta rutina se llama controlador de interrupcin de rutina o ISR o funcin de controlador de
dispositivo para la moneda-Lectura de puerto. La figura 4.3(a) muestra el ISR en el ACVM ejemplo.
1
Evento de moneda Interrum
pir
Evento: insercin de
moneda, la clasificacin
P0-P3
y la cantidad de moneda (1 o
2 o 5 o 10) enviados a
un puerto de entrada
PA). Establecer el
estado del puerto bii.

1
2
Evento
de
Llam
--------------moneda
e
ar
Input
Procesador Datos
En un
Autob
dispositivo
s
4 Volver

(a)

ISR
CoinRead leer
el puerto P0-P3
bits bit de estado
Restablecer
el puerto
Guardar suma en un bfer de
memoria de una tarea de la
seal
Ts
Seal sistema ACVM
ISR o tarea

Los sistemas integrados

194!

Fig. 4.3 (a) Uso de ISR en la mquina expendedora automtica de chocolate (b) Uso de ISR
y tres seales 1, 2 y 3 para las tres tareas en el ejemplo de la cmara digital (c)
Uso del ISR en el telfono mvil restablecer clave ejemplo de interrupcin

Ejemplo 4.4.
Asumir un sistema de cmara digital (Seccin 1.10.4). Tiene un dispositivo de entrada de imagen. Cuando el
sistema activa el dispositivo debera adquirir imagen-datos de la trama. El sistema despierta y activa un
interruptor interrupcin. La interrupcin es a travs de una seal de hardware del dispositivo interruptor. Sobre
la interrupcin, un ISR (tambin pueden ser considerados como imgenes de la cmara la funcin de controlador
de dispositivo) para la lectura inicia la ejecucin, pasa un mensaje (seal) 1 para una funcin o un subproceso
del programa o tarea, que detecta la imagen y, a continuacin, la funcin lee el dispositivo CCD frame buffer; a
continuacin, la rutina pasa la seal 2 a otro programa o funcin rosca o tarea para procesar la seal y, a
continuacin, 3. Resta offsets usando una tarea y comprime los datos de imagen utilizando una tarea. Esta tarea
tambin guarda los datos de la trama de la imagen en un archivo comprimido con memoria flash. El sistema de
cmara de nuevo despierta y activa en J a travs de una seal de interrupcin de hardware desde un dispositivo
interruptor y imprime el archivo imagen tras el archivo t la descompresin. El sistema de interrumpir luego
ejecuta otro ISR. La rutina ISR es el dispositivo controlador- mi funcin de escritura para las salidas a la
impresora mediante el bus USB conectado a la impresora, mifigura 4.3(b) Se muestra el uso de la ISR para el
marco de lectura en el ejemplo de la cmara digital.
ISR accede a un dispositivo de servicio (configuracin, inicializando, activacin, fijacin de apertura, lectura,
escritura, restableciendo, desactivacin o cierre). Isr as como la funcin de los controladores de dispositivo.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

I 195

Ejemplo 4.5
Asumir un sistema de telefona mvil (seccin 1.10.5). Tiene una tecla de reinicio del sistema, cuando se pulsa,
se restablece el sistema a un estado inicial. Cuando se pulsa la tecla de reinicio el sistema despierta y activa
un restablecimiento de interrupcin de hardware a travs de una seal de la tecla reset del circuito. Sobre
la interrupcin, un ISR (tambin puede ser considerado como clave de restablecer la funcin de controlador
de dispositivo) suspende toda la actividad del sistema, enva mensajes a las funciones de visualizacin para el
programa roscas o las tareas para mostrar el men del estado reset inicial y los grficos en la pantalla LCD,
y tambin seales para activar la pantalla LCD del dispositivo temporizador de apagado para 15s tiempo de
espera (por ejemplo). Despus de la t tiempo de espera nuevamente el sistema despierta y activa a travs de la
interrupcin de la seal de hardware interno M desde el dispositivo temporizador y ejecuta otro ISR para enviar
un bit de control para el dispositivo LCD. El ISR es mirutinadecontrolador del dispositivo LCD off-funcin
para el dispositivo LCD. Apague los dispositivos de control reset
MM
Bits. La figura 4.3(c) Se muestra el uso de la ISR en los telfonos mviles restablecer clave de interrupcin.
4.2.2 Ejemplos de interrupciones de software y ISR
MM
Ejemplos 4.2 a 4.5 muestran claramente que las interrupciones y los ISRs (controladores de dispositivo)
desempean el papel ms importante en el uso de los sistemas de hardware y dispositivos. Piense en cualquier
hardware del sistema y dispondr de dispositivos y por lo tanto necesita controladores de dispositivo. El software
incorporado o el sistema operativo para el software de aplicacin debe constar de los cdigos para el dispositivo
(i) configurar (inicializacin), (ii) la activacin (tambin llamado de apertura o de acoplamiento), (iii) la funcin
de conduccin para leer, (iv) la funcin de conduccin para escribir y (iv) la reconversin (tambin llamado
desactivar o cerrar o desconectar). Cada dispositivo tarea es completada por primera utilizando un Router ISR-a
llamadas de funcin de controlador de dispositivo ISR mediante una instruccin de interrupcin de software
(SWI).
Un programa debe detectar la condicin de error o tiempo de ejecucin excepcionales condiciones encontradas
durante la ejecucin. En un programa el hardware detecta esta condicin (llamado trap) o una instruccin SWI es
usado que se ejecuta en la deteccin de la excepcional condicin en tiempo de ejecucin durante los clculos o la
comunicacin. Por ejemplo, detectando que la raz cuadrada de un nmero.negativq est siendo calculada o
detectar el ilegal argumento de la funcin o de detectar que la conexin a la red no se encuentra. Deteccin de una
excepcional condicin en tiempo de ejecucin se llama lanzar una excepcin por el programa. Una rutina de
servicio de interrupcin (excepcionales) ejecuta la rutina de identificador, que se denomina funcin de captura
como se ejecuta sobre la captura de la excepcin que se produce al ejecutar un SWI. Figura 4.4(a) Se muestra el
uso de SWI instrucciones para llamar a una funcin en el ISR para arrojar y atrapar a las excepcionales condiciones
_ durante
1 __ los clculos. Figura 4.4(b) Se muestra el
que se producen
enun
tiempo
de ejecucin
de la seal generada
Lauso
funcin
Handler excepcional
Lanzar
evento1
Softwar
Llame final
por SWI, y el manejo de la seal despus
e de eso. Encontrar una fuente
Evento: lanzar una excepcin Interrum
a1 a detectar una condicin de pir
error o de estado de excepcin
en el bloque try

Lanzar un evento2
Evento: lanzar una excepcin
a2 a detectar una condicin de
error o de estado de excepcin
en el bloque try
Estado de trapos
para la excepcin de
fuentes en la
memoria

Softwar
e
Interrum
pir

de excepcin1 cdigos
para ejecutar acciones
a ser tomadas en caso
al en catch
(Exception^1) {}
Encontrar una fuente
de excepcin2 cdigos
para ejecutar acciones
a ser tomadas en caso
de captura (a2 en una
excepcional2 {}
Llamar a la funcin a
ejecutar al final

(a)

Ejecutar cdi
gos en finally
{...}, que se
debe ejecutar
cuando el
Las
excepciones
o bloque try
instrucciones
terminado

Los sistemas integrados

196

1. Un programa o tarea rutinaria


Yo
o ejecutar cdigos
2. Evento de seal (e1) para ejecutar la
Interrumpir
rutina 1
1. Un programa o tarea rutinaria
----------------------------------------------------o ejecutar cdigos
Software
2. Evento de seal (e2) para ejecutar la
Interrumpir
rutina 2

Handler Siqnal
Encontrar una seal1
Cdigos para ejecutar acciones a ser
Tomadas en la seal A1 del
programa
Encontrar una seal2
Cdigos para ejecutar acciones a ser
Tomadas en la seal a2
Programa a ejecutar al final
Seal

(b)
Fig. 4.4 (a) Uso de software interrupt (SWI) instrucciones para llamar a una rutina de servicio de interrupcin (ISR) en el
software de arrojar y atrapar a las excepcionales condiciones que se producen en tiempo de ejecucin
durante los clculos (b) Uso de suizas para indicar a otro programa de rutinas o tareas o subprocesos de
programa inicio

Ejemplo 4.6 se da aqu para mostrar claramente que SWI y ejecucin del ISR (tambin
denominados controladores de excepcin o excepciones) a suizas. Las suizas tambin desempean un papel
importante en embedded software del sistema mediante el uso de la ISR para funciones de controlador de
dispositivo a crear (). abierto ( ), leer () u otros.

Ejemplo 4.6
Considere los siguientes cdigos.

Try {
/* para la ejecucin de cdigos en el cual una excepcin en tiempo de
ejecucin o el nmero de ejecutar
Si ((A - B) < 0,1) lanzar al; x = y + sort (A - B); /* Buscar si un -B
-ve es nmero. Si s, throw.una excepcin al y llamar a una
funcin de captura). */
Y = ./ * Calcular y */
Si ((y > 100 | | y < 0) lanzar a2; /* Buscar si y > 100. Si la respuesta
es s, lanzar
Excepcin a2 y llamar a una funcin de captura*/

Catch (Exception.,! al) {


/* Cdigo de accin para lanzar (trampas) A - B < 0.0 excepcin */

Los controladores de dispositivo y interrumpe el mecanismo de servicio

1197 i

{capturas excepcionales2
/* Cdigo de accin para lanzar (trampas) y < 0 o y >
100 excepcin*/

Finally {
/* cdigos final, que debe ejecutar sobre la excepcin o
despus del bloque try instrucciones por */

Alto nivel de Java o C++ compila cdigos cuando, durante la compilacin, el SWI instrucciones sern insertados
para atrapar (A - B) como un nmero negativo y para atrapar y > 100 o menos de 0 como sigue:
1. La instruccin de software SWI UN PROCESADOR I provocar la interrupcin. En respuesta, el
software ISR funcin 'catch (ExceptionJ al) { )' se ejecuta sobre el lanzamiento de la excepcin al tty me
bloquee la ejecucin. Al SWI es usado despus de capturar la excepcin al cuando ste se produce.
2. La instruccin de software SWI a2 provocar la interrupcin del procesador. En respuesta, el software
ISR funcin 'catch (Exception_2 a2) { | ' ejecuta sobre el lanzamiento de la excepcin a2 durante la
ejecucin del bloque try'. Un SWI2 se utiliza despus de capturar la excepcin a2 cuando se produce.
3. La instruccin de software SWI3 provocar la interrupcin y el procesador en respuesta ser la seal
de ISR de software
Funcin 'finally { | ' para ejecutar bien al final de la prueba o al final de la captura de los cdigos de
funcin, j SWI A3 se utiliza despus del try y catch funciones finalizar y, a
continuacin, finalmente realizar la funcin /> tarea final, por ejemplo, salir del programa o llamar a
otra funcin.
Ji
Un programa de usuario en ejecucin actualmente por el procesador no sabe cuando su funcin
try Me arrojar las excepciones al o a2 o cuando el manejador de seal lanza un3.
Un ISR llamada tiene las siguientes caractersticas.
1. Un ISR llamada debido a ejecuta un evento de interrupcin. Evento puede ocurrir en cualquier momento
y caso apariciones son asincrnicas.
2. ISR es llamada desviacin basada en eventos de la actual secuencia de instrucciones (rutina) a otro
programa o secuencia de instrucciones (rutina o programa). Esta secuencia de instrucciones se ejecuta
hasta que la instruccin de retorno.
3. Evento puede ser un dispositivo o puerto nunca" o software computacional se ha detectado una condicin
excepcional por el hardware o detectado por un programa, que produce la excepcin. Un evento puede
ser sealada por la instruccin de interrupcin de software SWI utilizado en funciones de conduccin del
dispositivo crear (), open (), etc.
4. Existe un mecanismo de servicio de interrupcin en un sistema para llamar a los ISR de mltiples fuentes
(Seccin 4.4).

Los sistemas integrados

5. Desviacin a 1SR puede o no tener lugar al finalizar la ejecucin de cualquier instruccin en la rutina
actualmente en funcionamiento. La ejecucin de la ISR puede ser enmascarado por una instruccin para
fijar un bit de mscara y puede ser desenmascarado por otra instruccin para restablecer el bit de mscara.
[excepto unas pocas fuentes de Interrupcin no ocultable llamado fuente (Seccin 4.4.3).| una instruccin
en una funcin o un subproceso del programa o tarea puede desactivar o activar una llamada de ISR o
todos 1SR llamadas (Seccin 4.4.3).
6. En una llamada de interrupcin, las instrucciones no se ejecutan de forma continua exactamente igual que
una funcin de C o un mtodo Java. Estos se ejecutan como por el mecanismo de interrupcin del sistema.
Por ejemplo, 'return' desde una ISR difiere en algunos aspectos importantes. Un mecanismo de
interrupcin pueden ser tales que un Router ISR sobre el comienzo de la ejecucin puede deshabilitar
automticamente otro(s) dispositivo(s) interrumpir los servicios. stas son automticamente re
7. Puede haber varias llamadas de interrupcin durante el funcionamiento de un Router ISR para la
desviacin a otros ISRs. El ISR llamadas no necesita ser el anidamiento de los ISRs a diferencia del caso
de las llamadas a funciones y hay desviacin a la espera de mayor prioridad interrumpir al final o entre la
interrupcin del ISR.
La seccin 7.6 se explica la distincin entre funciones, ISR y tareas por sus caractersticas.
Es un evento de interrupcin de un dispositivo de hardware o software o accin de instruccin. En respuesta a
la interrupcin, un programa que se est ejecutando actualmente se interrumpe y se ejecuta una rutina de
servicio. La rutina se llama ISR. Tambin se llama controlador de dispositivo en caso de interrupciones de los
dispositivos. Tambin se llama controlador de excepciones en el caso de interrupciones desde el software.
Enfoque basado en ISR facilita una eficiente sincronizacin de la funcin- llamadas y llamadas a ISR. Los
intervalos de tiempo cuando un ISR se ejecuta el evento de interrupcin de hardware o software dependiente.
Por lo tanto, no hay ningn perodo de espera debido a que no hay necesidad de sondeo del dispositivo.

4.2.3 Interrumpir el servicio Second-Level subprocesos como Controladores de


interrupcin
Un ISR puede ser ejecutado en dos partes.
1. Una parte es el corto tiempo de ejecucin teniendo en rutina de servicio y pueden ser llamados como
primer nivel FLISR (ISR). Se ejecuta la parte crtica de la ISR y ejecutar una funcin de la seal para
activar el SO para programacin para ejecutar el resto de la parte posterior. Tambin puede enviar un
mensaje usando una funcin para activar el SO para iniate una tarea despus de regresar de la ISR. La
tarea espera interrupciones durante la ejecucin de rutinas y funciones de seales. La FLISR El
dispositivo dependiente slo de manipulacin. Por ejemplo, no realizar el descifrado de los datos recibidos
desde la red. Simplemente no la transferencia de datos en el bfer de memoria para los datos del
dispositivo.
2. La segunda parte es el largo servicio de rutina de servicio de interrupcin llamado subproceso (1) o de
segundo nivel (SLISR ISR), que ejecuta en la seal de la primera parte. El So planifica el 1ST segn su
prioridad. 1st-independnet el dispositivo de manipulacin. 1ST es tambin el hilo de interrupcin de
software como es desencadenada por una instruccin de interrupcin de software (SWI) para la seal en
FLISR.
Figura 4.3(b) mostraron utilizado de seal en ISR-FrameRead en sistema de cmara digital. La figura 4.5
muestra cmo escanear ADC es iniciado por una llamada desde FLISR SLISR. La figura 4.5 muestra los FLISR y
segundo nivel 1ST enfoque para manejar las interrupciones del hardware del dispositivo seguido de interrupciones
de software en la parte superior y a la utilizacin de este enfoque en una cmara en la parte inferior.
Interrumpir el servicio puede hacerse en dos partes: un dispositivo de hardware-dependiente en el cdigo
FLISR, que tiene un corto tiempo de ejecucin y una interrupcin de software iniciado SLISR, que tambin
se denomina 1ST. Una tarea tambin puede enviarse un mensaje por FLISR. La tarea se ejecuta despus de la
1.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

En cada seal de interrupcin SWI

Fig. 4.5 interrumpir el servicio de primer nivel y de segundo nivel de rutina de servicio de interrupcin enfoque de rosca
para manejar el dispositivo de interrupcin de hardware, seguida por la interrupcin de software para
llamar SLISR-un 1ST y la utilizacin de este enfoque en una cmara

4.2.4 Controlador de dispositivo


Cada dispositivo en un sistema necesita rutinas del controlador de dispositivo. Un ISR se refiere a una funcin de
controlador de dispositivo. Un controlador de dispositivo es una funcin utilizada por un programador de lenguaje
de alto nivel y la interaccin con el hardware del dispositivo y comunica los datos al dispositivo, enva los
comandos de control al dispositivo y ejecuta los cdigos para la lectura de los datos del dispositivo. Un
programador utiliza comandos genrico para el controlador de dispositivo para el uso de un dispositivo. El sistema
operativo proporciona estos comandos genricos.
Los ejemplos de funciones genricas utilizadas para los comandos al dispositivo son
dispositivos crear (), open (), conectar , enlazar
() () (),
leer, escribir , ioctl
() ()
[10]
para
controlar, eliminar y cerrar () (). Cdigo de controlador de dispositivo es diferente en cada sistema operativo. El
mismo dispositivo puede tener diferentes cdigos para el conductor cuando el sistema est usando un sistema
operativo diferente.
Un controlador de dispositivo funcin utiliza SWI, que inicia el servicio de interrupcin. El dispositivo utiliza
el sistema y 10 autobuses de servicio necesarios para el dispositivo. Controlador de dispositivo puede ser
considerado como una funcin en la capa de software de un programa de aplicacin y el dispositivo.
Por ejemplo, el programa enva los comandos para escribir en la pantalla de un telfono mvil de los nombres
de los contactos de la base de datos de contactos. Controlador de dispositivo de pantalla LCD pide un SWI, y un
ISR hace que el programador de la aplicacin sin saber cmo funciona la interfaz de dispositivo LCD en el sistema,
cules son las direcciones que se utilizan, qu y dnde y cmo son el control (comando) y el estado los registros
utilizados.
Para un programador, utilizando el controlador de dispositivo de funciones genricas para leer o escribir desde
y hacia el dispositivo es similar a la lectura o escritura de cualquier otro dispositivo o archivo de datos salvo que
el dispositivo y el archivo de dispositivo tienen diferentes nmeros de identidad.
La rutina del controlador controla un dispositivo sin necesidad de comprensin de la configuracin del
dispositivo, el control, el estado, los datos y otros registros, al utilizar el genrico functionsf'Device driver se
ejecuta el ISR del dispositivo. Cada ISR es la parte de bajo nivel del controlador del dispositivo genrico, que
ejecuta la funcin de instruccin de interrupcin de software.
El driver traduce un programa funcin genrica para el uso del dispositivo y enva los comandos necesarios

.200

Los sistemas integrados

El controlador de la apertura, configuracin, inicializando, fijacin, lectura, escritura, dosificacin y desacoplar


el dispositivo iniciando el ISR correspondiente.
Muchos de los controladores de dispositivos, tales como impresoras, pantalla tctil, pantalla LCD, teclado,
teclado, son parte de la
OS. La seccin 4.9 se describen en detalle los controladores de dispositivo.
Cada dispositivo programa en lenguaje de alto nivel en un sistema que utiliza funciones de controlador de
dispositivo. Un programador utiliza comandos genrico, crear (), open (), conectar, enlazar () () (), leer,
escribir, ioctl () () (), eliminar y cerrar () y utiliza un dispositivo para cada dispositivo, el nmero de identidad.
Controlador de dispositivo ejecuta las suizas, que llame a los ISRs para el uso del dispositivo de hardware y
de memoria asignado para ello. Suizas estn dedicados para el servicio del dispositivo y realizar todas las
acciones necesarias.

4.3

Fuentes de interrupcin

Las fuentes pueden ser de hardware de dispositivos internos o perifricos externos, que interrumpen la rutina
actual y, por lo tanto, provocar el desvo a ISR correspondiente. Fuentes de software para interrumpir estn
relacionados (f) Deteccin de procesador (trampas) error de clculo para un cdigo de operacin ilegal durante la
ejecucin o (//) la ejecucin de una instruccin SWI a causa de interrupcin del procesador de rutina actual.
Cada una de las fuentes de interrupcin (cuando no enmascarado) (o grupos de fuentes de interrupcin)
exige una transferencia temporal de control desde el que actualmente ejecuta la rutina a los ISR correspondiente
a la fuente.
Las fuentes internas y los dispositivos difieren en diferentes procesadores o microcontroladores o dispositivos
y sus versiones y las familias. El cuadro 4.1 da una clasificacin como interrupciones de hardware y de software
de varias fuentes. No todos los tipos de fuentes en la mesa puede ser instalado o habilitado en un sistema dado.
Adems, puede haber algunos otros tipos especiales de fuentes proporcionadas en el sistema.
Las interrupciones de hardware relacionados con dispositivos internos existen varias fuentes de interrupcin de
hardware que puede interrumpir un programa en curso. Estos son el procesador o microcontrolador o especficos
del hardware interno del dispositivo. Un ejemplo de interrupcin est relacionado con el hardware de
desbordamiento de timer interrupt generado por el hardware del microcontrolador. La fila 1 de la tabla 4.1
enumera los dispositivos internos comunes fuentes de interrupcin.
Las interrupciones de hardware relacionados con dispositivos externos -1 no puede ser fuente de interrupcin de
hardware externo para interrumpir un programa continuo que tambin proporciona la direccin de ISR o vector
direccin (Seccin 4.4.1) tipo de interrupcin o informacin a travs del bus de datos. La fila 2 de la tabla 4.1
enumera estas fuentes de interrupcin. Las interrupciones de hardware externo con ISR aborda la informacin
enviada por los dispositivos mismos (Seccin 4.4.1) y son dispositivos de hardware especficos.

Ejemplo 4.7
Un ejemplo de hardware externos relacionados con el dispositivo de interrupcin enviando la
interrupcin de INTR pin es el procesador 80x86. Cuando se activa el pin INTR en una interrupcin del
dispositivo externo, el procesador emite dos ciclos de reconocimientos en dos ciclos de reloj a travs del
INTA (acuse de recibo) interrupcin J pin. Durante el segundo ciclo de acuse de recibo, el dispositivo
externo enva el tipo de interrupcin jff rhfori'J.tltion en el bus de datos. La informacin es para un byte
n. 80x86 seales internamente la instruccin INT n ml,lo que significa que se ejecuta interrumpir de tipo
n, donde n puede estar entre 0 y 255. Causas INT n mlel procesador vectorial a la direccin 0x00004 x n.
[SWI en 80x86 es denotada por INT.]
Sm

Los controladores de dispositivo y interrumpe el mecanismo de servicio

Las interrupciones de hardware relacionados con dispositivos externos: 2 interrupciones de


hardware externo con sus ISR direcciones vectoriales (Seccin 4.4.1) son el procesador o
microcontrolador intemipts especficos de un programa en curso. Interrumpir la fuente
externa no enviar interrupt-tipo o informacin relacionada con la direccin de ISR. Un ejemplo
de hardware externo-relacionados en el que la interrupcin de la informacin sobre el tipo de
interrupcin se genera internamente una interrupcin en la NMI (interrupcin no
Tabla 4.1 Clasificacin
fuentes
de interrupciones1
enmascarable)
pin eny el
procesador
de 80x86. La fila 3 de la tabla 4.1 enumera estas fuentes
de interrupcin.
Fuentes

Ejemplos

Fuentes de dispositivo hardware interno I. puerto paralelo; 2. El puerto receptor de serie UART - [ruido. Rebasamiento
Frame-Error,
Inactivo, HCII RDRFin 68J; 3. Receptor sincrnico el byte final; 4. Puerto de
transmisin serie UART-transmisin completa |ej. (transmisor TDRE registro de
datos vaca); 5. La transmisin sincrnica del byte completado; 6. Inicio ADC de
conversin; 7. Final de la conversin ADC; 8. Desbordamiento del acumulador de
pulsos; 9. Reloj de tiempo real time-outs (Seccin 3.8); 10. Restablece el
temporizador Watchdog (Seccin 3.7); II. Los temporizadores se desborda en
tiempo de espera (Seccin 3.6); 12. Comparacin con la salida del temporizador
comparar registro; 13. Captura de temporizador de entrada (Seccin 3.6)
INTR en 8086 y 80x86
Los dispositivos de hardware externo
proporcionando la direccin de ISR o
direccin o un tipo de vector2
externamente
I. No ocultable [pin NMI en 8086 y 80x861; 2. Dentro de los primeros ciclos de
Los dispositivos de hardware externo
reloj ttnmaskable declarables (solicitud de interrupcin pin pin t pero no ocultable
con la generacin de direcciones
X1RQ [en 68HCI1J; 3. Ocultable peticin de interrupcin (pin pin) |Int0 e INT 1
vectoriales interno
en 8051. IRQ en 68HCIII
Fuentes relacionadas con el error de software
1. Deteccin de la divisin por cero (o trampa) por hardware; 2. Exceso de
flujo por hardware:
(excepciones-' o S\V-trampas)
3. Bajo flujo por hardware: 4. Opcode ilegal por hardware
La instruccin de software fuentes relacionadas con las excepciones definidas por el programador' o trampas tor manejo
excepcional (excepciones en tiempo de ejecucin'1 o SW-trampas SW-seal) condiciones o seal definida por el
programador para ejecutar ISR para manejar ms
Acciones o seales de funciones de controlador de dispositivo
1

procesador son ejemplos concretos de la escuadra.


-'Ejemplo 4.7 explica esto.
"El procesador genera internamente una trampa o excepcin. Un ejemplo es la divisin por cero en 80x86. Ejemplo 4.8 explica
esto.
"El segundo tipo de excepcin es el programa de usuario definida excepcin. Ejemplo 4.6 explic esto. Seal es un trmino
utilizado a veces en un alto nivel de interrupcin de software programa de instruccin en lenguaje ensamblador. Por ejemplo,
en VxWorks RTOS. [Consulte Seccin 9.3.J seal o excepcin es una interrupcin en el establecimiento de determinadas
condiciones o en la obtencin de ciertos resultados o salida durante la ejecucin de un programa o una seal de algn tipo de
accin. La condicin ejemplos arc la raz cuadrada de un nmero negativo o de clculo de porcentaje resultante en los valores
superiores al 100% o una conexin IO no encontrado.

En

Software Error-Related interrupciones de hardware no puede ser el error de software relacionados interrumpe
Generado por el hardware del procesador. Cada procesador tiene un conjunto de instrucciones especficas. Est
diseado para que slo se establece.
Un cdigo no vlido (instruccin en el software) es una instruccin que no corresponden

202

Los sistemas integrados

__ ;

Para cualquier instruccin en este conjunto. Cuando el procesador recupera el cdigo ilegal, una interrupcin
ocurre en ciertos procesadores. Las interrupciones relacionadas con errores se denominan tambin generado por
hardware o software software Traps (Excepciones). Un error de software llamado trap o excepcin puede
generar en el hardware del procesador para un ilegal o no-implementado opcode encontrados durante la ejecucin.
Los ejemplos son como sigue: (i) existe una trampa opcode ilegal en 68HC11. Este error provoca una interrupcin
a un vector de direccin (Seccin 4.4.1). (ii) No implemcntable opcode error cause una interrupcin a un vector
direccin en 80196.
Excepcin de error de software o /rap-fuentes afines causan la interrupcin de un programa en curso los
clculos en ciertos procesadores. Algunos ejemplos son la divisin por cero (tambin conocido como tipo 0
interrumpir como tambin es generada por una instruccin de interrupcin de software INT0 en 80x86) y el
desborde (tambin conocida como tipo 2 interrumpir como tambin es generada por la instruccin Int 2) en 80x86.
Estos dos interrupciones, tipos 0 y 2 son generados por el hardware dentro de la ALU del procesador. La fila 4 de
la tabla 4.1 enumera estas fuentes de interrupcin. Ejemplo 4.8 explica una trampa relacionado con
software o excepcin, que es una interrupcin generada por el hardware del procesador en la divisin bv 0.

Ejemplo 4.8
Supongamos que una divisin por cero ocurre durante la ejecucin de una instruccin de un determinado
programa. Se necesita un Router ISR que debe ejecutar cada vez que se produce la divisin por cero. Este ISR
podra ser para mostrar "un error de divisin por cero en
' en la pantalla y, a continuacin, cancelar o
pausar el programa en curso.
Un programa de usuario en ejecucin actualmente por el procesador no sabe cundo su ALU emitir J este
flag de error interno (una seal de hardware). La rutina de servicio se ejecuta mediante un mecanismo de
interrupcin Jjque se supone para un servicio en un error de divisin por cero-seal. El ajuste de la seal, una
interrupcin de Miel actual programa ocurre justo despus de completar la instruccin actual que est siendo
ejecutado, MS y luego ejecuta el ISR para tareas de divisin postzero tras restablecer la bandera.
'Me
Ejecucin relacionados con errores de software interrupciones del procesador son necesarios para responder
a errores como la divisin por cero o opcode ilegal, que es detectado por el hardware del procesador. Estos son
llamados trampas y algn tiempo tambin llamado excepciones. Estos son esenciales para el manejo de errores
en tiempo de ejecucin detectada por el hardware del sistema.

Software Fuentes Instruction-Related interrumpe un programa computacional especfico puede


tambin manejar errores o condiciones en tiempo de ejecucin o de sealar algunas condiciones. Por ejemplo,
ejemplo 4.6 mostr el manejo de raz cuadrada de nmeros negativos SWI, que es manejado por SWI instruccin
en el conjunto de instrucciones de un procesador. Procesadores proporcionan para la instruccin de software(s)
relacionadas con las trampas, seales o excepciones.
1. Hay ciertas instrucciones de software para interrumpir y luego desviando al ISR tambin llamado el
manejador de seal. Estos son utilizados para la sealizacin (o cambiar) a otra rutina desde un continuo de
rutina o tareas o subprocesos (Seccin 7.10). Figura 4.4(b) muestra la seal generada por SWI y
manipulacin de la seal.
2. Instrucciones de software se utilizan tambin para atrapar algunas condiciones de error en tiempo de
ejecucin (denominadas excepciones) y ejecutar los controladores excepcionales sobre la captura de las
excepciones (por ejemplo, 4.6).
A.n ejemplo de una interrupcin de software es la interrupcin generada por una instruccin de software int n en
el procesador 80x86 o SWI en ARM7. La fila 5 de la tabla 4.1 enumera estas fuentes de interrupcin. Instrucciones
SWI difiere de una instruccin de llamada a funcin como sigue.
1. Interrupcin de software en 68HC11 es causada por la instruccin SWI.
2. No es una instruccin inghffnyte.'SEN 80x86. Genera interrupcin de tipo 0, lo cual significa que la
interrupcin debe ser generado con el vector correspondiente direccin 0x00000. En lugar de la interrupcin
que tipo 0 y 8086 hardware 80x86 tambin puede generar en una divisin por cero, la instruccin INTO

Los controladores de dispositivo y interrumpe el mecanismo de servicio

1203 !

3. Hay otro byte 8086 y 80x86 Tipo de instruccin3 (vector correspondiente direccin 0 x 00C0H). Esto
genera una interrupcin de tipo 3, denominado punto de interrupcin Interrupcin. Esta instruccin es
como una instruccin Pause. Pausa es una interrupcin temporal de la ejecucin de un programa. Permite
que un programa para hacer limpieza', y volver a la instruccin despus del punto de ruptura pulsando
cualquier tecla.
4. Hay otro 80x86 Instrucciones de dos bytes INT n, donde n representa el tipo y es el segundo byte. Esto
significa 'Generar tipo n interrumpir' y el hardware del procesador obtenga la direccin de ISR por
computing por el vector direccin 0x00004 x n. Cuando n = I, representa un solo paso trampa en 8086 y
80x86.
5. Hay otra instruccin de 80x86, que utiliza una marca denominada trampa y es denotada por TF. Esta
bandera est en el registro del indicador y EFLAG registro de 8086 y 80x86, respectivamente. Esto
significa que cuando TF establece (escrito ' F), automticamente despus de cada instruccin, el
procesador la accin provoca una interrupcin de tipo I repetidamente. El procesador recupera cada lime
la direccin de ISR del vector direccin 0x00004 (igual que el tipo 1 direccin de interrupcin). INT I
instruccin de software tambin causar una interrupcin de tipo I pero el TF Hag establecer medidas de
instruccin es idntica a la accin provoc que al final de cada instruccin despus de la interrupcin de
tipo I.
6. Hay instruccin en 80196 llamado Trap. Permite la depuracin de instrucciones. Hasta la siguiente
instruccin Alter la trampa es ejecutado, fuente de interrupcin no puede interrumpir el proceso y
provocar el desvo a ISR.
SWI-detalles relacionados en la instruccin set help en la programacin el programa desviacin a ISR en
excepcin. Si se produce la condicin excepcional (Juegos) durante la ejecucin, se produce una desviacin hacia
el ISR denominado exception handler o manejador de seal mediante la instruccin de software para interrumpir
en el conjunto.
Un programador puede programar para la excepcin en una cola (un bfer de memoria similares a un bfer de
impresin) llena. Se trata de una excepcional condicin en tiempo de ejecucin. Debe provocar la desviacin de
la rutina denominado exception handler function que inicia la accin apropiada. Las excepciones son rutinas
importantes para el manejo de los errores en tiempo de ejecucin.
La instruccin de software o software relacionado a condiciones definidas por interrupciones de software arc
utilizado en el sistema integrado. Que arc indispensable disear ISR como error de manipulacin de ISR,
temporizador de software-motriz isr y otro para ejecutar rutinas de sealizacin. Estas interrupciones son
tambin ealled trampas o excepciones o seales.

"4.4 IhffERffuPT (manejo) MECANISMO DE MANTENIMIENTO


Cada sistema tiene una interrupcin del servicio (mecanismo de manejo). El sistema operativo tambin
proporciona mecanismos para interrumpir-manipulacin (Seccin 8.7).

4.4.1 Vector de interrupcin


Vector de interrupcin es una direccin de memoria a la cual el procesador de vectores. El procesador transfiere
el contador de programa para el nuevo anuncio de vectores de interrupcin,vestido en una interrupcin. A travs
de esta direccin, el procesador de servicios que interrumpir por ejecucin de ISR correspondiente. Las direcciones
de memoria para el procesador vectorial son el procesador o microcontrolador especfico. La vectorizacin es
segn las disposiciones previstas en el mecanismo de manejo de interrupcin. Los diversos mecanismos son como
sigue:

Vectorizacin de procesador al ISR_ VECTADDR en una interrupcin, un procesador de


vectores para una nueva direccin, ISR_VECTADDR. Esto significa que el contador de
programa (PC), que tiene la direccin de instruccin de la siguiente instruccin, guarda esa
direccin en pila o en algn registro de la CPU llamado link, regstrese y el procesador carga
el ISR_VECTADDR" en el PC. El registro del puntero de la pila de la CPU proporciona la

Los sistemas integrados

204

Un procesador proporciona uno de los siguientes modos de utilizar ISR_VECTADDR IHE-basado el


mecanismo de direccionamiento.
La direccin del vector de procesador
1. Un sistema tiene dispositivos internos como el chip ahora son ms finos y el convertidor A/D. En un
microcontrolador, cada fuente de interrupcin del dispositivo interno o fuente-group tiene una direccin
VECTADDR_isr separadas. Cada patilla de interrupcin externa ha separado la ISR_VECTADDR. Un
ejemplo es el 8051. La figura 4.6(a) muestra la ISR_VECTADDRs para las fuentes de interrupcin de
hardware. Un mtodo comnmente usado es que el dispositivo interno (interrupcin de origen o fuente
de interrupcin group) en el microcontrolador autogenerates (l correspondiente, la direccin del vector
de interrupcin 1SR_VECTADDR. As direcciones vectoriales son especficos para el microcontrolador
o procesador especfico con ese dispositivo interno. Una seal de hardware interno del dispositivo es
enviada por la fuente de interrupcin o grupo de origen.
2. En la arquitectura del procesador 80x86, una instruccin de software, por ejemplo, int n tambin define
explcitamente el tipo de interrupcin y el tipo define el 1SR_VECTADDR. Figura 4.6(b) muestra la
lSR_VECTADDRs con diferentes direcciones de vectores para diferentes tipos de interrupcin. Los
resultados de este mecanismo en el manejo de n nmero de excepciones rutinas o isr para n tipos de
interrupcin.
1
- ----------------------------1
Dispositivos direcciones vectoriales o!
Interrupts , desde las fuentes de
interrupcin de hardware I

Yo ISRJ/ECTADDR 1
1 ISR_VECTADDR 2
| ISRJ/ECTADDR 3
1 ISRJ/ECTADDR 4

J /5 ECTADDR ISRJ
| ISRJ/ECTADDR 6

A partir de un vector
La direccin de las 4- !
O 8 bytes ISR corto 1
ejecuta o un salto i
ejecuta instrucciones j
A largo ISR i
Cdigos en una nueva
direccin inicial j

(a)

F INT n
Yo ___

ISR_VECTADDRn

procesador detecta la direccin del vector


de ISR i el Irom lour bytes en ISR
J/ECTADDRn ! Que computa de n

ISR
Direcci
n

Cada fuente de interrupcin de hardware o de software tiene un tipo N


(6).
SWI
Software
Interrumpir
Instruccion
es

Yo ISR (SWI handler) vector I


direccin, desde aqu programa I
fluye utilizando 4-byte a otra
instruccin que yo dirijo vector
comn para todos los
controladores de SWI

J desde la direccin, el vector comn


llamada j a necesario SWI rutina es que hice
L
as como controlador de parmetros de
Y
entrada me dirijo es calculada

(c)

Fig, 4.6 (a) ISR_VECTADDRs fuentes de interrupcin de hardware (b) ISR_VECTADDRs con diferentes direcciones de
vectores de interrupcin diferentes tipos utilizando la instruccin INT n (c) El ISR_VECTADDR con vector
comn direcciones para diferentes excepciones, trampas y seales usando la instruccin de interrupcin
de software SWI

3. En la arquitectura de procesador ARM, la instruccin de software swi no define explcitamente el tipo de


interrupcin para generar diferentes direcciones de vectores y en su lugar hay un ISR_VECTADDR
comn para cada excepcin o seal o trampa generado utilizando SWI instruccin. ISR que se ejecuta
despus de la vectorizacin tiene que

Los controladores de dispositivo y interrumpe el mecanismo de servicio

I 205;

Averiguar qu excepcin causada el procesador iu interrumpir y desviar el programa. Ese mecanismo en


la arquitectura del procesador resultados iu provisioning lor el nmero ilimitado de las rutinas de control
de excepciones en el sistema comn de todos los que tengan la direccin del vector de interrupcin. La
figura 4.6(c) muestra la ISRJ/ECTADDR con la direccin del vector comn para todas las excepciones.
Las trampas y las seales resultantes de SWI.

Un grupo de fuentes de interrupcin con la direccin del vector comn Un grupo de orgenes en el
hardware puede tener el mismo ISR_VECTADDR.

Ejemplo 4.9
Considerar 8051, Tl (transmisor) y RL de interrupcin (interrupt) receptor son las fuentes en el mismo grupo
con ISR_VECTADDR idnticos. Tl es una interrupcin que se genera cuando el bfer serie registrarse para la
transmisin finaliza la transmisin serial, y rl es cuando el buffer recibe un byte desde el receptor de serie. ISR
tit 1SR_ADDR para que el programa salta o lo que se denomina de bytes en el ISR_ VECTADDR J primero
debe identificar la fuente de interrupcin (whetherTl o Rl) en caseol lhe idntica direccin vectorial o
ISR J! Direccin de un grupo de fuentes. Identificacin de una bruja en el registro de estado. Configuracin
ol'un determinado indicador de estado en g( (fie dispositivo (lag registro permite la identificacin de la fuente
de interrupcin en el grupo en el que se ejecuta SB ISR alterar la vectorizacin.
Existen dos tipos de mecanismos de manipulacin en el hardware del procesador. El mecanismo de tramitacin
de procesador proporciona para buscar en el PC (i) el ISR de la instruccin en el ISR_VECTADDR o (ii) la direccin
de ISR de los bytes en el ISR_VECTADDR.
1. Hay algunos procesadores que utilizan !SR_VECTADDR directamente como direccin de ISR y el
procesador letches ISR instrucciones desde all, por ejemplo, el brazo o el 8051. El brazo permite el uso
de 4 bytes para la instruccin de salto a los ISR (rutina de servicio de interrupcin). Figura 4.7(a) Se
muestra el uso de la ISR_. VECTADDR en el brazo para el salto a la rutina lor la interrupcin del servicio.
El microcontrolador 8051 permite el uso de ISR cortos de mximo 8 bytes para los dispositivos internos.
El ISR cdigos cortos tambin pueden utilizar una instruccin de llamada para llamar a una rutina
detallada. Figura 4.7(b) y (c) Se muestra el uso de !SR_ VECTADDR en 8051 en el caso de cdigo corto
y largo codc ISR, respectivamente.
2. Hay algunos procesadores que utilizan ISR._VECTADDR indirectamente como direccin de ISR y el
procesador recupera la direccin de ISR de los bytes guardados en el ISR_VECTADDR, por ejemplo,
80x86. Figura 4.7(d) muestra el uso de la ISR_ VECTADDR Direccin en 8086. Procesador de
interrupcin de tipo n vectores para la direccin 0x00004 x n y letches 16 hits para enviar al registro del
puntero de instruccin (IP) y otro de 16 bits para el envo al registro de segmento de cdigo (CS) El ISR
para interrumpir ejecutar la direccin de ox i ()()()()() x CS + IP.

Tabla de vectores de interrupcin del sistema diseador de software debe proporcionar para especificar el
nmero de bytes en cada ISR_VECTADDR direccin. Los bytes arc para ISR cither cdigo corto (Figura 4.7(b)] o
instruccin de salto a la primera instruccin de ISR | Figura 4.7(a) | O ISR con una llamada al cdigo de acceso el
cdigo completo de la ISR | Figura 4.7(c) | o para obtener los bytes tor encontrar la direccin de ISR |Figura 4.7(d)).
Una tabla facilita (servicio de l (l mltiples fuentes de interrupcin para cada dispositivo interno. Cada fila de
la etiqueta tiene un ISR_VECTADDR y los bytes se guardan en cada ISR_VECTADDR. La ubicacin de la tabla
de vectores en la memoria depende del procesador. Est situado en la parte superior de las direcciones de memoria,
a OxFFFB OxFFCO en 68HCII . Es en el nivel ms bajo de las direcciones de memoria 0x00000 a 0x()03FF en
procesador de 80x86. Se inicia a partir de la menor de las direcciones de memoria 0x00000000 en ARM7. La figura
4.8 muestra una tabla de vectores en la memoria en caso de mltiples fuentes de interrupcin o grupos de origen.

Los sistemas integrados

Un dispositivo externo tambin puede enviar al procesador del ISR_VECTADDR a travs del bus de datos
(fila 2, Tabla 4.1).
Un vector de interrupcin es una parte importante de las interrupciones de servicio, mecanismo que asocia un
procesador. El procesador primero guarda el PC y/o en otros registros de la CPU en interrumpir y, a
continuacin, carga un vector direccin en el PC. Proporciona la direccin de vectores del ISR o 1SR direccin
del procesador para una fuente de interrupcin o de un grupo de fuentes o para un determinado tipo de
interrupcin. La tabla de vectores de interrupcin es una parte importante de las interrupciones de servicio,
mecanismo que asocia el sistema de aprovisionamiento para las mltiples fuentes de interrupcin y grupos de
origen.

8051 direcciones de vector de interrupciones de las fuentes de interrupcin de hardware.

(b)
En

0x0003

OxOOOB

INT1

0x0013

T1

0x001B

Serial
T2

0x0023

A partir de un
vector
R--- La direccin de una
instruccin de salto
se ejecuta para
H- El largo
Cdigos de ISR ISR
0x002B J' " Direccin inicial

[ 805f direcciones de vector de interrupciones de las fuentes de interrupcin de hardware. |


(c)

Cada 80x86 Fuente de interrupciones de hardware o de software tiene un tipo N

(d)
Fig. 4.7 (a) Uso de iSR_ VECTADDR en el brazo para el salto a la rutina para t!% interrumpir el servicio
(b)

Uso de 1SR_ VECTADDR en 8051 en el caso de cdigo corto de rutina de servicio de interrupcin (ISR)

(c)

Uso de ISR_ VECTADDR en 8051 en el caso de cdigo largo ISR (d) Utilizacin de ISR_ VECTADDR

direccin en procesadores 80x86

Los controladores de dispositivo y interrumpe el mecanismo de servicio

1 direccin de ISR

ISR_VECTADDR int 1
ISR~VECTADDR int 2

207
"La tabla
Inicio
Direccin

N hardware y
ISR_VECTADDR int n - 1
Interrupcin de
software
ISRVECTADDR int n '
Fuentes
Tabla de bsqueda para n direcciones de manejadores de excepciones, trampas y dispositivo se interrumpe

Fig. 4.8 Tabla de vectores en la memoria en caso de mltiples fuentes de interrupcin o grupos de origen

4.4.2 Clasificacin de todas las interrupciones como Non-Maskable e


interrupciones enmascarables
Fuentes de mscara de interrupciones ofrecer lor masking (ninguna desviacin) y desenmascarar la interrupcin
de servicios (desviacin a los ISRs). Ejecucin de ISR para cada fuente de interrupcin del dispositivo o grupo de
origen puede ser enmascarada o desenmascarada. Una peticin de interrupcin externa tambin puede ser
enmascarado. Ejecucin de una interrupcin de software (trampa o excepcin o seal) tambin puede ser
enmascarado. La mayora de fuentes de interrupcin son ocultable. Unas pocas interrupciones especficas puede
ser enmascarado. Unas pocas interrupciones especficas puede ser declarada no ocultable dentro de pocos ciclos
de reloj del procesador reset, cosa que es ocultable. Hay tres tipos de fuentes de interrupcin en un sistema.
1. No ocultable: Ejemplos de errores de paridad de memoria RAM en un PC e interrupciones de error como
divisin por cero. Estas deben ser atendidas.
2. Ocultable: interrupciones enmascarables son aquellas para las que el servicio puede ser desactivado
temporalmente para permitir ISR de mayor prioridad se ejecutan primero ininterrumpidamente.
2. Slo cuando no ocultable definido por lo que dentro de pocos dock ru les despus del reset: Algunos
procesadores como 68HC11 dispone de esta disposicin. Por ejemplo, un pasador de interrupcin externa.
XIRQ interrumpir, en 68HC11. X1RQ interrupcin es slo cuando no ocultable definido por lo que dentro
de unos pocos ciclos de reloj despus de 68HCII se restablece.

4.4.3 Habilitacin (desenmascarado) y desactivacin (Enmascarar) en el caso


de fuentes de interrupcin de mscara
No se puede interrumpir bits de control de dispositivos. Puede haber un bit EA (habilitar todas), tambin llamado
el bit de nivel primario para habilitar o deshabilitar el completo sistema de interrupcin. Cuando una rutina o ISR
es ejecutado por los cdigos en una seccin crtica, una instruccin Dl (deshabilitar las interrupciones) es ejecutado
al comienzo de la seccin crtica y otro el de instrucciones (activar interrupciones) se ejecuta al final de la seccin
crtica. DI instrucciones restablece la EA (habilitar) la broca y el establece la instruccin primaria poco denotada
por EA (enable). Un ejemplo de cdigo de la seccin crtica es como sigue. Se asume que un ISR transfiere datos
a la memoria intermedia de la impresora, que es comn a varios isr y funciones. Ningn otro ISR de la funcin
debe transferir los datos en el bfer de impresin, de lo contrario los bytes en el buffer ser de mltiples fuentes.
Datos compartidos por varias rutinas de ISR y necesitan ser generados o utilizados por proteger su modificacin
por otro ISR o rutina.
Puede haber mltiples bits denotada por E(), ... E"_( para n grupo de origen de las interrupciones en el caso
de mltiples dispositivos. Estos bits se denominan bits de mscara y tambin se denominan bits de nivel secundario
para habilitar o deshabilitar las fuentes especficas o grupos de cdigo fuente en el sistema. Por instrucciones
apropiadas en el software de usuario, escribir el bit de habilitacin de primaria y secundaria habilite bits (o a la
inversa, los bits de mscara), ya sea todo o una parte del total de las fuentes de interrupcin de mscara estn
desactivados.

208

Los sistemas integrados

Ejemplo 4.10
Considere un sistema en el cual hay dos temporizadores y cada temporizador tiene un bit de control de
interrupcin. Bits de control Timer Interrupt arc ETO y ETI. Considere un sistema en el que si hay un dispositivo
y un bit de control de interrupcin es comn para la transmisin en serie y serie de recepcin. Hay un poco de
EA para interrumpir el control fordisabling , todas las interrupciones.
Jj
Cuando EA = 0, sin interrupcin es reconocido y temporizadores, as como si se interrumpe el servicio se
desactivar. MI cuando EA = I, ETO = 0, ETI = I y S = I, interrupciones del temporizador I y si estn
activadas y temporizador de 0 mg de interrupcin est deshabilitado (enmascarado).
-jj

4.4.4 Registro de Estado o interrupcin pendiente de registro


Una identificacin de una interrupcin se produjo anteriormente desde una fuente se realiza mediante uno de los
siguientes:
1. A nivel local tlag (bit) en un registro de estado, el cual puede contener uno o ms indicadores de estado
para una o varias de las fuentes de interrupcin o grupos de fuentes.
2. Un procesador de servicio de interrupcin pendiente Hag (variable booleana) en una interrupcin
pendiente de registro (DPI), que establece la fuente (configuracin de hardware) y auto-se restablece
inmediatamente bv el hardware interno cuando en un instante posterior, la fuente correspondiente se inicia
el servicio de desviacin hacia el ISR correspondiente.

Ejemplo 4.11
Considere un sistema en el cual hay dos temporizadores de arco y cada temporizador tiene un golpe de estado
y TFI TFO. Considere un
Sistema en el que no existe el dispositivo si existe la condicin de arco y RxReady TxEMPTY bits para la
transmisin serial
Datos del receptor terminado y listo.
1. Thc!SR_TI correspondiente a Temporizador I dispositivo lee el bit de estado TEI = I en el registro de
estado para encontrar
Que el temporizador me ha desbordado: tan pronto como el bit es leer el tf I se restablece a 0.
2. El ISR_T0 correspondiente a Temporizador 0 dispositivo lee el bit de estado TFI = 0 en el registro de
estado para encontrar
Temporizador de 0 que se ha desbordado; tan pronto como el bit es leer el TFO se restablece a 0.
.1 El ISR correspondiente al dispositivo si es comn para el transmisor y el receptor. El ISR
Lee el estado golpea RxReady TxEMPTY y en el registro de estado para buscar si un nuevo- byte
Se enviar
a los bfer
de transmisin
o si el byte
ledo desde
el bfer
Como
Algunos
proporcionan
el hardware
del procesador
paraeselpara
uso ser
de registro
de estado
dedel
bitsreceptor.
y algunos
bits de
como
el byte es leer
el RxReady
restablece
y tan pronto
byte se escribe
IS por de
DPI. Los Pronto
derechos
de propiedad
intelectual
y registros
del estado
difierencomo
de la elsiguiente
manera.enEllaregistro
estado esLa
de transmisin.
slo lectura, TxEMPTY
(i) un estadorestablecimientos.
registro de bits (una identificacin bandera) es de slo lectura y se borra
(auto-reset) durante el rend. Un poco de DPI o borra (auto-resels) en el servicio de la ISR correspondiente o se
borra slo por un escriba las instrucciones para resetear el bit correspondiente. (ii) Un poco de DPI puede ser
establecida por una instruccin de escritura, as como por la ocurrencia de una interrupcin que lamentos por el
servicio. Un registro de estado bit se establece por la interrupcin de la fuente slo hardware, (iii) Un poco de DPI
puede corresponder a una interrupcin pendiente de un grupo de fuentes de interrupcin, pero distintivos de
identificacin (bits) estn separados para cada fuente entre las mltiples interrupciones.
Propiedades de las banderas de interrupcin son como sigue. Un indicador separado para cada identificacin
de una ocurrencia de cada una de las fuentes de interrupcin debe existir. La bandera se establece sobre la ocurrencia
de interrupcin: (i) est presente en el circuito interno de hardware del procesador o en los derechos de propiedad
intelectual o en el registro de estado, (ii) se utiliza para una lectura por

Los controladores de dispositivo y interrumpe el mecanismo de servicio

209

Procesador o alterar una instruccin de escritura por la fuente de interrupcin de hardware, tiii
t restablece (inactivo) tan pronto como se lea. Esto es auto-reset siempre caracterstico en la mayora de los
diseos de hardware con el fin de habilitar esta (lag para indicar la siguiente aparicin delante mismo fuente de
interrupcin, (iv) Si se establece a la vez, no significa necesariamente que ser reconocido y reparado
posteriormente mediante un ISR. Cuando un bit de mscara correspondiente a esa interrupcin est establecido,
incluso si la llag juegos, el procesador puede ignorar si la mscara (o activar) bit modi radica ms tarde. Esto
hace posible para evitar una interrupcin no deseada frente que se est reparando.

Ejemplo 4.12
Considere la posibilidad de una pantalla tctil.
Se genera una interrupcin cuando se toca una posicin de la pantalla. Un bit de estado b, tambin est
definido. Se activa una solicitud de interrupcin (IRQ). Desde el bit de estado, que se ha fijado, el interrumpir
la fuente es reconocida entre el grupo de las fuentes (fuentes mltiples de interrupciones desde el mismo
dispositivo o dispositivos). El ISR_VECTORIRQ e ISR(K(J son comunes para todas las interrupciones en la
lnea IRQ.
Resultados de IRQ en la vectorizacin de procesador a
un VECTOR_ISR|RQ. Utilizando VECTOR_ISR:RQ u'hen el ISR1RQ J COMIENZA, ISR|RQ instruccin lee el registro
de estado y descubre que el bit b, como conjunto. Que las llamadas de servicio // funcin
(get_TOUCH_posilion). en el que se lee el registro R^ para tocar la posicin de la pantalla de informacin.
Esta accin de lectura b, tambin restablece el b, si el controlador de pantalla tctil proporciona el elemento de
procesamiento para Mlde reinicio automtico de b. Esto permite la prxima interrupcin IRQ y, por lo tanto,
4.5 la siguiente
Varias posicin
interrupciones
leyendo
en el prximo contacto. 5/.

4.5.1 Mltiples llamadas de interrupcin


Cuando existen mltiples fuentes de interrupcin del arco, cada aparicin de interrupcin desde una fuente (o
fuentes) de grupo es identificable con un golpe en el registro de estado y/o de los DERECHOS DE PROPIEDAD
INTELECTUAL (Seccin 4.4.4). No se puede interrumpir el servicio de llamadas en caso de sucesin activar
fuentes de interrupcin de mayor prioridad en la sucesin. A continuacin, regresar de alta prioril ISR es menor
prioridad pendiente de ISR.
L.et comprender dos procesadores para interrumpir el servicio mecanismos para el caso de varias
interrupciones.
1. Algunos procesadores no prevn entre desviacin de rutina con mayor prioridad se interrumpe y suponer
que todas las interrupciones o interrupciones de prioridad mayor que la que actualmente ejecuta la rutina
estn enmascarados hasta el final de la rutina. La figura 4.9(a) muestra la desviacin de mayor prioridad
se interrumpe al final de la rutina de servicio de interrupcin actual solamente.
2. Algunos procesadores permiten entre desviacin de rutina interrumpe de mayor prioridad. Figura 4.9(b)
muestra las acciones en esos procesadores. Estos procesadores ofrecen, a fin de impedir el desvo entre
ellas, un mecanismo de la siguiente manera: hay aprovisionamiento para enmascarar todas las
interrupciones por un bit de nivel primario. Estos procesadores tambin la disposicin selectiva mediante
el aprovisionamiento de desviacin para enmascarar el selectivamente por interrumpir el servicio bits
de nivel secundario (Seccin 4.4.3).

4.5.2 Asignar prioridades de hardware


"-

,i">

Hay asignado un orden de prioridad por el hardware. ARM7 dispone de dos tipos de fuentes de interrupcin
externa (solicitudes), IRQ y FIQs (fast solicitudes de interrupcin). 8051 establece el orden de prioridad en el orden de las direcciones del vector
de interrupcin. Bajar la direccin ms alta y superior tiene la menor prioridad. Las interrupciones de 80x86 se
asignan segn orden de prioridad de los tipos de interrupcin. Interrupcin de tipo 0 tiene la mxima prioridad y
255 ha asignado prioridad ms baja.

Los sistemas integrados

2101

iniciada en el momento de

Comienza despus del tiempo t2 + t' slo

Donde t' es el tiempo de cambio de


contexto
ISR debe codificarse
/
en breve para permitir
ISR
Alta
prioridad
Procesador
mayor prioridad isr
ISR
para recibir atencin
rpida.
Evento de interrupcin de alta prioridad
termina en el tiempo t2 ocurre en t, despus
de
(a)
Comenz en el momento de Comienza despus del
tiempo t + t' donde t' es
Tiempo de cambio de
ISR debe codificarse
contexto
en breve para permitir
/
ISR de baja prioridad
para recibir atencin
rpida.
Se
detiene
en
el
Evento de interrupcin
Termina en el tiempo t2
tiempo 6
de alta prioridad se
produce en t, despus (b)
Se reanudar en el
de t0
momento
t2+1"
Fig. 4.9 ( a ) l a desviacin de mayor prioridad
se interrumpe
al final de la rutina de servicio de
1f

interrupcin actual slo (b) entre la desviacin de rutina de mayor prioridad se interrumpe
a menos que todas las interrupciones o interrupciones de prioridad mayor que la que
actualmente ejecuta la rutina estn enmascarados

Cuando hay varias fuentes de interrupciones desde mltiples dispositivos, hardware del procesador asigna a
cada una de las fuentes (incluyendo las trampas o excepciones) o un grupo de origen preassumed prioridad (o
nivel o tipo). Lei nosotros asumimos un nmero. p,ra que representa el hardware-supuesta prioridad de la fuente
(o grupo). Deje el nmero
Estar entre 0, I. .. ... K, .... m - I. Deje phw = 0 significa la mayor; P|1W = I junto a mayor ........ : plm = m - 1
Asigna el menor. Por qu el hardware asignar la supuesta prioridad? Varias interrupciones ocurren al mismo
tiempo durante la ejecucin de un conjunto de instrucciones, y todos o algunos estn habilitados para establecer
el vicio. El servicio utilizando la fuente correspondiente al isr slo se puede hacer en un cierto orden de prioridad.
(slo hay un procesador.) se supone que hay siete dispositivos o interrupcin de grupos de origen. El hardware
del procesador puede asignar phw = 0, 1,2 ............................................................................................ 6.
Las
prioridades de servicio de hardware ser del orden p,LW = 0, 1,2 ........................................................ 6.
El software asignado prioridades invalidar estas prioridades, por ejemplo, en el 8051. Seccin 4.6.3 explica
este punto.
Considere el ejemplo de los procesadores de la familia 80x86. Considere sus seis fuentes de interrupcin; la
divisin por cero, en un solo paso, NMI (interrupcin no enmascarable de RAM error de paridad y as
sucesivamente), el punto de rotura, desbordamiento e imprimir pantalla. Estas interrupciones se presume que son
de pluv = 0, 1,2, 3, 4 y 5, respectivamente. El hardware del procesador se asigna la ms alta prioridad para
una divisin por cero. Esto es as porque es una condicin excepcional encontrados en el software de usuario. El
procesador asigna la ejecucin paso a paso como la siguiente prioridad como el usuario habilita esta fuente de
interrupcin debido a la necesidad de tener un punto de break al final de cada instruccin siempre que se ejecuta
un software de depuracin. NMI es la siguiente prioridad debido a un error de lectura de memoria externa
requiere urgente atencin. Impr Pant tiene la prioridad ms baja.

Que es la interrupcin para ser atendidas primero entre los pendientes? Alguna forma de
mesas se resuelve esta cuestin. El 8086 tiene un mtodo de sondeo de la prioridad
"vectores" un mecanismo de interrupcin del procesador puede proporcionar internamente
por el nmero de vectores, lSR_VECTADDRs. El mtodo de vectores prioritarias" significa que
el mecanismo de interrupcin asigna el ISR_VECTADDR as como phw. Hay un

Los controladores de dispositivo y interrumpe el mecanismo de servicio

Llame al final de cada ciclo de instruccin (oral el retorno de un ISR) foros origen de mxima prioridad entre los
habilitados y pendiente. Vectores prioridades en 80x86 segn el arco nlypo. nIV|)C = 0 la mxima prioridad y
lo = OxFF (=255) de menor prioridad.
Cuando hay varios controladores de dispositivo, PIM, excepciones y seales como resultado de interrupciones
de hardware y de software. La asignacin de prioridades para cada fuente o grupo de origen es necesario para
que el ISR de menor plazo ejecutar anteriormente asignndoles prioridades mayores. Las prioridades
definidas de hardware se usa como predeterminada. El software asignado prioridades invalidar estas
prioridades, por ejemplo, en el 8051.

4.6

Contexto y los perodos de cambio de contexto, latencia de


interrupciones y plazo

Obtencin de una direccin (puntero), desde donde comienza la nueva funcin, la carga de esa direccin en el PC
y, a continuacin, ejecuta la funcin llamada cambiar las instrucciones de ejecucin en funcin de la CPU a otro.
Antes de la ejecucin de las nuevas instrucciones de la nueva funcin del procesador o el sistema operativo
tambin guarda el actual estado del programa word, registros y contextos de programa. Si no se realiza
automticamente por el procesador o el sistema operativo. A continuacin, las nuevas funciones, la instruccin
debe hacerlo. Esto es porque estos (palabra de estado y registros) puede ser necesaria por la nueva funcin
llamada. Registros de la CPU incluyendo palabra de estado del procesador, registros, el puntero de pila y el
programa actual de la direccin del PC en el contexto de definir un cruce. La figura 4.10(a) muestra un contexto
actual del programa. Exactamente lo que debera constituir el contexto? Depende del procesador o del sistema
operativo la supervisin del programa.
El contexto debe guardar si un programa o rutina de funcin izquierda anteriormente tiene que ejecutar de
nuevo desde el estado en que se dej. Cuando hay una llamada a una funcin (llamada rutina en lenguaje
ensamblador. Cruce en C y C++, un mtodo en Java tambin se denomina tarea o proceso o subproceso cuando
se ejecuta bajo supervisin del SO), la funcin o el ISR o corc'/t/iVw-manipulacin funcin ejecuta por tres pasos
principales.
1. Guardar todos los registros de la CPU incluyendo palabra de estado del procesador, los registros y la
funcin de direccin actual para la siguiente instruccin en el PC. Guardar la direccin del PC en una pila
es necesaria si no hay enlace registrar al punto al PC de izquierda instrucciones de la funcin anterior.
Guardar facilita el retorno desde la nueva funcin' a la anterior obsoleta.
2. Cargar el nuevo contexto para cambiar a una nueva funcin.
3. Reajustar el contenido de demora de puntero y ejecutar la nueva funcin.
Estas tres acciones se conoce como cambio de contexto. La figura 4.10(b) muestra un cambio de contexto del
programa actual al nuevo contexto.
La ltima instruccin (accin) de cualquier rutina o funcin es siempre un retorno. Los siguientes pasos se
producen durante el retorno de la funcin llamada.
1. Antes de volver, recuperar la palabra de estado guardado previamente, registros y otros parmetros de
contexto.
2. Recuperar en el PC el PC salvado (direccin) de la pila o el enlace Registrar y cargar otra parte del
contexto guardado de la pila y reajustar el contenido de puntero de pila.
3. Ejecutar la parte restante de la funcin, lo que denomina la nueva funcin.
Estas tres acciones son tambin conocidos como cambio de contexto.
Podemos decir que en interrumpir o llamada a funcin y devolver los cambios de contexto y un nuevo
programa se ejecuta siempre que el nepv- coqtvxt carga en el procesador de registros de la CPU. Figura 4.10(e) y
(d) muestra el contexto

Los sistemas integrados

212

J Programa actual contexto |PC (contador de programa)

Contexto
Conmutacin y/
Funcin actual o guardar en la pila de
contexto ISR j
Y la nueva funcin de carga o contexto ISR

Puntero de pila (SP)


Registros de la CPU
Registro de estado del
procesador

(b)
(")

Rutina actual
J Pasos en

_T

Cambio de rutina nueva


Contexto
Cambiar

1 Guardar la rutina actual contexto en la pila y cargar el nuevo contexto de rutina


2 Ejecutar nuevos cdigos de rutina
En volver guardar nueva rutina contexto e interruptor para la rutina anterior por recuperar el contexto
guardado
Y el

cambio de contexto

Yo ______________

(0
Comienza despus del tiempo +
Comienza despus de la hora h +1'
t' donde t' es el tiempo de
donde t' es el tiempo de cambio de
cambio de contexto
1-^contexto
ISR o
Mayor
Mayor
Prioridad de
Prioridad de
ProgramaYo
ISR
ISR
7 -----

El cambio de contexto en el ti

El cambio de contexto
en la t2 "#>

Fig. 4.10 (a) en el contexto del programa actual ( B ) nuevo programa se ejecuta con el nuevo
contexto de la
Funcin llamada o rutina (c) el cambio de contexto para la nueva rutina y otro interruptor
en el retorno de rutina ( d ) cambio de contexto para la nueva rutina y otro switch sobre el
retorno o entre la llamada a otra rutina

El cambio de contexto significa ahorrar llie contexto de la interrupcin de la rutina (o funcin) y, a


continuacin, recuperar o cargar el nuevo contexto de la llamada de rutina. Ejemplo 4.13 muestra cmo el cambio
de contexto lagos lugar en el procesador ARM.

Ejemplo 4.13
El cambio de contexto es como sigue en el procesador ARM7 en /Sr llamada, (i) la interrupcin de mscara
(disable) indicadores estn establecidos. (deshabilitar las interrupciones de baja prioridad). ii) la siguiente
instruccin PC se guarda en el registro de enlace, (iii) el programa actual status register (CPSR) copias
guardadas en el registro de estado (programa SPSR) y CPSR almacena el nuevo estatuto durante nuevas
instrucciones, (iv) PC obtiene el valor nuevo segn la fuente de interrupcin de la tabla de vectores.
Un contexto de retorno ISR ll volviendo al contexto anterior es como sigue: (i) la PC se recupera desde el
enlace Regstrese, (ii) las correspondientes copias SPSR hacia el CPSR. (iii) la interrupcin de mscara
(deshabilitar) M banderas se restablece. (Habilitar de nuevo las interrupciones de baja prioridad discapacitados
anteriores).
Mi

Los controladores de dispositivo y interrumpe el mecanismo de servicio

213

El tiempo empleado en el cambio de contexto. I .,.,,, h tiene que lx- incluido en un perodo ealled inlcrmin
Itnnicv perodo. T|.". Ejemplo 4.14 muestra cmo calcular el perodo de cambio de contexto de cal, que se
represent en el clculo de la latencia de interrupciones (Seccin 4.0.1).

Ejemplo 4.14
1. Procesador ARM7 cambio de contexto el perodo mnimo es igual a dos ciclos de reloj plus 0-20 ciclos
de reloj para el acabado de una instruccin en curso ms de 0-3 ciclos para anular los datos. Los 0 ciclos
cuando una interrupcin ocurre justo antes del final y 3-20 cuando durante una instruccin. Cal ms
larga tomado para una instruccin de brazo es de 20 ciclos.
2. Durante el cambio de contexto para la nueva rutina llamada o para el retorno. CPSR copias en SPSR
sobre conmutacin de una rutina. CPSR significa estado actual del programa y registro SPSR significa
guarda el estado del programa de registro. 3 ciclos son tomados en la conmutacin de CPSR.
3. Dos ciclos de reloj son necesarios para el inicio de la etapa de ejecucin de la primera instruccin de
rutina conmutada.
Anulando el procesador de datos, lo que significa CPSR no en un afrontamiento SPSR. Paso 2 luego de tres
ciclos no son tomadas en cuenta.
1. Perodo mnimo es pues cuatro (2 + 2) para datos abortar interrumpir. [PASOS 1 y 2 arriba|
2. El mximo es de 27 ciclos de reloj (2 + 20 + 3 + 2) para otros datos de abortar interrumpir. Mximo es
cuando jj
La interrupcin se produce justo al comienzo de la ejecucin de la mayor parte del tiempo tomando la
instruccin en si el procesador. [PASOS I. 2 y 3 arriba|
II
As, para cualquier clculo de perodo de latencia. 27 ciclo de reloj perodos como son mi tiempo de

conmutacindecontexto

Tenerse
en cuenta
a la horagolpea
de estimar
latencia en un sistema
en ARM.
Cada
programa
en ejecucin
a unlacontexto
instante.basado
Contexto
refleja una pizarra de CPU (PC.
holgura puntero(s). Registra y estado de programa (variables que no debera ser modificado por otro de rutina).
Guardando el contexto en la llamada de otro ISR o tarea o rutina es esencial antes de switchiim a otro contexto.

4.6.1 La latencia de interrupcin


Cuando ;m se produce una interrupcin del servicio de la interrupcin de la ejecucin de la ISR puede no iniciarse
inmediatamente por el cambio de contexto. El intervalo entre la ocurrencia de estao la interrupcin y el inicio de
la ejecucin de la ISR se denomina latencia de interrupcin.
1. Cuando el servicio de interrupcin se inicia inmediatamente el cambio de contexto la latencia de
interrupcin Ts"lldl equivale al cambio de contexto econmico. Cuando las instrucciones en un
procesador tomar variable de ciclos de reloj, nmero mximo de ciclos de reloj para una instruccin son
tenidos en cuenta para el clculo de la latencia. La figura 4.11 (a) muestra la latencia en caso de
interrupcin del servicio se inicia inmediatamente.
2. Cuando el servicio de interrupcin docs no se inicia inmediatamente, pero el cambio de contexto se inicia
despus de todos los ISRs
Correspondiente a la mayor prioridad que interrumpe la ejecucin completa. Si la suma de los intervalos
de cal para completar la mayor prioridad que los ISRs XTcx igual". Y, a continuacin, interrumpir la
latencia equivale Tswildl + XT^.. Figura 4.11(b) muestra la latencia en caso de interrupcin del servicio
se inicia despus de ISR actual de mayor prioridad interrumpir completa la ejecucin.
3. Podemos deshabilitar el sistema de interrupcin cuando la rutina entra en una seccin crtica y activar las interrupciones cuando la rutina
sale de la seccin crtica de cdigos. Una rutina de funcin o ISR puede consistir de cdigos de regin
crtica instrucciones y antes de la seccin crtica cdigos todas las interrupciones arco desactivado y
activado por el

Los sistemas integrados

J 214

Final de la seccin crtica. Ttjis;lh|c puede o no l incluy dependiendo del enfoque del programador.
Deje Tjivihlc sea el perodo durante el cual una rutina es desactivado en su seccin crtica. La latencia del
servicio de interrupcin de la rutina de interrupcin con la desactivacin de instruccin (debido a la
presencia de la rutina con la seccin crtica) para una fuente de interrupcin se l + - 1i-m + IDC;ihlc- Figura 4.11(c) muestra la
latencia de interrupciones como la suma de los perodos de T.,VI,dr
DIT.,IV .lhlc tmtl TDI, cuando la rutina actualmente en funcionamiento
para ser interrumpido es ejecutar cdigos de seccin crtica.
En el peor de los casos la latencia es la suma de los perodos Ts".lld,^. Y Tllis;il,1c donde la suma es para las
interrupciones de prioridades ms altas solamente. Mnimo de latencia es la suma de los perodos T,wlIdl y
t(Jis.lWc cuando la interrupcin es de mxima prioridad. Para clculos de latencia, en el peor caso es tomado en
cuenta.
Comienza despus del tiempo t0+t" slo donde t' es el tiempo de cambio de contexto

____ T
Interrum
pir
al
procesad
or a

ISR

Latencia de interrupciones = t'


slo donde t' es el tiempo de
cambio de contexto para guardar
,i la ejecucin del programa marco
y cargar el nuevo contexto de
(a)
rutina

Evento de interrupcin de baja prioridad termina en el


tiempo t2 ocurre en h despus de t0
(b)

ISR

^seccin crtica
(cdigos de tiempo

Gastado = ^desactivar).

(c)

La latencia de interrupcin Texec + + fswiich TSwiicri Tdisable donde es


tiempo de cambio de contexto para guardar el
programa en ejecucin contexl y cargar el
nuevo contexto de rutina, tiempo durante el
cual ls TdjSabie interrumpe permaneca
desactivado en el perodo crtico y es hora
Texec tor que otros ejecutado rutinas de alta
prioridad

Fig. 4.11 (a) la latencia en caso de interrupcin del servicio se inicia inmediatamente (>) latencia en
caso de interrupcin del servicio se inicia slo despus de que la rutina de servicio de interrupcin
actualmente en funcionamiento completa la ejecucin

(b) La latencia de interrupcin como la suma de los perodos, y Tdisab Tswitch


Uexec|e cuando la actualmente ejecuta la rutina de baja prioridad para ser interrumpido es

Ejemplo tener
4.15cdigos de seccin crtica
Microcontrolador 80196 si tiene un dispositivo que tiene un FIFO (First in First Out) buffer y el Si lee los
bytes y la coloca en el buffer. SI genera tres interrupciones: RI en un byte, FIFO de recepcin_4lhEntry
interrumpir cuando est medio lleno y FIFO FIFO_FuII interrumpir cuando el FIFO est lleno.
Supongamos que un microcontrolador dispone de dos dispositivos: Si similar a 80196 y el temporizador T.
Si tiene un buffer de entrada serial de 8 bytes (un FIFO de 8 bytes

Los controladores de dispositivo y interrumpe el mecanismo de servicio

215

0 - 7). Supongamos que un serial de entrada en el si lee un byte delante una red y genera tres tipos de
interrupciones. T genera desbordamiento de timer y el temporizador de captura de interrupciones, denominada
TF y TCAPTURE interrupciones. Peor caso de latencias de interrupcin son como sigue.
1. Cuando el sptimo byte es recibida, el controlador genera Interrupcin FIFO_FULL_FIFO y un pabelln
completo establece en modo. Asume que es la mxima prioridad de interrupcin de serie y el tiempo de
ejecucin se Tcxa ISR. (FIFO_FULL). Para el FIFO_FULL interrumpir, la latencia de interrupcin es
Tswilch + TdjsaWc porque es una prioridad de ISR.
2. Cuando se recibe el byte cero, si genera una interrupcin RI y una bandera Rl establece en el registro de
estado. Asumir RI tiene la menor prioridad de interrupcin serie RI y el tiempo de ejecucin se Tcxcc
ISR (RI). Para RI, interrumpir, la latencia de interrupcin es + (TCAPTURE Tswjlch Tcxcc) +
Tcxcc (TF) + Tdi!a>bh;, porque tiene la prioridad ms baja que el temporizador se interrumpe.
3. Cuando el tercer byte es recibida, si genera una interrupcin FlFO_4lhEntry y un FIFO_Half bandera
establece
En eso. Suponga que es el oriente de prioridad de interrupcin de serie y tiene prioridades inferiores a la
interrupcin TCAPTURE pero superior al desbordamiento del temporizador. Asumir que el tiempo de
ejecucin se Tcxcc ISR (FIFO_HaIf). J FIFO_4lhEntry interrumpir, la latencia de interrupcin es
Tswilch + TCX (TCAPTURE(X) + Tdisab|C porque Jj tiene mayor prioridad que el desbordamiento de
timer pero tiene menor prioridad que TCAPTURE. La T^ Ml (RI) no es tomado en cuenta porque si RI
no respondi entonces slo FIFO_ml se produce la mitad de interrupcin. Ambos interrumpe RI y
FIFO_Haif si pertenecen al mismo dispositivo.
JM
Cada programa en ejecucin cuando se interrumpe, la interrupcin de la rutina de servicio fuente lleva algn
tiempo antes de comenzar el mantenimiento de cdigos. Ese intervalo de tiempo se denomina latencia de
interrupcin. Es la suma del tiempo de ejecucin de mayor prioridad se interrumpe y el cambio de contexto
econmico. Si se interrumpe un rutina es tener una seccin crtica (interrupciones desactivadas), aumenta la
latencia de interrupcin por perodo de tiempo igual al perodo de discapacitados se interrumpe.

4.6.2 Interrumpir el servicio Plazo


Para cada serviee souree, el ISR de sus instrucciones se mantuvo pendiente hasta un perodo mximo. Este perodo
define el plazo durante el cual el servicio debe ser completado. No debe ser menor que el peor caso de latencia de
interrupcin. La figura 4.12(a) presenta un perodo de latencia de interrupcin y plazo de una interrupcin.
Un dispositivo temporizador de 16 bits en desbordamiento plantea TF interrumpir en la transicin de recuentos
de OxFFFF a 0x0000. Tiene que ser respondido mediante la ejecucin de un ISR para TF antes del prximo
desbordamiento del timer ocurre, ms el perodo de cuenta entre 0x0000 despus del desbordamiento y 0x0000
despus del siguiente-siguiente desbordamiento no sern contabilizados. El temporizador cuenta incremento cada
I |ts; el plazo del servicio de interrupcin es 65536 pis.
Los fotogramas de vdeo en videoconferencia llega tras cada 1 * 15s. El dispositivo de obtencin de la trama
interrumpe el sistema y la fecha lmite es el 1 de servicio de interrupcin + 15s, de lo contrario el siguiente
fotograma, se perder.
Ejemplo 4.15 FlFO_Full interrupt deben ejecutarse rpidamente como tiene plazo ms corto en comparacin
con RI y la cuarta entrada interrumpir. Si ISR para FlFO_Full interrumpir no se ejecuta antes de que el siguiente
carcter en el dispositivo de la IS, el personaje va a ser perdida. Si ISR FIFO_4LH entrada interrumpir no ejecuta
rpido, no importa, porque finalmente hay un cojn de la IS, elevando el FIFO_Full interrupcin. Si ISR para RI
interrumpir no ejecuta rpido, no importa, porque finalmente hay un cojn de elevacin IS F^O_4LH entrada
interrumpir as como FIFO_Full interrupcin. FIFO_Full interrupcin se dice que tienen un plazo de servicio de
interrupcin de servicio. Si el dispositivo est recibiendo caracteres is a 64 kbps y en 11 bits, el formato UART
FIFO_FulI plazo servicio de interrupcin es 171,9 ps. FIFO_RI plazo servicio de interrupcin es 171,9 (si si el
dispositivo no tiene el buffer y disposiciones FIFO_media_FIFO y lleno de interrupciones.

().'-,yo....
4
yo
-

Los sistemas integrados

216

j'. J

Tiempo de cambio de contexto


La latencia de interrupcin debe
Nuevo
Caso de ISR ser tal
-H
Que un plazo de un nuevo evento
1
No se pierda de ISR
Yo
Debe comenzar en el momento td

M
Rig. 4,12 (un perodo de latencia de interrupcin) y plazo de una interrupcin ( b ) Corta las rutinas de
servicio de interrupcin (ISR) y funciones, que se ejecutan en las ltimas instancias para
que los dems no se pierdan los plazos de ISR

Un buen principio de diseo de software para mltiples fuentes de interrupcin es mantener a los ISR tan cortos
como sea posible. Porqu .'es el servicio pendiente entre interrupciones y dejar las funciones que pueden ser
ejecutadas posteriormente para un momento posterior. Cuando este principio no se cumpla, interrumpiendo una
determinada fuente puede no ser atendidas dentro del plazo (tiempo pendiente mxima permitida). Seccin 4.2.3 se
describe el uso de subprocesos de servicio de interrupcin, que son el segundo nivel de manipuladores de
interrupcin, figura 4.12(h) muestra un breve ISR y funciones que m i hasta las instancias posteriores de manera
que los dems plazos ISR arc no perderse.
Por consiguiente, el sistema tiene que cumplir los plazos para set vice ofeach dispositivo del sistema. Esto
puede ser entendido por los siguientes ejemplos. Consideremos el ejemplo de un sistema de vdeo. Cuando el
sistema est en funcionamiento, dos- driver de dispositivo ISR tambin funcionan. Es un controlador para el
dispositivo de voz y el otro para el dispositivo de imagen. El ISR y el otro software de diseo para estos dos
controladores de dispositivo para mantener la sincronizacin ms El siguiente conjunto de imgenes y el siguiente
conjunto de seales de voz, se perder.
Por lo tanto, el software del sistema designer disea el ISR apropiado para varias interrupciones del dispositivo
para que todos los dispositivos interrumpan llamadas son atendidas dentro de los plazos estipulados ofeach
interrupcin. El diseo debe proporcionar una ptima las latencias y establecer plazos apropiados para cada rutina
de servicio y funciones.
Cada ISR puede tener un plazo de servicio de interrupcin cuando se interrumpe. Un (SR con un plazo debe
tener menos
de latencia
interrupcin
del plazo.
4,5,3
Software
deporms
de caballo
de hardware "Prioridades para cumplir los

plazos de servicio
Grupo de origen o fuente que tiene mayor prioridad con respecto a las dems, que se decidi en primer lugar entre
los ISRs que se le han asignado una mayor prioridad en el software de usuario. Si las prioridades asignadas por el
usuario son iguales, la mxima prioridad es thaCwhie^preasignados en el hardware interno del procesador. El
mecanismo de interrupcin interna 8051 es como sigue. Existe la prioridad de interrupcin (IP) registrar en el 8051
en la cual hay cinco bits de prioridad para las cinco fuentes de interrupcin en 8051. Tambin existen cinco bits de
interrupcin permiten registrar en el IE. Estos son de nivel secundario habilite bits del procesador del servicio de
ISR. Cuando un

El perodo T

(a)

Tiempo de cambio de contexto de tiempo de cambio de contexto de


tiempo de cambio de contexto
: Interrumpir la latencia = T debera
/
/
Siguiente j/.
Nuevo
Rutina
J es tal que un plazo ol una nueva
Funcin
Caso
de
ISR
1
La rutina j
Caso ISR no est perdido T < t<j
T'
Debe comenzar en el momento td

El tiempo de ejecucin de una


rutina

Los controladores de dispositivo y interrumpe el mecanismo de servicio

1217
T

Prioridad golpe al II' est definida, la fuente de interrupcin correspondiente geles ft alta prioridad y si se
restablece, se obtiene una menor prioridad. 8051 La primera selecciona mediante un sondeo entre la alta prioridad
de acuerdo a los bits en el registro de propiedad intelectual.
Hay una necesidad de cabalgar sobre el orden de prioridad en la asignacin de prioridades. La necesidad de
reasignar prioridades sobre el hardware pro-asignado prioridades puede ser entendida desde el siguiente
ejemplo.

Ejemplo 4.16
Supongamos que existen dos fuentes de interrupciones: puerto serie de entrada y la conversin A/D. Tiempo de
conversin A/D es de 200 (y si es dispositivo sin recibir insumos de bfer de datos a 64 kbps con la separacin
mnima entre los personajes equivale a 171,9. La conversin A/D) debera tener la prioridad ms baja que la Rl
interrumpe de . SI. Cuando el sistema tiene el hardware de los dispositivos internos, asigna prioridad ms baja
al final de A/D la conversin Jj interrupcin. Supongamos que el dispositivo si se utiliza para recibir la entrada
a 16 Kpbs y asumir que el
U MODO DE ARTE tiene 11 bits por carcter. Cuando la conversin A/D es
necesaria de forma continua (por ejemplo, cuando se reciben seales de ECG Ml), el software debe asignar la
mayor prioridad a A/D. PORQUE SI recibe cada carcter JMJj 11/16 ins = 687 (.es y A/D cada 200 (es, a un
ritmo ms rpido que el SI.
EnjSf.

JJ

Prioridades de software puede utilizarse para anular las prioridades de hardware. OS proporciona las funciones,
el software que asigna prioridades a cada ISR, 1st y la tarea del sistema en tiempo real.

4.7

Clasificacin de procesadores mecanismo de servicio de


interrupcin desde el contexto de ngulo de ahorro

1. 8051 El mecanismo de servicio de interrupcin es tal que en la ocurrencia de una interrupcin de servicio,
el procesador empuja los registros del procesador PCH (contador de programa) y byte superior I'CL
(contador de programa byte inferior) en la pila de memoria. La familia de procesadores 8051 no guarda
el contexto del programa (distinto del mosaico absolutamente esencial PC) y un contexto puede guardar
slo mediante el conjunto de instrucciones especficas en el llamado rutina. Por ejemplo, usando las
instrucciones de insercin. Acelera el inicio de ISR y regreso de ISR, pero a un costo. La responsabilidad
de guardar el contexto est en el programador en caso de que el contexto (SP y otros registros de la CPU
que PCLand PCH) va a ser modificado en el servicio o en llamadas de funcin durante la ejecucin de las
restantes instrucciones de ISR.
2. El mecanismo de interrupcin 68HCII es tal que guardar los registros del procesador en la pila cuando se
produce una interrupcin del servicio. Estos se encuentran en el orden de PCL. La PCH, IY1", IXL, IYH
IXH, ACCA, ACCB y CCR. El 68FICII as docs guarda automticamente el procesador contexto del
programa sin ser tan instruido en el programa de usuario. Como guardar el contexto de toma de tiempo
de procesador, se ralentiza un poco el inicio de ISR y retorno del ISR, pero con la gran ventaja de que la
responsabilidad de guardar el contexto no est en el programador y no hay riesgo en caso de que el
contexto se modifica en servicio o llamadas a funciones.
3. Algunos procesador proporciona para un rpido cambio de contexto dos marcos de pila con cada marco
de pila compuesta por el mismo nmero de registros, por ejemplo, 16 o 32 registros. El PC y el puntero
de pila de enlace registrarse definir un marco de pila. Cuando el contexto cambia de una a otra rutina, slo
el puntero al marco de pila cambios. El ISR floja trama que se llama tiene el actual programa marco y el
programa interrumpido el contexto se convierte en el contexto de los programas guardados. ARM7
proporciona un mecanismo de ese tipo. Algunos procesadores ofrecen ms de dos marcos de pila con cada
un contexto de apilamiento.
El programa prev tambin os bloques de memoria, que se utilizan como mltiples marcos de pila de las tareas
(procesos o subprocesos). Esto permite que mltiples subprocesos y tareas inulti.

Los sistemas integrados

Algunos procesadores ofrecen para guardar slo el PC. Algunos procesadores ofrecen para guardar slo los PC
y otros registros de la CPU antes de llamar a los ISR y cambio de contexto. Algunos procesadores ofrecen para
el ltimo cambio de contexto proporcionando marcos de registro interno de la pila o proporcionar conjuntos de
pila local (interna) de los contextos. Rpido cambio de contexto reduce las latencias de interrupcin y posibilita
la reunin de cada funcin o plazo para el servicio de rutina. El sistema operativo dispone de mltiples marcos
de pila para activar la multitarea y el cambio de contexto mediante los mltiples marcos de pila.

4.8

Acceso directo a memoria

Asumir que la transferencia de datos se produce entre el disco duro de la memoria del sistema. El DMA se utiliza
en ese caso. Cuando las I/Os son necesarios para la gran cantidad de datos desde un dispositivo perifrico a las
direcciones de memoria en el sistema o una gran cantidad de datos transferidos por el I/Os, el mecanismo basado
en interrupcin no es adecuado.
Un DMA facilita un conjunto de datos de multi-byte o una rfaga de datos o un bloque de transferencia de
datos entre el dispositivo externo y sistema o entre dos sistemas. Un dispositivo que facilita la transferencia DMA
tiene un elemento de procesamiento (propsito nico procesador). El dispositivo se llama DMAC (DMA
Controller). La transferencia de datos se produce de forma eficaz entre los dispositivos de E/S y memoria del sistema
con la mnima intervencin del procesador cuando se utiliza DMAC. La direccin de sistema y los buses de datos
no estn disponibles para el procesador y disponible para el dispositivo que interconecta 10 utilizando DMAC
durante la transferencia de datos. La figura 4.13 muestra las interconexiones
con el DMAC. Tambin muestra los
RD/WR
Procesador
buses y seales de control entre el procesador,Seleccione
la memoria, el DMAC y data-translerring dispositivo de E/S.
Memoria
del
decodificador

A0-A, 5 y D0 [) /

Yo biu

Autobs
disponible
reconocer
Solicitud
de
retencin
de bus

CS
-J -------- RAM

' Ar EA
Q
Oh

Un

Y
o
!

Dispositi
vo
Con
Uno
Yo A
Enviar
O
DMA
O
Conjunto
Bus
de
E/S.
Controlle
Recibir
de
r
Desde
direccion
(DMAC)
RAM
es
DMAC
forDMA
Peticin DMA Reconocer I ---------------------operacin Seleccione el puerto del decodificador

Puerto

Los buses de sistema no es accesible por la


direccin interna del procesador y los buses de
datos durante el reconocimiento activo

Fig. 4.13 Los buses y seales de control JbetiveeriKhe el procesador, la memoria, el controlador de DMA y transferencia
de datos del dispositivo de E/S.

El DMAC enva una solicitud de retencin de la CPU y la CPU reconoce que si la memoria del sistema los buses
son de uso gratuito. Tres modos son generalmente admitidos en operaciones DMA, (i) Transferencia nica en un
momento y luego

4
.'J

Los controladores de dispositivo y interrumpe el mecanismo de servicio

219

Release 1C) en el sistema de retencin de bus ha alterar cada transferencia, (ii) transferencia rfaga en un momento
y luego la liberacin de los 10
En el sistema de retencin de bus hits. Un hurst puede ser de unos pocos kilobytes, (iii) la transferencia masiva y
luego la liberacin de los 10
En el sistema de retencin de bus Inis slo altera la transferencia se haya completado.

4.8.1 Uso de DMAC


Cuando una peticin DMA est hecha para el DMAC para las I/Os, el DMAC se inicializa por primera vez. Est
programado
(i) la lectura o la escritura, (ii) el modo (bytes, rfaga o a granel) de transferencia DMA, (iii) el nmero total de
bytes que se transfieren
Y (iv) direccin de memoria inicial. Considere la posibilidad de una operacin de lectura a la memoria del
dispositivo externo (transferencia). DMA
Procede sin la intervencin de la CPU, excepto (i) al comienzo del DMAC programacin y inicializar
Y (ii) al final de la misma. Cada vez que una peticin DMA por el dispositivo externo est hecho para el DMAC,
la CPU
Pidi la transferencia DMA por DMAC al inicio para iniciar el DMA y al final para notificar al final de la
DMA por DMAC. Ejemplo 4.16 explica la operacin de transferencia de datos.

Ejemplo 4.17.
Supongamos que 2 kb de datos debe ser transferido. Un mtodo es ese dispositivo interrumpe el procesador,
cuando yo
O 4 o 8 bytes de datos estn listos y generar la interrupcin. El ISR lee el I o 4 o 8 bytes y poner estos
En las direcciones de memoria. Por supuesto que el dispositivo genera la interrupcin y transfiere los 8 bytes.
Nmero de
Interrumpe la requerida ser de 2 k/8 = 2(148/8 = 256 e ISR tiene que ser ejecutado 256 veces. Un DMA es
la mejor
Enfoque.
Un 10 programa inicializa el DMAC para 2 kb modo rfaga transferencia desde una direccin de memoria
para las E/S
A un dispositivo externo a partir de la direccin de memoria M,. DMAC cargas en 2048 en un recuento de
datos y registro
Carga M, en el registro de direcciones en la inicializacin.
En un dispositivo externo solicitando la DMA. El DMAC enva la seal de solicitud de mantener al
procesador.
Reconoce el procesador por el HLDA (hold acknowledge) seal de que cuando el sistema de autobuses no
estn en uso.
DMAC transfiere los bytes desde el bus de E/S para el bus de memoria en rfaga 10 bus frontal para el bus
de memoria
D0-D7 lneas y mantiene un seguimiento de los datos de cuenta en el recuento de datos (DC) registro. La
transferencia tiene lugar
Direcciones de M, M, + 2047. DC = 0 despus de que se complete la transferencia.
DMAC interrumpe el procesador para que el procesador se notific al final de la transferencia
DMA
Y un ISR puede re-inicializar el DMAC para la prxima transferencia.
Un DMAC tambin puede proporcionar acceso a mltiples canales de memoria. Un multi-channel DMAC
proporciona DMA
Accin del Sistema recuerdos y dos (o ms de 10) de los dispositivos. Hay un conjunto de registros para la
programacin

Los sistemas integrados

4.8.2 Uso de un canal DMA en caso de mltiples interrupciones en rpida


sucesin desde el mismo origen.
Una buena caracterstica de DMA-basado servicio de transferencia de datos es muy pequeo en comparacin con
los perodos de latencia de transferencia de datos con mltiples fuentes de interrupcin 10 y multi-byte a granel o
en las transferencias de datos en rfaga. La rutina de servicio de interrupcin perodo desde el inicio hasta el final
ahora puede ser muy pequeo como el ISR que inicia la DMA para la interrupcin de los programas de origen,
simplemente los registros DMA para el comando, recuento de datos, direccin de bloque de memoria y el bus de
E/S Direccin de inicio (Seccin 4.8.1).
El uso de canales DMA para los 10 servicios en lugar de processor interrupt-driven ISRs proporciona un mtodo
eficaz cuando el dispositivo tiene que transferir gran cantidad de datos de I/O. Esto es porque una transferencia
DMA utiliza los perodos cuando el sistema los autobuses son gratis.

4.9

Programacin del controlador de dispositivo

Un sistema tiene varios dispositivos fsicos (captulo 3). Un dispositivo puede tener varias funciones. Cada
dispositivo (uncin requiere un controlador. Ejemplos de mltiples funciones en un dispositivo son como sigue.
1. Un dispositivo temporizador realiza las funciones de temporizacin, as como funciones de recuento.
Tambin realiza la funcin de retardo y llamadas del sistema peridico.
2. Un transceptor dispositivo transmite as como lo recibe no puede ser slo un repetidor. Tambin puede
hacer la jahher control y control de colisin. (Jabber control significa prevencin de flujos continuos de
bytes innecesarios en caso de fallo del sistema. Control de colisiones significa que primero debe sentir la
disponibilidad del bus de red luego transmitir nicamente).
3. Voz-datos-fax mdem Dispositivo que transmite as como las funciones de recepcin de voz, fax y datos.
Un controlador comn o controladores independientes para cada funcin del dispositivo son necesarios. Los
controladores de dispositivos y sus correspondientes ISR son las rutinas importantes en la mayora de los
sistemas. El conductor tiene las siguientes caractersticas.
1. El controlador proporciona una capa de software (Interfaz) entre la aplicacin y el dispositivo
real: Cuando se ejecuta una aplicacin, se utilizan los dispositivos. Un conductor proporciona una rutina
que facilita el uso de un dispositivo en funcin de la aplicacin. Por ejemplo, una aplicacin de correo
genera una secuencia de bytes, estos deben ser enviados a travs de una tarjeta de controlador de red despus
de empaquetar el flujo de mensajes como por el protocolo utilizado en los distintos estratos, por ejemplo,
TCP/IP. La rutina de controlador de red proporcionar la capa de software entre la aplicacin y la red para
el uso de la tarjeta de interfaz de red (dispositivo).
2. El controlador permite el uso de un dispositivo mediante la ejecucin de una funcin de ISR: El controlador
se escriben normalmente en tales amanner que puede ser utilizado como una caja negra por un desarrollador
de aplicaciones. Comandos simples de una tarea o funcin puede entonces controlar el dispositivo. Una vez
est disponible la funcin de un controlador para la escritura de los cdigos, el desarrollador de la aplicacin
no necesita saber nada sobre el mecanismo, direcciones, registros, bits y banderas utilizadas por el
dispositivo. Por ejemplo, considere un caso cuando el reloj del sistema se va a establecer para marcar cada
10.000 PS (100 veces cada segundo). La aplicacin del usuario simplemente hace una llamada a una funcin
del SO como OS_ticks (100). No es necesario que el usuario de esta funcin para saber qu dispositivo
temporizador har. Cules son las direcciones, que ser utilizado por el controlador? Que ser el
dispositivo.register valor Vikere 100 registros para las garrapatas? Qu son los bits de control que ser
establecer o restablecer? OS_ticks (100) cuando se ejecuta, simplemente interrumpe el sistema y ejecuta la
instruccin SWI que llama a la rutina sealizado (ISR) del controlador del sistema dispositivo de relojera.
A continuacin, el controlador de ISR, ejecuta toma como entrada y 100

Los controladores de dispositivo y interrumpe el mecanismo de servicio

221

Configura el tiempo real dock (Seccin 3.X) para que el sistema de reloj cada 10.000 ps y generar el reloj
del sistema interrumpe continuamente cada 10.000 ps para obtener 100 garrapatas cada segundo.
Funciones de controlador de dispositivo genrico en el lenguaje de programacin de alto nivel utilizado en
arco programa de lenguaje de alto nivel. Las funciones son de abrir, cerrar, leer, escribir, escuchar, aceptar, etc.
Controlador de dispositivo de programacin de ISR en general necesita una comprensin del procesador, los
buses de E/S del sistema y las direcciones de los registros en el dispositivo de hardware especfico. Se necesita una
comprensin a fondo de cmo la aplicacin de software programa tratar los datos del dispositivo o en la escritura
de los datos del dispositivo y cul es la plataforma. Plataforma significa que el sistema operativo y el hardware,
que interacta con el sistema de autobuses.
Un mtodo comn de utilizar los controladores es como sigue: un dispositivo (o dispositivos) de mdulos de
funcin est abierto (o registrados o adjunto) antes de utilizar el controlador. Si significa que el dispositivo se
inicializa por primera vez y configurado por establecer y restablecer los bits de control de dispositivo de control de
registro y utilizacin de los servicios de interrupcin est habilitada. Utilizando una funcin de usuario o una
funcin del SO, un dispositivo (o dispositivos) de mdulos de funcin tambin puede ser cerrada o des-registrado
o separada por otro proceso. Despus de la ejecucin de ese proceso, el controlador de dispositivo no es accesible
hasta que el dispositivo se vuelve a abrir (re-registrado o re-adjunto).

4.9.1 Escrito Device-Driving fsica ISRs en un sistema


Para escribir el software de controlador en general, los siguientes puntos deben ser claras.
1. Informacin acerca de cmo se comunica el dispositivo.
2. Informacin acerca de los tres conjuntos de registros de datos de registros de dispositivo o tampones,
registros de control y registros del estado. Un dispositivo se inicializa (configura, registros, atribuye)
estableciendo el control de registro bits. Un dispositivo se cierra (se restablece, eliminacin de registros,
desasocia) restableciendo el control register bits. (ejemplo 4.18)
3. Informacin de otros registros y direcciones comunes para un dispositivo de registro.
4. Bits de registro de control de todas las acciones de control del dispositivo. Un bit de control pueden incluso
controlar la direccin que corresponde a los datos que registre en un instante. Por ejemplo, en la instancia
cuando el bit de control DLAB se establece, el 0x2F8 corresponde a la divisor-latch byte inferior (ejemplo
4.19).
5. Registro Status bits reflejan la Hags lor estado del dispositivo en un instante y cambiar despus de realizar
acciones como por el controlador de dispositivo. Un indicador de estado en un registro de estado refleja el
estado actual del dispositivo. Por ejemplo, una instancia entre la finalizacin de la transmisin de bits de
un bfer de TRH registrarse y obtener los nuevos bits para la siguiente transmisin, un transmisor (pabelln
vaco TDRE) refleja (ejemplo 4.19).
6. Cualquiera de los valores de un bit de habilitacin de control de interrupcin (flag) es utilizada por el
sistema para iniciar una llamada para ejecutar un ISR relacionadas con la funcin del controlador de
dispositivo. ISR se ejecuta si: (i) est activado (no enmascarada en el sistema) y (ii) el sistema de
interrupcin en s tambin est habilitado.
La siguiente informacin debe por lo tanto estar disponible al escribir un dispositivo de control y configuracin
de controlador y cdigos.
1. Direcciones para cada registro. dispositivo fsico de hardware y su circuito de interfaz fijar las direcciones
de un dispositivo fsico y generalmente no pueden ser reubicadas. El dispositivo se convierte en
el propietario de estas direcciones. Por ejemplo, IBM PC hardware est diseado de tal forma que las
direcciones de dispositivos son las siguientes:
a. Direcciones de temporizador entre 0x0040-5F;
H. Direcciones de teclado entre 0x00600-6FD, reloj de tiempo real (system clock) direcciones entre
0x0070-7F;
c. Puerto serie COM 2 direcciones entre 0X02F8-2F y puerto serie COM l direcciones entre 0X03F83F.
2. Puede haber registro de buffer de entrada as como bfer de salida registrarse en una direccin comn.
Esto es porque durante la lectura y escritura del dispositivo instrucciones en el bus de control las distintas

222

5.

4.
5.
6.

7.
8.
9.

Los sistemas integrados

Se han emitido. El dispositivo fsico puede seleccionar dins el registro correspondiente a la hora de tomar
accin. Por ejemplo, hay un registro SBUF en el 8051. Aborda tanto la salida y la entrada serial buffer
buffer serial.
Puede haber varios registros en la misma direccin. Consulte Ejemplo 4.19. Este ejemplo muestra lo
siguiente. RBR (receptor del buffer de datos de registro) y la TRH (transmisor) arc en el registro de la
explotacin en la misma direccin (0x2F8) en el dispositivo de serie COM2 del PC. Esta direccin tambin
es comn que el byte inferior del divisor pestillo, el cual es utilizado para la preseleccin de la velocidad
en baudios del dispositivo. Un bit de control est hecho yo para escribir este byte al establecer la velocidad
en baudios del dispositivo y despus se hace 0 para usar la misma direccin como RBR y TRH durante el
dispositivo 'read' y 'write' instrucciones, respectivamente.
La finalidad de cada bit del registro de control.
La finalidad de cada indicador de estado en el registro de estado. Qu bit de estado cuando se establece y
que refleja una interrupcin de dispositivo, las llamadas a los cuales 1SR.
Si bits de control y estado Hags estn en la misma direccin. El procesador lee el estado de esta direccin
durante el leer las instrucciones. El procesador escribe los bits de control en esa direccin durante la
escritura de las instrucciones.
Si ambos, bits de control y Hags coexisten en el mismo registro.
Si el estado Hag, que establece en un dispositivo interrumpir, auto-restablece al ejecutar la ISR o si un
Router ISR instruccin debe restablecer.
Si bits de control necesitan ser cambiados, restablecer o establecer de nuevo antes de volver a la
interrupcin del proceso.
Lista de acciones requeridas por el conductor en los bferes de datos, registros de control y registros del

10.
estado.
La seccin 8.6.1 se describen en detalle las funciones de administracin de dispositivos en un sistema
operativo. El sistema operativo proporciona normalmente
Las funciones relacionadas con el dispositivo, de manera que para el nuevo dispositivo tambin los controladores
estn escritos en forma idntica. Por ejemplo. Componentes del controlador de dispositivo de Unix son: (i) un
dispositivo ISR, (ii) la inicializacin del dispositivo codes (Cdigos para configurar registros de control del
dispositivo) y (iii) la inicializacin del sistema, cdigos, que ejecute slo despus de que el sistema se restablece
(bootstrapping). M icmsofl OS Windows proporciona las funciones de controlador de Windows (DFP) y user-mode
driver framework (UDMF). Linux proporciona controladores de dispositivo (Seccin 4.9.6). Utilizando el enfoque
de la programacin orientada a objetos. Los controladores de clase tambin estn escritas para la operacin en gran
nmero de tipo similar oi dispositivos mediante bus idnticos o protocolo de red, por ejemplo, impresoras o unidades
de CD o clase de controladores para los dispositivos basados en USB.
Cuando un controlador de dispositivo, tales como leer o escribir o abrir se denomina, el SO primer incoe la capa
lgica. La capa lgica y, a continuacin, inicia la capa physieal so, que implementa la funcin del dispositivo
utilizando un controlador ISR funciones escritas en conjunto de forma que el dispositivo hardware realiza las
acciones en consecuencia. Similarv el dispositivo enva la respuesta de los comandos a la capa lgica del conductor
a travs de la capa fsica.
Los controladores de dispositivo ejecutar de acuerdo con el hardware del dispositivo, mecanismo de servicio de
interrupcin, OS, sistema y 10 autobuses. Un dispositivo ISR de conduccin est diseado usando el dispositivo
de direcciones y tres conjuntos de registros de dispositivo- datos registe(s) o buffer(s), control de registro(s) y
registro de estado(s). Un dispositivo configurado y controlado por los bits de control. El conductor ISR inicia y
ejecuta el indicador de estado de cambio de aceite. Una lista de las acciones requeridas por el conductor en los
bferes de datos, registros de control y registros del estado es necesaria y est preparado antes de escribir el
cdigo del controlador. Los cdigos del controlador son sensibles para el procesador y la memoria. Esto es debido
a que: (i) cuando el cambio de direcciones de dispositivo, el programa tambin debera tambin ser modificados
y (ii) cuando un procesador cambia, el mecanismo de servicio de interrupcin cambia. Normalmente el sistema
operativo proporciona controladores de dispositivo para los dispositivos del sistema.

4.9.2 Controladores de dispositivos virtuales.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

223

Road y las operaciones de escritura, un dispositivo puede necesitar envi una llamada tnieirupi lor inicializar y
configurar (apertura, registrar o adjuntarlo. Visitas de control de ajuste adecuadamente esta docs), (ii) tal y como se enva un
archivo a i rati llamada, un dispositivo debe enviarse otra entre nipt llamada cuando su entrada de buller(s) tiene que ser ledo,
(iii) como un mosaico es enviado un carril de escritura, un dispositivo necesita envi otro interrumpir la llamada cuando el bfer
de salida es l escrito. (IVT slo como un lile es enviada una estrecha llamada necesita un dispositivo envi otro interrumpir la
llamada disable (cerrar o anular el registro o separar) del sistema lor ms operaciones de lectura y escritura.

El concepto de virtual (software) de los controladores de dispositivo es muy importante en la programacin.


Ejemplos las reas siguientes.
1. Un bloque de memoria puede tener datos tampones en analoga a buffers en un dispositivo 10 y ean char
ser accedidos desde un controlador o un conductor negro. El dispositivo se llama el carcter dispositivo o el dispositivo
de bloque cuando ean tener acceso a un carcter o un bloque de caracteres, respectivamente.

2. Un dispositivo fsico transceptor (con bloque input-output buffer) o repetidor es equivalente a un


dispositivo virtual llamado bucle dispositivo hack. Almacena los bloques de memoria asignados utilizando un
controlador de dispositivo de bloque y devuelve los datos desde la memoria.

.i. Un bfer enlazado en la memoria del dispositivo puede ser como un buffer de la impresora. Es un flujo de
datos enviado por una rutina (conductor) y ledo por otra rutina (conductor). Bfer enlazado dispositivo es un
dispositivo virtual, generalmente llevado cal/>//>? Dispositivo.
4. Un programa puede almacenar en un conjunto de bloques de memoria denominada RAM tlisk en la anloga
forma un sistema Ide en el disco duro. Disco RAM es un dispositivo que consta de mltiples dispositivos de archivo
interno.

El dispositivo virtual es un concepto innovador de diseo de software del sistema. Los controladores para estas
tambin se escriben como los controladores de dispositivos fsicos. Dispositivos importantes son char Device,
dispositivo de bloque, dispositivo de bucle, archivo de dispositivo, tubo, zcalo y el disco RAM. Configuracin
de dispositivo es equivalente a la creacin de un archivo. La activacin del dispositivo sobre la interrupcin es
equivalente a abrir un archivo. Restablecimiento del dispositivo es equivalente a cerrar un archivo. Desconexin
del dispositivo es equivalente a liberar el espacio de memoria asignado a un archivo de datos.

4.9.3 Los controladores de puerto paralelo en un sistema


Controlador de dispositivo de lectura ( ) Esta funcin puede ser implementada por llamar a un ISR es Porl_ISR_input, que
gestionan los puertos de entrada. Figura 4.14(a) muestra de control y estado de bits utilizados en los ISRs en los controladores
de dispositivo y pasadores de puerto de interfaz con el bus de datos. Figura 4.14(b) muestra el paso a paso de inicializacin de
puerto II para llamar al conductor y los pasos 0 a 5 para el conductor PortJSRJnput. El controlador lee byte del puerto y lo
coloca en una cola que se construye en la memoria sobre las sucesivas aportaciones al puerto.

Port_ISR_Inpui docs lo siguiente:


1. Paso 2 establece el bit de control de dispositivo de plomo. Paso H hay accin (mal evento de entrada.
2. Los pasos 0 a 2 son para leer el bfer de entrada(s) antes de vaciar el buffer y almacenar el byte(s) en la
memoria o utilizando los bytes recibidos segn los requisitos del sistema.
3. Paso 3 restablece el dispositivo del bfer de recepcin listo bandera (en registro de estado) y, por tanto,
prepara el dispositivo para la siguiente lectura despus del paso 4. En el paso 4, se restablece la bandera
de interrupcin para activar el siguiente byte ledo sobre la siguiente interrupcin.
Un ejemplo de escritura de controladores de dispositivo () funcin es un controlador de ISR para manejar
las salidas de puerto. El ISR realiza lo siguiente:
1. Establece el bit de control del dispositivo para la escritura.
2. Enva al dispositivo el bfer de salida (s) de la(s) bytes de la memoria.
3. Restablece el dispositivo-Bfer de transmisin-bandera vaca (en status register) en la finalizacin de la
transmisin del byte(s) y preparar el dispositivo para la siguiente escritura.
Ejemplo 4.18 ofrece un controlador de dispositivo ISR ejemplo utilizando el microcontrolador 68HC11
Puerto C (68HCII microcontrolador se presume de conocimientos aqu).

1224!
i

Los sistemas integrados

El
control
Y
El
estado
Bits
D0-D7

Evento de
interrupcin
estroboscpi
ca bandera
poco listo
poco

Paso A : Programa inililization


Paso B: controlador de dispositivo
Programa Paso 0 a 5 por el puerto
de entrada a la rutina de servicio

Pins de entrada del puerto

Bandera de interrupcin Bit

(*"
F 4 . 1 4

(o) de control y estado de bits utilizados en las rutinas de servicio de interrupcin (ISR) llamado por los
controladores de dispositivo y pines de un puerto usado para crear una interfaz entre el bus de datos (>)
el paso para la inicializacin, el paso 8 para la interrupcin del conductor y de los pasos 0 a 5 para el
conductor PortJSR Jnput ejecucin. El controlador lee un byte desde un puerto y lo coloca en una cola que
se basa en la memoria de aportaciones sucesivas al puerto

Ejemplo 4.18.
Controlador de dispositivo de lectura () funcin llama a un ISR PortCMSR para manipular el puerto C entradas
en 68HCII. El puerto C utiliza la mano seales de agitacin. La figura 4.15(a) Muestra la mano temblar la seal
al puerto.C. Figura 4.15(b) muestra de control y estado de bits utilizados en la llamada al controlador. Figura
4.15(c) muestra el puerto C como entrada y su interfaz con el bus de datos. Figura 4.15(d) muestra el puerto C
como salida. Figura 4.15(e) muestra el paso para la inicializacin, el paso B de la interrupcin y el paso C para
ejecutar PortC_ISR. El ISR lee desde el puerto y se inserta el byte en una cola. Este ltimo se basa en la memoria
sobre las sucesivas aportaciones al puerto. Un perifrico externo activa STRA pin. El perifrico solicita una
transferencia de su byte al puerto C a travs de la stra. Cuando STRA pin se activa por medio de 'O', el puerto
C da un acuse de recibo en caso STAI (STRA interrumpir bit de mscara) en un control de registro no est
establecida (STAI no est en 'I'). STRB patilla enva seal de hardware para el estado listo (acuse de recibo) o
desde el puerto C para el perifrico. Cuando STAI est programado para 'O', el perifrico pone el byte en el
buffer del puerto tan pronto como pin STRB enva el acuse de recibo. Tan pronto como el perifrico finaliza
poniendo el byte en el puerto C, el STAF juegos (=0). Este tipo de calzado est en registro de estado. Este tipo
de calzado es la bandera de interrupcin, que se establece cuando el dispositivo externo finaliza poniendo el
byte al puerto C.
Direccin de memoria del puerto C es 0xp003, cuando la pgina de direcciones configuradas en 68HC11 es
OxpOOO (p es 4 bits significativos mximo- nibble). Una llamada al controlador de dispositivo ISR para abrir
el dispositivo del puerto C (), tres acciones ocurren por el programa de inicializacin de dispositivo, (i) definir
el puerto C direccin de la siguiente manera. # Definir PortC 0x1003 I* p bits como 0001 */. (ii) restablecer
todos los ocho bits a 0s a DDRC, de manera que el puerto C se convierte en una entrada de puerto paralelo.
DDRC es direccin de datos

Los controladores de dispositivo y interrumpe el mecanismo de servicio

225

Regstrese para el puerto C en la direccin de memoria 0xp007. (iii) en la llamada de


inicializacin, STAI establece a I' tor permite interrumpir el perifrico que se conecta al puerto C. STAI es el
sexto bit de PIOC (puerto I/O control register). Es en la direccin de memoria 0xp002.
Las seales de hardware
STRA y STRB
llamado Strobe y listo cuando
el puerto C es la entrada
y ACK y tampn no
lleno cuando el puerto C es el
puerto de salida

Un bit de
control de
registro

- STRA desde
Perifricos de entrada o de
salida externa
- Perifricos STRAB

El STAI
(STRA
Interrumpir Bit de
mscara)

Un registro
de estado
poco

(a)
Entrada
del
puerto C pins

D0-D7
L.

El puerto C
68HC11 cuando DDRC
Registrarse
Todos los bits = 0

El puerto C68HC11 cuando DDRC


Registrarse
Todos los bits = 1

(c)

<d)

(e)

Fig. 4.15

(a) a mano seal de sacudir a un puerto paralelo (b) de control y estado de bits utilizados en
El sistema de llamadas de funciones del controlador (c) el puerto C como entrada y su interfaz con el
bus de datos

(c)

C como puerto de salida (e) el paso para la inicializacin, el paso B para la llamada al sistema

para el conductor y el paso C para el conductor PortCJSR

Un conductor ISR programa para el puerto C leer ejecutar despus de las siguientes acciones.
1. Si STAI es '0' y, a continuacin, leer ese tipo de calzado. (Este tipo de calzado es el sptimo bit al
PIOC. PIOC tambin proporciona los bits de estado. Es para el control cum status bits).
2. Si este tipo de calzado es '0' y luego interrumpir para llamar a portCJSR (rutina de servicio del puerto
C); de lo contrario, espere.
3. No hay necesidad de software reset STAF como hay hardware reset automtico de 68HC11 tan pronto
como se llama portCJSR.
La rutina del controlador portCJSR programacin se realiza de la siguiente manera. Asumir el nombre de
punteros y variables son
Como siguiente: (i) *portC_QoeueSack '.f'un puntero que seala a una direccin de memoria donde el byte de
El puerto C inserta en una cola, (ii) la longitud de la cola est presente portCjQueuekngth, (iii) QueueSize

portCJAax
Es la longitud de la cola mxima definida para el puerto C bytes recibidos.

226

Los sistemas integrados

1. Si cuasi Jndir hit no es igual a false, escribir OxFF al puerto C.

2 Leer el puerto C'.


. Si es inferior a la jurnCJJiwuvknxth partC_MuxQueueSi:e impacta en el puerto almacn

3. Direccin definida por *porlC_Qiieuelail.


Si />ririC._Qiiaiclnixth no es igual a portC_MaxQitetwSize luego desviacin *pnriC_Qiieuctail
4. Dejarlo Ahora apunte a la siguiente direccin. Al igual despus llamar una excepcin Unvr rutina) para
Puerto C.

4.9.4 Los controladores de puerto serie en un sistema


Hay denominado estndar IEEE POSIX (Interfaz de sistema operativo portable) estndar. La portabilidad de la
UART controladores en diferentes sistemas es esencial. En un PC con un procesador 80x86 UART 8250 o una
nueva generacin de dispositivo UART 16550 UART. que incluye el FIFO de 16 bytes del bfer de entrada y
salida. Ejemplo 4.19 da a los tres conjuntos de los registros (datos, control y estado) para un dispositivo UART de
lnea serie en un PC. Todos los equipos tienen este dispositivo.

Ejemplo 4.19
Un dispositivo de lnea serie 8250 o 16550 en un 80x86-hased IBM PC tiene las direcciones de dispositivo se
registra como sigue. Estas direcciones son fijos por la configuracin de hardware de la interfaz del puerto UART
circuito en IBM PC SYSTEM empleando el procesador de 80x86. Son de 0x2F8 a 0x2FE en el puerto COM2
en el PC y Ox3F8 a 0x3FE EN COM I port. Considerar COM 2.
1. Dos de E/S de bfer de datos registra (RBR para recibir y TRH para transmitir) estn en una direccin
comn, Ox2F8(a) Siempre un bit de control en la direccin 0x2FB es 0. (i) durante la lectura de la direccin, el
procesador accede desde el RBR o (ii) en escribir a la direccin, el procesador accede a la TRH.
(b) Siempre un bit de control en la direccin 0x2FB es I. Datos de dos bytes de pestillo divisor arco en
direcciones distintas. 0x2F8 (LSB) y 0x2F9 (MSB). Pestillo de divisor posee un 16-hil valor para
dividir el reloj del sistema. Esto, a continuacin, selecciona la velocidad de transmisin en serie de
bits en la lnea de serie. (Al escribir un controlador de dispositivo, recuerde que un poco en otro
registro (el registro de control de cambios) el 0x2F8 acceso desde acceso a los 10 Regstrese para
el byte inferior registrarse en divisor registro de pestillo.
2. Tres registros de control se encuentran en tres direcciones distintas 0x2FA. 0x2FB y 0x2FC. Estos son
para escribir en los registros de la siguiente manera:
(a) IER (registro de habilitacin de interrupcin). Permite que el dispositivo se interrumpe.
(b) LCR (lnea de control de registro). Define cmo y cuntos bits estar en la lnea.
(c) El registro de control MCR (mdem). Se define la forma en que el mdem se
comunica y apretones de manos.
3. Tres registros del estado del dispositivo tambin se encuentran en tres direcciones 0x2FA. 0x y
0x2FD2FE y se utilizan durante la lectura frente de estas. Estos son como sigue:
(a) Registro de identificacin de interrupcin (HR) para banderas de 0x2FA. Un Hag establece en un
dispositivo interrumpir y se restablece en el servicio de interrupcin del dispositivo correspondiente.
(b) El RMC en 0x2FD. Es el estado de la lnea de lectura el nmero de bits que estarn presentes en la
lnea.
(c) MSR en 0x2FE. Especifica el estado del mdem de bits durante la comunicacin y apretones de
manos. Asumir que el dispositivo ha sido dado el nmero de identidad 5. Tambin es un descriptor de
fichero para el dispositivo que apunta a la descripcin de los parmetros del dispositivo.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

227

Fa) Un dispositivo serie de alto nivel, abierto (funcin del controlador 5. velocidad de baudio) configurar
e inicializar el dispositivo. Establece el restablecimiento Hag en ilk. Se inicializa el dispositivo
desenmascarando el dispositivo se interrumpe y escritura de los bits de control por reloj divisor el
pestillo en la direccin especificada. Divisor de bits de pestillo definir el baudio rale configurado
para el dispositivo.
(b) Un dispositivo serie de alto nivel de escritura (funcin del controlador 5 . memTxaddress lengthi)
enviar bytes en TRH uno por uno y el dispositivo transmite el total de bytes = longitud I de
direcciones para memTxAddress memTxAddress + lengtlii - I.
(c) Un dispositivo serie de alto nivel de lectura (funcin de controlador 5, Ien2, memRxaddress)
recibirn bytes J
A travs de RBR y el dispositivo recibe los bytes uno por uno y ien2 Nmero de bytes se ponen J[en
el bfer en la direccin de memoria de memRxaddress a memRxaddress + Ien2 - I.
1
(d) Un dispositivo serie de alto nivel funcin controlador de cierre (5) se cierra el dispositivo. Puede
entonces ser Mi reutilizar slo despus de abrirlo por open (). El dispositivo se cierra por el
enmascaramiento del dispositivo se interrumpe. Jf

4.9.5 Los controladores de dispositivo para dispositivos de temporizacin


programable interno
Generalmente, hay al menos un hardware timerT como un dispositivo interno en cualquier sistemas que necesitan
funciones
relacionadas
Ejemplo
4.20 con los temporizadores. Utilizando el time-out (garrapatas) desde T (con interrupciones)
desbordamiento
de tiempo
varios temporizadores
(SWTs) como
tambin
se puede
conducir.
Un determinado
de espera ahorasoftware
son ms necesario
finos de hardware
cada 21,1
(16384)
cuenta
y dejar que el
reloj dar entrada en cada 2 ps asumen que una SWT va a ser programado para lamer cada 31 x 32,768 ,us =
1.015808 s. SWT debe interrumpir despus de sw>t cuenta swtent pasa a ser igual a nnmTicks (nmero
preestablecido de garrapatas). El SWT es Jj inicializa por primera vez a swtent es igual a 0 y en cada T un
desbordamiento por incrementos de ISR y cuando Jj swtent swtent equivale a 31 Luego.rir/cu/ se restablece a 0 tras generar una
interrupcin de software SW1 instrucciones.

Un SWT-ISR ejecuta entonces a realizar las acciones necesarias en SWT interrupcin.


Controlador de dispositivo temporizador funcin llamada un ISR. El ISR la programacin requiere de un
conocimiento de la programacin de cada bit de control timer registra) y el estado registerfs). Un paso importante
es la programacin de cada bit de uno o dos registros de control actual y el uso de registro de estado. El
programador debe tener en cuenta tambin el siguiente, (i) en lugar de habilitacin de interrupcin, un dispositivo
puede tener un bit de mscara. Bit de mscara significa interrumpir deshabilita y habilita el restablecimiento. Sus
acciones son opuestas a la del bit de habilitacin. El programador debe recordar tambin que una cierta
interrupcin no puede desactivar (no puede enmascarar, NMI). Estos permiten o mscara de bits son los bits de
secundaria. Hay una interrupcin total de bits de activacin del sistema, que es como una llave maestra de nivel
primario (bits) para todas las fuentes de interrupcin de mscara. El conductor debe establecer que el bit tambin.
Ste/> I: Escribir en un registro que contiene el valor de conteo mximo de temporizador, el nmero de
entradas de recuento. Para el itumTicks SWT.
Segundo paso: Escribir en el registro de estado del temporizador tlag estado(s) igual al caso de aletas de
restablecer el dispositivo docs no restablecer la bandera(s) automticamente en una lectura del indicador de
estado(s)].
Paso HI: Escribir cada bit presente en el control de registro(s). Escribir interrumpir secundaria y primaria de
habilitar bits equivalen a true en control de registro, escriba otros bits dtcordthg a sus usos. Es imprescindible
escribir el bit de habilitacin del dispositivo para que el dispositivo funcione. Definicin de cada bit en el modo
de registro, si est presente, tambin es esencial.
Supongamos que un contador free running (FRC) se utiliza como un dispositivo de distribucin. Controlador
de dispositivo de programacin ISR pasos requieren el uso de 68HCI1 RTC se describe en la seccin 3.8.
Considere el ejemplo siguiente. (68HCI1

228

Los sistemas integrados

Conocimiento de microcontrolador se presume aqu). El ejemplo que nos da los detalles de bits que se inicializan
lor usando dispositivo de FRC de 68HCII.

Ejemplo 4.21
1. Primer paso: Definir la salida comparar register(s) para sujetar count(s) instancia(s) de los FRC cuando
OC bandera(s) establece y OC interrumpir(s) incidencias(s).
2. Paso II: Bandera(s) en su lectura del registro de estado debe restablecerse en caso de que el dispositivo no
se reinicia automticamente. Las banderas que pueden estar presentes son el indicador de estado de
desbordamiento de FRC, OC bandera(s) [CAP_F(s) bandera, la bandera de RTC y SWT bandera(s). stas
se restablece en una lectura del registro de estado.
3. Paso 3: Definir control de registro(s) bits. Aqu, la definicin de cada bit presente es esencial. Los bits
puede
Ser como sigue. Para la entrada de recuento de bits Prescaling reloj, desbordamiento de habilitacin de
interrupcin, el bit de interrupcin de RTC , OC intemipt J permiten habilitar(s) de bits, Bit de
habilitacin de OC(s), OC Nivel de salida(s) de bits, Bit de habilitacin [CAP(s). Jl ICAP borde de
entrada poco, 1PAC bit de entrada(s), 1PAC interrumpir(s) Bit de habilitacin, SWT habilite bits Jj y
SWT Bit de habilitacin de interrupciones(s).
MM
4. Paso IV: Tambin activar el bit de habilitacin de interrupcin de nivel primario, si ya no est habilitada.
4.9.6 M
Linux
Internals como controladores de dispositivo y las funciones de red.
M
Los controladores de puerto, teclado, pantalla, temporizador y dispositivos de red (Secciones 3.3, 3.6 y 3.9) son las
ms comnmente utilizadas en sistemas (l. Drivers para PCS (codificacin) y la subcapa fsica PMA (soporte fsico
adjunto) son necesarios en dispositivos multimedia para la mayora de sistemas de voz y vdeo. Resulta poco
prctico para un programador a escribir mentira cdigos para cada funcin del dispositivo. Para los dispositivos
usados comnmente, un programador muy a menudo se basa en controladores marcar estn fcilmente disponibles
en el probado y depurado sistema operativo (consulte los captulos 9 y 10 para el SOP II. VxWorks OS, Windows
CE y Linux de Osek en Tiempo Real).
El sistema operativo Linux es un sistema operativo probado y depurado y se usa en todo. Instar tiene un
nmero de conductores (Tabla 4.2) que son, por otra parte, en el dominio pblico. Dominio pblico significa la
no- vnprietary y utilizables por cualquier persona. Un programador puede, por tanto, elegir los controladores
Linux cuando el embedded > >TCM est diseado tiene dispositivos que tienen los controladores disponibles en
Linux (consulte la http://www.linuxdoc.oigt).
Linux tiene funciones internas llamados Internals. Internals existen para los controladores de dispositivo y
unciones de gestin de red. Ejemplos tiles para los controladores Linux Embedded System estn dados en la Tabla
4.2.
Existen funciones internas de Linux para los sockets, manipulacin de socket buffers, firewalls, protocolos de
red (por ejemplo, M'S. IP, IPv6 y ethemet) y puentes. Estos se encuentran en el directorio de red. Ellos trabajan
por separado como controladores y iKo forma parte de la funcin de administracin de red del sistema operativo.
(El lector puede consultar un libro de texto estndar para m-sabio significado de UDP, PPP y SLIP y para funciones
de socket, el firewall y los protocolos de red. Por ejemplo, onsulte Internet y tecnologas Web de Tata McGrawHill, 2002 Para bit-wise descripcin de PPP, SLIP, TCP, IP, ethemet y otros protocolos).
Los controladores de dispositivos juegan un papel clave en la mayora de sistemas integrados como estos
proporcionan software capas entre las aplicaciones y los dispositivos. Los controladores controlan casi todos los
dispositivos, excepto los dispositivos de memoria y el procesador en un sistema. Los controladores de
dispositivos de Linux tambin se usa popularmente porque est probado y depurado y estn en la publfc.'domaj*.
El SO Linux tiene caractersticas internas y un gran nmero de controladores de dispositivos disponibles para el
ms comn de los dispositivos fsicos y virtuales y tiene las funciones de las tomas de red y protocolos.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

229 i

Tabla 4.2 tiles los controladores de dispositivos de Linux


Tipo de controlador
Char
Bloque
ar

Net

Explicacin

Controladores para dispositivos de char. Char device es un dispositivo para el manejo de


una secuencia de caracteres (bytes).
Los controladores de dispositivos de bloque. Un dispositivo de bloque es un dispositivo que
controla un bloque o parte de un bloque de datos.
Por ejemplo, me kB de datos manejados en un momento. (Nota-. Controlador de bloque de Unix
no facilita el uso de parte

Del bloque durante la lectura o la escritura).


Los controladores de dispositivos de red. Un dispositivo de red es un dispositivo que
controla el dispositivo de interfaz de red (tarjeta o
Media
Adaptador) utilizando un protocolo de lnea, por ejemplo, tty o PPP o SLIP.
Los controladores para los dispositivos de entrada estndar. Un dispositivo de entrada es un
Video
dispositivo que administra las entradas desde un dispositivo,
Por ejemplo, el teclado.
Los controladores para los dispositivos de entrada de voz y vdeo. Algunos ejemplos son el
Sonido
vdeo, teletexto, dispositivo FRAME GRABBER
Sistema
Device, dispositivo de radio (en realidad una transmisin de voz, msica o dispositivo de
voz).
Los controladores para los dispositivos de salida de video estndar. Un dispositivo de vdeo
es un dispositivo que maneja el fotograma
Buffer desde el sistema a otros sistemas como char o un dispositivo hace el envo de un
paquete de red UDP
Resumen
Dispositivo hace.
Los controladores para los dispositivos de audio estndar. Un dispositivo de sonido es un
dispositivo que maneja audio en un estndar
El siguiente es unFormato.
resumen de los puntos importantes que se discutieron en este captulo.
Los controladores
especficos
de cada
el sistema
controladores
Interrumpir significa
acontecimiento,
que invita
a la plataforma.
atencin ol Recientemente,
el procesador para
la accin
de hardware.
especficos
del procesador
tambin
se hanEn
convertido
disponibles
en la ejecucin de la
Evento puede
ser un evento
de hardware
o software.
respuestaen
a la
interrupcin,
Este sistema
operativo.
Algunos
sondelosrutina.
controladores para un sistema basado en
rutina o programa
se interrumpe
y se
ejecutaejemplos
un servicio
el procesador
ARM.est listo, un dispositivo o puerto genera una interrupcin o cuando se
cuando un dispositivo
o puerto
completa la accin asignada, se genera una interrupcin. Estas interrupciones se llaman las interrupciones
de hardware. Cuando el software de tiempo de ejecucin se detect una condicin de excepcin,
cualquiera de los procesadores hardware o una instruccin de software SW1 genera una interrupcin
de excepcin. Una instruccin SWI es I NT n en 80x86.
T Dispositivo, error en tiempo de ejecucin y las interrupciones relacionadas con la instruccin de software
son estudiados. Varias posibles fuentes de interrupciones de hardware y el software se enumeran.
Funciones de controlador de dispositivo ejecutar rutinas de interrupcin de software para el mantenimiento
del dispositivo, y conducir un perifrico o dispositivo interno por crear, abrir, leer, escribir, cerrar o otras
funciones del dispositivo. Un dispositivo est configurado y se inicializa mediante los bits de control en
su control de registro(s). El controlador de dispositivo se ejecuta en hardware o software como
interrupciones por establecer marcadores en registro de estado(s).
Controladores de dispositivos fsicos, los controladores de dispositivos virtuales y ISRs para la
instruccin de software, software-condicin definida y la condicin de error se utilizan para programar
el sistema.
" Cada sistema tiene un mecanismo de servicio de interrupcin.
Aprendimos la inicializacin del dispositivo, el controlador ISR andfunction codificacin para los puertos paralelo, serie
Input

de lnea y UART interna del dispositivo de distribucin en 68HC11.

Los dispositivos virtuales como char Device, dispositivo de bloque o archivo, dispositivo de disco RAM,
socket, tubo, bucle dfjrice utilizados durante la programacin. Estos son tratados de manera similar a los
dispositivos fsicos.
Hay interrupciones del dispositivo, as como otras fuentes de interrupcin, funciones de controlador de ISR y
para el cual debe ser escrito por el programador. Una lista de las diversas fuentes posibles de interrupciones
de hardware y software. Un

230 j

Los sistemas integrados

La instruccin de software o una condicin duri/ju funcio^-rcJaicd o ejecutar a sintonizar relacionados con errores o
controlador de dispositivo tunction interrupciones son importantes en los sistemas.
Interrupcin interrupcin de dispositivo individual y sistema de activacin y desactivacin, imen'upt, vectores de
interrupcin pendiente de registros y registros del estado, no ocultable, mscara, no ocultable nicamente cuando as lo
definido dentro de un lew ciclos de reloj despus del restablecimiento.
Cada programa en ejecucin tiene un contexto en cada instancia de ejecucin de cdigo. Contexto significa una pizarra de
CPU (PC. El puntero de pila(s), los registros y el estado del programa (variables que no debera ser modificado por otro
de rutina). El contexto debe ser guardado en una llamada a otro ISR o tarea o rutina. Hay que hacer antes de cambiar de
procesador a otro contexto. Procesador pasa bajo otro contexto por recuperar la llamada en el contexto del programa.
Algunos procesadores como los de la familia del brazo proporcionar para un rpido cambio de contexto. Estos tienen la
holgura interna marcos o conjuntos de registros locales de los contextos. Rpido cambio de contexto reduce las latencias
de interrupcin y posibilita la reunin de cada plazo de tareas en tiempo real. El programa os ofrece para los bloques de
memoria (asigna los bloques) para ser utilizado como marcos de pila en un sistema multitarea.
La programacin debe ser tal que las latencias de interrupcin arco realizado tan cortos como sea posible. Esto ayuda en
el cumplimiento de los plazos para cada servicio de interrupcin. Uso de subprocesos de servicio de interrupcin (ISR a
nivel lento iniciado por suizas) ayuda a tener los principales cdigos de ISR de primer nivel corto. El uso de un canal
DMA facilita los pequeos perodos de latencia de interrupcin de un 10 fuente de interrupcin que requieren
transferencias de datos a granel o en rfaga.
Puede haber demandas de servicio simultneo de mltiples fuentes. Software de asignacin de prioridades entre las
mltiples fuentes de interrupciones, teniendo en cuenta las prioridades de hardware disponibles es esencial.
Linux tiene un gran nmero de controladores de dispositivos, que arc open-source.

Palabras clave y sus definiciones


Contexto

El cambio de contexto

Fecha lmite
Fijacin del dispositivo
(agregar) Dispositivo de
desconexin (extraccin) del
controlador de dispositivo
cdigos de ISR
Cdigos de inicializacin de
dispositivo del dispositivo de
cierre del dispositivo de
apertura
Excepcin
Controlador
excepciones
Programa ende
primer
plano
se asigna prioridad a los
hardware

PC. holgura puntero as como el programa slams word


y los registros del procesador
Para un programa en primer plano o ISR o tarea. Ii tambin puede incluir el bloque
de memoria
Las direcciones asignadas bajo el programa o rutina.
Guardar el programa en primer plano |interrumpe la rutina (o funcin)| contexto
Y recuperar o cargar el nuevo contexto de la llamada de rutina. El tiempo
En conmutacin atnlexl token est incluido en el perodo de latencia de
interrupcin.
Un perodo durante el cual el servicio a una interrupcin debe comenzar.
Configuracin de un dispositivo y permitiendo el uso de su'driver.
Deshabilitar el uso de un controlador de dispositivo en el sistema.
Cdigos para leer y escribir u otras operaciones en el dispositivo despus de
direcciones
Leer el estado del dispositivo de interrupcin.
Los cdigos de programacin del control de registro de un dispositivo.
Restablecimiento del dispositivo bits de control y preparacin para la utilizacin de su
controlador.
Restablecimiento del dispositivo bits de control y su prxima vez, entonces, es posible
utilizar slo por
Abrirlo de nuevo.
Una interrupcin en la deteccin de un suceso en tiempo de ejecucin durante los
clculos o
La comunicacin. Ajuste de una condicin que puede ser definida por el
programador.
Programador define el controlador de excepciones ISR tambin para manejo de
servicio
Esa condicin. Condiciones de error son manejadas por los controladores de
excepciones.

Los controladores de dispositivo y interrumpe el mecanismo de servicio

Temporizador de Hardware de
interrupcin de hardware

Interrumpir
Bit de habilitacin de
interrupcin de bandera de
interrupcin
La latencia de interrupcin
Bit de la mscara de
interrupcin
Interrumpir espera registrar

Mecanismo de servicio de
interrupcin

ISR

Tabla de vectores de interrupcin

del vector de interrupcin

Linux
Los controladores de dispositivo
Linux fuente de interrupcin de
mscara

No mascarable fuente :
El sondeo

231 i

Purls Inierrupl de dispositivos o en el sistema.


Un temporizador en el sistema como el hardware y que geles entradas del
Reloj interno wilh el procesador. Un controlador de dispositivo programa los
programas como
Cualquier otro dispositivo fsico.
En caso de interrupcin de la CPU podr iniciar una nueva accin de vectorizacin
a un vector
Direccin y llamar a un iSR o, de lo contrario, contina con el proceso actual
(tarea)
Si la interrupcin es desactivado o enmascarados.
Permite (desenmascara) las interrupciones desde una fuente(s).
Un registro de bits para una variable de tipo Boolean que establece para reflejar la
necesidad de ejecutar
Un ISR. Se restablece cuando se inicia la ejecucin de ISR correspondiente.
Un perodo de espera de servicio despus de una demanda de servicio es elevado
(Estado de origen
Hag conjuntos).
Cuando este bit est reset (= FALSE) en la solicitud de iniciacin del servicio de
interrupcin
Respondieron, de lo contrario, no se ha respondido.
Un registro para mostrar las fuentes de interrupcin o grupos de origen desde
varios dispositivos
Que estn pendientes para servicio ejecutando el ISR correspondiente. Es un 'read
Y registro de escritura. Un poco de auto restablece en ella cuando la interrupcin
correspondiente
Se inicia el servicio. Instrucciones para el usuario tambin puede restablecer un bit
en el registro.
Un mecanismo para interrumpir servicios basados en los dispositivos y puertos.
Guarda
El procesador, el tiempo de espera, ya que permite que el procesador para procesar
mltiples
Dispositivos y dispositivos virtuales. El mecanismo tambin establece las
prioridades y proporciona
Para habilitar y deshabilitar los servicios.
Un programa que se ejecuta en interrumpir alter guardar los parmetros necesarios
Llamado contexto en la pila, de manera que la misma puede ser recuperada en
devolucin de
La ltima instruccin de rutina. Un ISR tambin es un controlador de dispositivo
ISR cuando un alto
Nivel de idioma se ejecuta la funcin de controlador de dispositivo SWI y servicios
un dcviccInterrupcin. Un ISR tambin es una trampa cuando un error de software o
servicios de otros
Relacionado a condiciones interrumpe wilh error detectado por el hardware del
procesador. Un
ISR tambin se llama controlador de excepciones de excepcin, que
se lanza cuando il
Servicios de software de deteccin de condicin en tiempo de ejecucin y la
afeccin se detecta
En la rutina del software. Tambin se le denomina manejador de seal. Cuando
una funcin de la seal
Se llama en un programa. Cada seal o excepcin arrojando funcin ejecuta
Un SWI. que inicia un ISR.
Una direccin de memoria donde hay bytes para proporcionar el ISR
correspondiente
Direccin. El sistema tiene el vector especfico direcciones asignadas por el
hardware

I 2321

Los sistemas integrados

Bit de habilitacin de nivel


primario

Un poco, lo cual habilita o deshabilita cualquier interrupcin en el servicio por toda


la mscara
Fuentes. Ayuda en la ejecucin de cdigos de seccin crtica e impedir el servicio a
Cualquier otra fuente de mscara durante la desactivacin del servicio.
De nivel secundario Seal bit
Deshabilita el servicio desde una fuente individual o grupo de origen.
de mscara
Es la seal para iniciar la funcin de interrupcin de software en una instruccin
para llamar a un
Iniciado por software de ISR. Una excepcin o la trampa tambin se puede llamar
Se asigna prioridad a los
una seal.
Software
La seal es llamado por SWI en el brazo y la instruccin INT n en 80x86.
(seal de hardware es diferente.) Una prioridad para una fuente o grupo de origen.
Es
Definido en un registro denominado registro de prioridad de interrupcin. Cuando
Marco de pila de interrupcin
varias interrupciones
Ocurren al mismo tiempo, asignar prioridades de software superan el hardware
de software Status register
Las prioridades.
Una interrupcin por una condicin de error o captura ilegal o una instruccin SWI
opcode
(o la instruccin INT n 80x86) en una rutina o ISR o software temporizador o seal.
Trampa
Un conjunto de registros o un bloque de memoria que almacena el contexto para un
programa o
Dispositivo virtual Woist-caso
ISR.
Un registro de slo lectura para un dispositivo para colocar una bandera sobre
derivados de una interrupcin. Un usuario
latencia
La instruccin tambin puede restablecer un poco en ella. Si un dispositivo tiene un
nmero de fuentes la
Registro de estado tiene un nmero de banderas y una fuente distinta para cada
fuente.
Cuando se lea en un procesador la instruccin, la bandera se restablece.
Una interrupcin en la deteccin por hardware computacional en tiempo de
ejecucin u otros
Evento. El procesador tambin puede indicar una excepcin en el ejemplo de una
trampa.
1. Cules son las desventajas y ventajas de la ajetreada y esperar a modo de transferencia de los dispositivos de E/S?
Trampa es la divisin por cero en 80x86.
2. Cules son las ventajas y desventajas de interrumpir la transferencia de datos basada en?
Un dispositivo que emula el dispositivo fsico y unidades de dispositivo virtual
.I. Cules son las ventajas de DMA o perifricos
transcalion-servei
basa la en
transferencia
datos a travs
de la son
interrupcin
Controladores
proporcionados
un sistemadeoperativo.
Ejemplos
la toma de
impulsada por la transferencia de datos?
archivo, canalizacin, etc.
4. Cmo es el vector direccin utilizada para
fuente
interrupcin?
Launa
latencia
dede
interrupcin
mxima encontrada en el peor caso posible.
5. Direcciones de vectores de interrupcin estn prefijados en el mecanismo de interrupcin para el conocido perifricos
internos en un microcontrolador. Cmo son los vectores direcciones asignadas para las excepciones definidas por el
usuario y las interrupciones?
6. Mecanismo de interrupcin en cada procesador procesador difiere de una familia a otra. Explicar por qu los controladores
de dispositivos son programas sensibles al procesador.
7. Cmo inicializar y configurar un dispositivo? Tomemos un ejemplo de controlador de lnea serie al puerto COM del PC.
8. Cmo es el archivo en el acto de memoria manejada como un dispositivo?
9. Cules son las ventajas del disco RAM?
10. Hacer una lista de las funciones de directorio de red internos de Linux para los sockets, manipulacin de socket buffers,
firewalls, redes
Protocolos (por ejemplo, NFS, IP, IPv6 y ethemet) y puentes. Por qu son estos drivers de dispositivo asignado en un
directorio independiente de la funcin de gestin de red del sistema operativo Linux..
,fis
11. Definir el contexto, latencia de interrupciones y plazo de servicio de interrupcin.
12. Por qu el cambio de contexto en un procesador embebido ms rpido que guardar los punteros y variables de la pila
mediante un puntero de pila? Cmo funciona el cambio de contexto tiempo reducir en arquitecturas de procesador para
sistemas integrados?

Preguntas de repaso

Los controladores de dispositivo y interrumpe el mecanismo de servicio

13.
14.

Cmo es el cambio de contexto manejadas en ARM7?


DMA ayuda a reducir la carga del procesador proporcionando acceso directo lor lOs. Cmo ayuda en la ejecucin de
tareas ms rpido en un sistema multitarea nuilti por la menor interrupcin de las latencias de servicio '
15. Qu entiende usted por lanzar una excepcin? Cul es el estado de excepcin durante la ejecucin de una funcin
troulinc) gestionado?
16. Cmo funcionan las funciones de controlador de dispositivo y los ISRs difieren? Cmo se llama el ISR difieren en 80x86
y 8051?
17. flujo asignar prioridad al servicio de varios controladores de dispositivo de un sistema? Cmo se puede asignar
prioridades a los dispositivos de control del tiempo y ADC dispositivo?
18. Lo utiliza el arco de hardware-prioridades asignadas en un mecanismo de servicio de interrupcin?
19. Lo que los usos de software arc-prioridades asignadas en un mecanismo de servicio de interrupcin?
20. Cmo romper el punto de interrupcin es importante para la depuracin de software incrustado?
21. Qu entiende usted por funciones POSIX?

Ejercicios de prctica
22.
23.

cmo escribir controladores de dispositivo? Enumerar los pasos necesarios para escribir un controlador de dispositivo.
Buscar en la web y el diseo de una tabla para mostrar las caractersticas de los controladores de dispositivos de
embedded Linux OS. Explicar con ejemplos cada char Device, dispositivo de bloque Dispositivos de bloque y
configurable como dispositivo de char. UART es un dispositivo de caracteres.
Por qu es un dispositivo de caracteres?
24. Dar ejemplos de interrupcin relacionadas con el software. Qu son las interrupciones en 8086, que generan un error de
software?
25. Mostrar la mquina obsoleta Estados generados en una tecla marcada como nmero 4 en el dispositivo mvil. Cmo vas
a utilizar la instruccin SWI para generar un mensaje SMS a un telfono mvil con un teclado T9?

Conceptos de
programacin y
Programacin incrustada
en C,
C++ y Java
E

Recapitulemos los siguientes puntos cubiertos en la


Los captulos anteriores.
* Sistema hardware consiste de procesadores), memoria

U
n

(ROM.
Y RAM), el puerto de E/S, el calendario y los dispositivos
" Aprendizaje es necesario para las tareas informticas.
externos.
Se necesita programacin para los ISRs llamado en software
Las interrupciones de las trampas, excepciones, errores,
seales y
Las interrupciones de los dispositivos fsicos y virtuales.
9

OS Software es necesario para el uso de cualquier dispositivo


en un simple
O sofisticada aplicacin(s).

" determinadas instrucciones de software son necesarios segn


El procesador, la memoria y el hardware del dispositivo y
como
Por el mecanismo de mantenimiento de sistema de
interrupcin.
La programacin es la parte ms importante de cualquier
embedded
El diseo del sistema. Excepto para determinados procesadores
y memoriaInstrucciones confidenciales donde los cdigos de programas
puede ser.jwritVm

Para un aprendizaje en profundidad del lenguaje de programacin, un lector .debe


consultar la die libros de texto estndar y no requiere ejercicios de prctica. Tenemos
mil aprender fundamentos de programacin los empalmes (mtodos) y los conceptos de
la programacin orientada a objetos n idi ref erencia a la creacin de software para
sistemas embebidos. OS conceptos, vamos a aprender ms tarde.
Los siguientes son los temas que sern discutidos en este captulo:
1. La diagramacin del lenguaje ensamblador frente al lenguaje de alto nivel y
las potentes funciones de C para sistemas embebidos.
2. Elementos del programa: directivas de preprocesador y los archivos de
encabezado, incluya los archivos y los archivos de origen que se utilizan en un
programa para una aplicacin.
.1. Elementos del programa: Macros y funciones y sus usos en un programa C.
4. Elementos del programa: tipos de datos, punteros, estructuras de datos,
matrices, colas, pantalones, listas y rboles, modificadores, condicionales y
bucles.
5. Elementos del programa: llamadas de funcin, funciones mltiples, los
punteros a funcin. Cruce de colas y colas de rutina de servicio.
6. Conceptos de la programacin orientada a objetos, programacin incrustada
en C/C++. Java y J2ME.
Los modelos de programa para construir el software ser tratada en el Captulo 6.
Conceptos de los procesos, las tareas, las roscas y los conceptos de sincronizacin entre
procesos ser cubierto en el captulo 7 y ofRTOSes en el Captulo 8. Se describen
KTOSes popular banda hi captulos 10.

5.1

Programacin de software en general LANGUAGE (ALP) y en lenguaje de alto nivel 'C'

5.1.1 La programacin en lenguaje ensamblador.


Codificacin de lenguaje ensamblador de una aplicacin tiene las siguientes ventajas.
1. El conjunto de cdigos son sensibles para el procesador, la memoria, los puertos
y los dispositivos de hardware. Proporciona un control preciso de los
dispositivos internos del procesador y un uso completo de las caractersticas
especficas del procesador en su conjunto de instrucciones y sus modos de
direccionamiento.
2. Los cdigos de mquina son compactos, procesador y memoria-sensibles. Esto
es porque los cdigos para declarar las condiciones, reglas y el tipo de datos no
existen. El sistema necesita una memoria ms pequea. El exceso de memoria
necesaria no depende del programador y la regla de seleccin del tipo de datos
de las declaraciones. El programa es tambin no especficos del compilador y las
funciones de la biblioteca de la dependiente.
3. Cdigos de controladores de dispositivo puede necesitar solamente
unas instrucciones de montaje. Por ejemplo, considere un pequeo sistema
incorporado un dispositivo temporizador en un horno de microondas o un

236

Los sistemas integrados

Lavadora automtica o una mquina expendedora automtica de chocolate. General cdigos de estas puede
ser compacto y preciso, y estn bien escritos.
4. Utilizamos bottom-up- enfoque del diseo. Es un enfoque en el que la programacin se realiza por primera
vez por la sub- mdulos especficos y diferentes conjuntos de acciones. Un ejemplo de los mdulos para
conjuntos especficos de acciones es un programa de software de un temporizador, RTCSWT: ejecutar
(reloj de tiempo real software ejecuta la funcin de temporizador). Programas de retraso, contando,
encontrando a intervalos de tiempo y muchas aplicaciones pueden ser escritas. A continuacin, el programa
final est diseado. El enfoque de esta forma de disear un programa es el primer cdigo los mdulos
funcionales bsicas y luego usarlos para construir un mdulo ms grande.

5.1.2 Programacin en lenguaje de alto nivel


Lenguaje de alto nivel, la codificacin de los archivos de cdigo fuente en C o C++ o Java tiene grandes ventajas
y, por consiguiente, la mayora de programacin en lenguaje de alto nivel. Basie ventajas son como sigue:
1. Desarrollo de programas de alto nivel ciclo corto incluso para sistemas complejos debido a lo siguiente:
uso de rutinas (denominadas funciones en C/C++ y mtodos en Java), las funciones de la biblioteca
estndar, el uso del enfoque de programacin modular, diseo top-down o enfoque de diseo orientado a
objetos. Los programas de aplicacin estn estructurados para asegurarse de que el software se basa en
slidos principios de ingeniera de software y programados con el sistema operativo dada. lile sistemas,
dispositivos y controladores de red.
(a) Una funcin define un mtodo de operacin, y los conjuntos de instrucciones y comandos que se
ejecutan cuando se llama a la funcin.
(b) Las funciones de biblioteca son funciones estndar, que estn disponibles para el programador y los
cdigos para ellos no estn definidos por el programador. Por ejemplo, el mtodo de operacin de raz
cuadrada. El uso de la funcin de la biblioteca estndar, raz cuadrada ( ), evita que el programador
tenga tiempo de codificacin. Nuevos conjuntos de funciones de biblioteca existentes en un sistema
incorporado-COR especfico del compilador de C++. Las funciones de la biblioteca ejemplares son
retardo ( ). Espere ( ) y el sueo ().
(c) Dispositivos idnticos como dispositivo de lnea serie (U ART) se utilizan en un gran nmero de
sistemas integrados. Programacin directamente estas funciones en cada sistema significar
la codificacin repetitivos y redundantes para cada dispositivo. Es mejor utilizar los controladores de
dispositivo en lenguaje de alto nivel, que utilizan las funciones especificadas en el SO. El programador
simplemente especifica el ID de dispositivo y algunas de las funciones de los argumentos pasados a la
funcin de controlador de dispositivo cuando sea necesario y utilizarlo en otra instancia de la
utilizacin del dispositivo.
(d) El enfoque de la programacin modular es un enfoque en el que los bloques de construccin son
componentes de software reutilizables. Un mdulo est integrado por componentes de software. Los
componentes estn integrados por un conjunto de funciones. Considere una analoga con un 1C
(circuito integrado). Slo como un CI tiene varios circuitos integrados en uno, igualmente, un bloque
de construccin del mdulo pueden llamar a varias funciones y funciones de biblioteca. Un mdulo es
entonces weli probado para una meta bien definida y bien definido para la entrada de datos y salidas.
Deben tener slo o.ne llamar al mtodo. Debe haber un punto de retorno. No debera afectar cualquier
otro dato que el que opera: esto significa que debe existir la encapsulacin de datos. Debe devolver
(informe) condiciones de error encontradas durante su ejecucin.
(e) Diseo top-down es otro mtodo de programacin en el que el programa principal est diseado por
primera vez y, a continuacin, sus mdulos, submdulos y, finalmente, las funciones.
2. Programa de alto nivel facilita las declaraciones de tipo de datos'. El tipo de datos las declaraciones
proporcionan facilidad de programacin. Por ejemplo, existen cuatro tipos de enteros, int unsigned int,
short y long. Al tratar slo los valores positivos, declaramos una variable como unsigned int. Por ejemplo,
numTicks (nmero de pulsos de reloj) tiene que estar sin firmar. Necesitamos un entero con signo, int (32
bits) en clculos aritmticos. Un entero tambin pueden ser declaradas como tipo de datos cortos (16 bits)
o largo (64 bits). Para manipular el texto y cadenas para un personaje, otro tipo de datos char. Cada tipo de
datos es una abstraccin para los mtodos, que son por

Conceptos de programacin y Programacin incrustada en C, C++ y Java

237

3. Programa de alto nivel facilita la comprobacin de tipo " hacer que el programa sea menos propenso a
errores. Por ejemplo, escriba control no permite la resta, multiplicacin y divisin de los tipos de datos
char. Permitir 'plus' el operador de concatenacin para ser utilizado cuando se utilizan tipos de datos
char y permite que el operador 'plus', TI puede utilizarse para aritmtica adicin al usar int unsigned int,
short y long tipo de datos. (operacin Concatenatioi puede entenderse como sigue: el micro controlador
plus concatena en el microcontrollei donde micro es una matriz de los valores char y el controlador es
otra matriz de los valores char).
4. Programa de alto nivel facilita el uso de estructuras de control (p. ej., mientras, do-while,
romper y para) y condilitma instrucciones (por ejemplo, si if-else-if, else y switch-case) para especificar
el flujo del programa por simples declaraciones.
5. Programa de alto nivel tiene la portabilidad de la no-procesador-cdigos especficos. Por lo tanto,
cuando el hardwart cambios, solamente los mdulos para el ISR de controladores de dispositivos y la
administracin de dispositivos, la inicializacin del programa ant-locator mdulos y arranque inicial
registrar datos necesitan modificaciones.
Ventajas adicionales de C como lenguajes de alto nivel son como sigue. Es un idioma entre baja
Utssemh/ao; y lenguajes de alto nivel. Insertar el conjunto de cdigos de idioma entre es llamado el montaje en
lnea. Un control directo de hardware, por lo tanto, tambin es posible el montaje en lnea, y el complejo forma
parte del programa pueden ser en lenguaje de alto nivel.
Programacin en lenguaje de alto nivel hace que el ciclo de desarrollo del programa corto, permite utilizar el
enfoque de programacin modular y nos permite seguir principios de ingeniera de software de sonido. Facilita
el desarrollo de programas con enfoques de diseo descendente. Los programadores de sistemas integrados
tienen desde hace tiempo C preferido por las siguientes razones: (i) La funcin de conjunto de incrustacin de
cdigos usando el montaje en lnea, (ii) los mdulos disponibles en los compiladores de C para el sistema
integrado de biblioteca y cdigos que pueden directamente en el sistema de puerto-programador de cdigos.

5.2

C Los elementos de programa: cabecera y archivos de


origen y las directivas de preprocesador

Un programa C dispone de los siguientes elementos estructurales.


1. Declaraciones de preprocesador, definiciones y declaraciones.
2. Funcin principal.
3. Funciones, excepciones y ISR.
Un programa C tiene los siguientes elementos estructurales del preprocesador.
1. Directiva Include tor el archivo de inclusin.
2. Las definiciones del preprocesador para variables globales (Global significa todo el mdulo del
programa).
3. Las definiciones de constantes.
4. Las declaraciones de tipo de datos globales, tipo de declaracin y estructuras de datos, macros y
funciones.
El programa C, elementos de encabezado y archivos de origen y las directivas de preprocesador se explican
en las siguientes subsecciones.

5.2.1 Directiva Include la inclusin de archivos


Cualquier programa C primera incluye la cabecera y los archivos de cdigo fuente que estn fcilmente
disponibles. Un estudio de caso del envo de un sii'eam &' bytes a travs de una tarjeta de controlador de red
utilizando un protocolo TCP/IP est dada en el Ejemplo 11.3. Su programa C comienza con los cdigos indicados en el Ejemplo
5.1. El propsito de cada archivo incluido es mencionado en los comentarios dentro del I* y *1 smbolos como por la prctica en
C.

: 238

Los sistemas integrados

Ejemplo 5.1.
#
Incluir "VxWorks.h" /* Se incluyen funciones de VxWorks*/
Si incluyen "semLib.h" I* incluyen funciones semforo Library */
Ft incluyen "taskLib.h" /* Se incluyen las funciones multitarea Biblioteca *1
#
Incluir "msgQLib.h" /* se incluyen la Biblioteca de funciones de la cola de mensajes */
#
Incluir "fioLib.h" /* Se incluyen funciones Input-Output File-Device Library */
#
Incluir "sysLib.c" /* incluyen biblioteca del sistema para las funciones del sistema */
Si incluyen "netDrvConfig. txt" /* incluyen un archivo de texto que proporciona el controlador de red
'Configuracin'. Se proporciona el formato de trama (protocolo SLIP o PPP o Ethernet) Descripcin,
tarjeta J descripcin/hacer, la direccin en el sistema. (s) la direccin IP del nodo (s) que impulsan la
tarjeta por Jj transmitiendo o recibiendo desde la red. */
Ml
#
Incluir " pre tlHandlers" .c I* incluye un archivo para los cdigos de manipulacin y acciones como f!
Por los protocolos de capa de red utiliza para conducir corrientes para la red. *1
Wm
Incluir es una directiva de preprocesador para incluir el contenido (cdigos o datos) de un archivo. Los
archivos que se pueden incluir. Inclusin de todos los archivos y ficheros de cabecera especfica tiene que ser
segn los requisitos.
1. Incluye archivos de cdigo: Estos son los archivos para los cdigos ya disponible. Por ejemplo. #
incluir 'prcdHandlerx.c'.
2. Incluye archivos de datos constante: Estos son los archivos para los cdigos y puede tener la extensin
'.const'.
3. Incluidas las cadenas datafiles: Estos son los archivos para las cadenas y pueden tener la extensin
'.strings' o '.str.' o '.txt. Por ejemplo, # incluir 'nelDrvConfig.txV .
4. Incluidos los archivos de datos iniciales: Hay archivos para las iniciales o datos predeterminados para la
sombra de la ROM del sistema integrado. El programa de arranque ms tarde copiado en la memoria RAM,
y pueden tener la extensin '.init'. Por el otro lado. Los datos RAM archivos tienen la extensin '.data".
5. Incluida la variable bsica de archivos: Estos son los archivos para las variables estticas locales o
globales que estn almacenados en la memoria RAM porque no poseen los valores inicial
(predeterminado). La esttica significa que existe una poltica de no ms de una instancia de la variable
Direccin y tiene una asignacin de memoria esttica. Por ejemplo, el sistema tiene slo es un reloj de
tiempo real y, por lo tanto, slo hay una instancia de direcciones de las variables del reloj. Las variables
bsicas del reloj se almacenan en el archivo con la extensin '.bss\
6. Incluye archivos de encabezado: es una directiva de preprocesador, que incluye el contenido (cdigos o
datos) de un conjunto de archivos de origen. Estos son los archivos de un mdulo especfico. Un archivo
de encabezado tiene la extensin \h'. A continuacin se presentan algunos ejemplos. Las funciones de
manipulacin de cadenas son necesarias en un programa mediante cadenas. Estas estarn disponibles una
vez que un archivo de encabezado denominado string.h' est incluido. Las funciones matemticas. Raz
cuadrada. pecado. cos. bronceado. atan y as sucesivamente son necesarios en los programas utilizando
expresiones matemticas. Estos estn disponibles mediante la inclusin de un archivo de encabezado,
denominado math.h" las directivas de preprocesador ser '# incluyen <string.li>' y '# include
<math.h>' para incluir funciones de biblioteca estndar para las cuerdas y operaciones matemticas en el
programa.
Tambin se incluyen los archivos de encabezado para los cdigos en general, y para las operaciones de E/S
(conio.h), para la DS funciones RTOS y funciones. '# incluyen VxWorks.h' es la directiva del compilador, que
incluye funciones de VxWorks RTOS.
Votacin: algunos compiladores proporcionan conio.h en lugar de stdio.li. Esto es cuando los sistemas integrados
no necesita el archivo funciones para abrir, cerrar, las operaciones de lectura y escritura en el teclado y el
monitor de vdeo. As que cuando incluyendo stdio.h, que har que el cdigo sea demasiado grande.
Cul es la diferencia entre la inclusin de un archivo de encabezado, y archivo de texto o archivo de datos o
archivo constante? Considerar que la inclusin de netDivConfig.txt.txt y math.h. i) Los archivos de encabezado
estn bien probado y depurado los mdulos.

R
Conceptos de programacin y Programacin incrustada en C. C++ y Java

239

(ii! Los archivos de encabezado proporcionan acceso a bibliotecas estndar, (iiil el archivo de encabezado puede
incluir varios archivos de texto o C azulejos, (iv) un archivo de texto es una descripcin del texto que contienen
informacin especfica.

5.2.2 Los archivos fuente


Los archivos fuente son archivos de programa para las funciones de software de aplicacin. Los archivos de
cdigo fuente necesita ser compilado. Un archivo de cdigo fuente tambin poseen las directivas de preprocesador
de la aplicacin y que la primera funcin delantera donde el procesamiento comenzar. Esta funcin se
llama funcin principal. Sus cdigos comienzan con void main ( ). La principal llama a otras funciones. Un
archivo de cdigo fuente contiene los cdigos.

5.2.3 Archivos de configuracin


Los archivos de configuracin son los archivos de configuracin del sistema. Los cdigos de configuracin del
dispositivo se puede poner en un archivo de variables bsicas e incluidos cuando sea necesario. Si estos cdigos
estn en el archivo "serialLine_cfg.h" y, a continuacin, # Incluir 'serialLine_cfg.ii' ser la directiva de
preprocesador. Veamos otro ejemplo, "si se incluyen "os_cfg.lt' : esto incluir os_cfg Archivo de encabezado.

5.2.4 Las directivas de preprocesador


Constantes de preprocesador, variables y la inclusin de archivos de configuracin, archivos de texto, archivos
de cabecera y bibliotecas de funciones se utilizan en programas C incrustado. Una directiva de preprocesador
comienza con un fuerte signo (hash). Estos comandos son para las siguientes directivas para el compilador para
su procesamiento.
1. Preprocessor variables globales: por ejemplo, en un programa de la IntrDisable. InlrPortAEnable.
InlrPortADisable. STAF y STAI pueden ser variables globales para deshabilitar las interrupciones, lo que
permite deshabilitar el puerto A. A. Estado de puerto bandera, indicador de estado para interrumpir,
respectivamente. Ahora '# definir voltiles IntrEnable boolean' es un preprocessordirective. Esto significa
que es una directiva antes de procesar a considerar lmrEnable una variable global de tipo de datos booleano
y voltil. (Volatile es una directiva para el compilador no lago esta variable en cuenta mientras que la
compactacin y la optimizacin de los cdigos).
2. Constantes de preprocesador: '# definir falsos o" es una directiva de preprocesador en un ejemplo. Esto
significa que es una directiva antes de procesar a asumir 'false' como 0. La directiva 'definir' es para
asignar valores de puntero en el programa. Considerar # Definir portA (volatile unsigned char *) Ox I(XX)
y # Definir PIOC (volatile unsigned char *) 0x1001. 0x1000 y 0x1000 son las direcciones fijadas para el
puerto a puerto (un registro) y PIOC (puerto de entrada-salida de control de registro) son las constantes
definidas para el 68HCII registrar direcciones.
Las cadenas pueden ser definidos. Las cadenas son constantes, por ejemplo, los utilizados para una
visualizacin en la pantalla inicial en un sistema mvil. Por ejemplo. # Definir Bienvenido Bienvenido a ABC
"Telecom".

5.3 Elementos de programa: Macros y funciones

La tabla 5.1 enumera estos cementos y da sus usos.


Macros de preprocesador: Una macro es un conjunto de cdigos que se define en un programa en C por un
nombre. Difiere de una funcin en el sentido de que, una vez que la macro est definida por un nombre, el
compilador coloca los cdigos correspondientes en cada lugar donde aparece el nombre de macro. Consideremos,
por ejemplo, los macros, 'enable_Ocultable_lntr ()' y 'Deshabilitar_Ocultable_.Intr" (). (El par de corchetes en el
macro es opcional. Si

240

Los sistemas integrados

Est presente, se mejora la legibilidad como se distingue un macro desde una constante.) Siempre que el
nombre_enable_Ocultable Intr aparece, el compilador sita los cdigos diseados para ello.
Tabla 5.1 Usos de los diversos conjuntos de instrucciones como los elementos de programa
J Prog
elemento
lluvia

Usa

\
[ Macro

Ejecuta una llamada pequea coleccin de cdigos.

Ejecuta un llamado conjunto de cdigos con valores


> Funcin
pasados por el programa de llamadas a travs de sus
argumentos. Tambin devuelve un objeto de datos
Yo
T
cuando no est declarada como void. Tiene el
contexto-guardar y recuperar los gastos generales.
Las declaraciones de funciones y tipos de datos, y de
J J Funcin typedef: (i) ejecuta un llamado conjunto de cdigos,
principal
un conjunto de funciones de llamadas y llamadas en
las interrupciones del ISR o (ii) se inicia Kernel del
Yo
sistema operativo.
Consulte las secciones 5.4.6.

Contexto guarda en la pila


antes de su inicio y las
recupera en volver

Viabilidad de
anidar uno dentro
de otro

No hay

Ninguno

No hay

Reentrada
Funcin

Las declaraciones de funciones y tipos de datos, y

Tarea o
proceso o
thread.
RecursiveFuncin

plazos. Debe ser un re-entrant rutina. No puede


esperar para mensajes entre procesos (semforo o
buzones o mensajes de la cola), pero pueden enviar
los mensajes entre procesos para la TAS o tareas.
Consulte las secciones 7.1-7.3. Debe ser una rutina
reentrante o debe tener una solucin para el problema
de los datos compartidos.
Una funcin que se llama a s misma. Debe ser una
funcin reentrante tambin. La mayora de las veces
se evita su uso en sistemas integrados debido a
restricciones de memoria. (Pila crece despus de cada
llamada recursiva y puede ahogar la disponibilidad
de espacio de memoria).

S a otra funcin
reentrante
solamente

Para ISR de
mayor prioridad
fuentes
desenmascarado

Ninguno

La rutina de ejecuta un typedef llamado conjunto de cdigos.


interrupcin Debe ser corto para que otras fuentes de
de servicio ' \ interrupciones, tambin son atendidas dentro de los
asR) i
Yo

S, puede llamar a
otra funcin, y
tambin puede
ser interrumpida
Ninguno

Macros, llamado test macros o vectores de prueba estn tambin diseados durante la programacin y se
utilizan para la depuracin.
Cmo funciona una macro difieren de una funcin?
1. Los cdigos de funcin se compilan una nica vez. En llamar a esa funcin, el sistema tiene que guardar
el contexto y volver restaurar el contexto. Adems, una funcin puede devolver nada (en el caso de
declaracin void) o devolver un valor booleano, o un entero o cualquier tipo primitivo o de referencia de
los datos. (primitivo significa similar a un entero o carcter. Tipo de referencia medio similar a una matriz
o estructura.) Por ejemplo, el enable_PoitA_Intr () y DISABLE_PortA_Intr () son las llamadas de funcin.
(Los corchetes no son opcionales).

Conceptos de programacin y Programacin incrustada en C, C++ y Java

241

2. Los cdigos de macro son compilados en cada funcin dondequiera que se utiliza el nombre de macro,
como el compilador, antes de la compilacin, pone los cdigos en los lugares donde se utiliza la macro.
Sobre el uso de la macro, el procesador no tiene que guardar el contexto, y no tener que restaurar el
contexto, ya que no hay regreso.
3. Las macros se utilizan para los cdigos cortos solamente. Esto es porque, si una llamada a la funcin se
utiliza en lugar de una macro, el contexto de gastos generales (Guardar y nuevo contexto recuperar, y
otras acciones en funcin de llamada y retorno) tomar un tiempo, Tim.rhc.lds que es del mismo orden
de magnitud que el tiempo. Tcscc para ejecucin de cdigos cortos dentro de una funcin. Usamos una
funcin de cdigos cuando el T(,vcrth.alJv " TCMC Y UNA MACRO PARA CDIGOS CUANDO
TOV(.RH(.ILLL5 _ o
^ Tr.'icc*

Macros y funciones se usan en programas en C. Las funciones se utilizan cuando el requisito es que los
cdigos deben compilarse una vez solamente. Sin embargo, llamar a una funcin, el procesador tiene que guardar
el contexto, y a la vuelta, restaurar el contexto. Una funcin tambin puede devolver nada (en el caso de declaracin
void) o devolver un valor booleano, o un entero o cualquier tipo primitivo o de referencia de los datos. Las macros
se utilizan cuando hay cdigos cortas funcionales para ser insertado en un nmero de lugares o funciones.

5.4

Elementos del programa: Tipos de datos, estructuras de


datos, modificadores, declaraciones, bucles y punteros

5.4.1 El uso de tipos de datos


Cuando un dato es nombrado, tendr la direccin(es) asignado a la memoria. El nmero de direcciones asignadas
depende del tipo de datos. Por ejemplo, un tipo de datos long es para numTieks declaied (nmero de garrapatas). Luego
numTieks tendr cuatro direcciones de memoria.

C permite los siguientes tipos de datos primitivos. El char (8 bits) para los caracteres, el byte (8 bits), unsigned short
(16 bits), corto (16 bits), unsigned int (32 bits), ini (32 bits), long double (64 bits). El Hoot (32 bits) y dobles (64 bits). (Algunos
compiladores no tome el 'byte' como una definicin de tipo de datos. El 'char' se usa en lugar de 'byte'. La mayora de los
compiladores de C No tome una variable booleana como tipo de datos. El typedef se usa para crear una variable de tipo Boolean
en el programa C).
Un tipo de datos apropiado para el hardware utilizado. Por ejemplo, un temporizador de 16 bits slo puede
tener el tipo de datos unsigned short, y su alcance puede ser de 0 a 65535.
El typedef tambin se usa. Es claro por el siguiente ejemplo. Una versin del compilador no puede procesar
la declaracin como un byte sin signo. El carcter "sin firmar" puede utilizarse como un tipo de datos. A
continuacin puede ser declarada como sigue.

Typedef unsigned carcter #define


portAdata Pbyte portAdata OxFl

5.4.2 El uso de punteros y punteros Null


Los punteros son herramientas potentes cuando se utilizan correctamente y de acuerdo con ciertos principios
bsicos. Puntero es una referencia a una direccin de memoria inicial. Un puntero puede hacer referencia a una
variable o funcin, estructura de datos. Antes de que un puntero, en lenguaje C el smbolo. * se utiliza. Por
ejemplo, unsigned char *0XL000*mea;fta carcter de 8 bits en la direccin 0x1000.
Un puntero NULL declara lo siguiente:

"ftdefme nulo (void*) 0x0000" (podemos asignar cualquier direccin en vez de

0x0000 que no est en uso en un determinado hardware).

Se utiliza como ejemplar siguiente.

I 242:

Los sistemas integrados

Por ejemplo, 5.2


1. Considerar unsigned short *timerl\ Puntero timerI apuntar a dos bytes, y el compilador se reservan dos
direcciones de memoria para el contenido del temporizador I.
Considere dos declaraciones, 'unsigned short *timerl'; 'timerl ridas++:\ La segunda instruccin
agrega 0x0002 en la direccin de timerl. Por qu?
En C. si x es una variable, entonces x ++ significa incrementar el valor de x por I. Si p es un puntero
y, a continuacin, p ++ significa incrementar el valor de p a la siguiente direccin.
Temporizador I ++ significa que apunte a la siguiente direccin y unsigned short declaracin al
situado a dos direcciones para timerl. (timerl ++; o=1 O + temporizador temporizador temporizador
=+1; tendr acciones idnticas.) Por tanto, la siguiente direccin es 0x0002 ms de la direccin de timerl
que fue definido originalmente. La declaracin haba sido "unsigned int *timerl;' y 'timerl++;" (en el
caso del temporizador de 32 bits), la segunda declaracin habra incrementado el discurso de 0x0004.
2. Deje que un byte cada ser almacenado en una direccin de memoria. Deje que un puerto en un sistema
con un registro de bfer que almacena un byte. Ahora un programa mediante un puntero declara el byte
en el puerto, como sigue: "Un byte sin signo *portA' /La * significa "el contenido". Esta declaracin
significa que hay un puntero y un byte sin signo para el puerto A. El compilador se reserva una direccin
de memoria para ese byte.
3. Considerar las declaraciones como sigue: void *portAdata; el vaco es el tipo de datos undefined
portAdata. El compilador asignar direcciones para el *portAdata sin ningn tipo control.
4. Un puntero puede ser asignado a una direccin fija constante. Dos directivas de preprocesador: '# definir
portA (unsigned byte voltiles *) 0x1000' y '# definir PIOC (volatile unsigned byte *) 0x1001".
Alternativamente, las direcciones en una funcin puede asignarse como sigue: "voltiles unsigned byte
* portA = (byte sin signo *) 0x1000' y 'voltil bytes sin signo *P10C = (byte sin signo *) 0x1001". Una
instruccin, 'portA ++;' har que el portA puntero apunte a la siguiente direccin y que es PIOC.
5. Considerar, unsigned byte byte portAdata; unsigned * portA = &portAdata. La primera instruccin indica
al compilador que asignar una direccin de memoria para portAdata porque hay un byte cada uno en una
direccin. El signo & (ampersand) significa "a la direccin". Esta declaracin significa el nmero positivo
de 8 bits (un byte) sealado por portA es sustituido por el byte de la direccin de portAdata. El lado
derecho de la expresin contenida en el byte de la direccin, y el lado izquierdo pone J ese byte a la
direccin de apuntado. Como la variable del lado derecho de portAdata no es un puntero declarado, si el
signo se mantiene a punto a su direccin de forma que el lado derecho puntero obtiene el
contenido Ml (bits) desde esa direccin. (Nota: El signo de igualdad en una instruccin del programa
significa 'es reemplazado Mg

5.4.3 El uso de estructuras de datos: colas, pilas, listas y rboles


Una estructura de datos es una manera de organizar varios elementos de datos del mismo tipo o de diferentes
tipos junto a direcciones de memoria consecutivas. Un elemento de datos en una estructura de datos pueden
entonces ser identificadas y accesibles con la ayuda de unos pocos punteros y/o ndices y/o funciones. Las marcas
(o categoras) de un estudiante en las diferentes materias de estudio de un semestre se colocan en una tabla
adecuada. La tabla en la hoja de calificaciones les muestra en una forma organizada. De forma similar, cuando
hay una gran cantidad de datos, debe ser organizada adecuadamente.
Una estructura de datos es un elemento importante de cualquier programa. Algunas estructuras de datos
importantes incluyen: la pila, una tabla (matriz bidimensional), tabla de bsqueda, la tabla
hash y lista. siguiente describe las diferentes estructuras de datos y cmo se ponen en los bloques de memoria de
una manera organizada. Cualquier elemento de la estructura de datos pueden ser recuperados usando los punteros.

Conceptos de programacin y Programacin incrustada en C, C++ y Java

Una estructura de datos pila, llamado la demora es un elemento del programa especial. Una pila significa un
bloque de memoria asignado los datos de un elemento de datos que se leen en un LIFO (ltimo en entrar primero
en salir) y una eleinent debe sobresalir o empujado desde una direccin apuntada por un puntero, llamado
puntero de pila (SP) o SIO|,y SP cambia en cada push o pop que apunta a la lop de pila.
Demora de diversas estructuras pueden crearse durante el procesamiento. Para el tratamiento de cada floja,
un puntero que apunte a la pila superior es necesario. La figura 5.1 muestra las diferentes estructuras de pila que
se crean durante la ejecucin del software incorporado.
1. Se puede realizar una llamada a otro durante el funcionamiento rutinario de una rutina. Con el fin de que
al finalizar la llamada rutina, el procesador devuelve slo al llamar, la direccin de la instruccin de
devolucin debe ser empujado en la pila. Empujando significa ahorrar en la pila superior e incrementar
la pila para apuntar a la siguiente top. Chasquidos significa recuperar la direccin guardada desde la pila
superior y reducir la pila para apuntar a la parte superior anterior. All tambin se pueden anidar llamadas
y retornos. Anidar significa una rutina llama .madre, que llama a otro y volver desde la rutina llama
siempre al llamar a la rutina. Por lo tanto, en la memoria de un bloque de direccin de la memoria
asignada a la pila que guarda las direcciones de retorno empuja las llamadas anidadas. Se muestra en la
Figura 5.1(a). Dos bytes de direccin son adquiridos en el PC de la pila en la devolucin de una llamada
a una rutina (funcin). Asumir 10 llamadas anidadas estn presentes en el sistema u otras funciones.
Asumir que la direccin de la PC es de 4 B. requiere la asignacin de memoria para una estructura de
pila para empujar la instruccin de retorno de direcciones es 40 B.
2. Puede haber al principio de una entrada de datos, por ejemplo, nmeros de llamadas recibidas en un
telfono, que se guarda en una pila en RAM para ser recuperada posteriormente en el modo LIFO. Se
muestra en la Figura 5.1 (b). Considere, por ejemplo, en cada empuje los siguientes son guardados en
una pila, (i) Cuatro punteros (direcciones de 4 bytes cada uno); (ii) cuatro nmeros enteros (4 bytes cada
uno) y (iii) cuatro nmeros de punto flotante (cada uno de 4 bytes). Requiere la asignacin de memoria
para una estructura de pila para empujar los parmetros de funcin = 4x4 + 4x4 + 4x4 = 48B.
3. Una aplicacin puede crear tambin las estructuras de pila en tiempo de ejecucin. Puede haber varias pilas
de datos al
Los diferentes bloques de memoria, cada uno con una direccin del puntero independiente. Puede
haber varios paquetes se muestra como pila I
En la Figura 5.1 N de pila (CL.
4. Cada tarea o hilo en un multitarea nr de diseo de software multi-threading (Secciones 7.1-7.3) debe
tener su propia pila donde su concurso (Seccin 4.6) se guarda. El contexto es guardado en el procesador
cambia a otra tarea o hilo. El contexto incluye la direccin de retorno de la PC para recuperacin en
regresar a la tarea. Puede haber varios paquetes se muestra como contextos guardados de las roscas como
las pilas se muestra en la Figura 5.1(d) a la memoria de los diferentes contextos de tareas en los diferentes
bloques de memoria, cada uno con una direccin pointei separadas. Las roscas de los programas de
aplicacin y supervisin
(OS) Los programas tienen pilas independientes en bloques de memoria independiente.
Cada procesador tiene al menos un registro del puntero de la pila para que la instruccin puede aflojar seal
y la vocacin de las rutinas pueden facilit.
Algunas de las caractersticas avanzadas de los procesadores tienen varios punteros de pila. Hay cuatro punteros
como sigue:
1. RIP (puntero de instruccin de retorno): RIP es para guardar la direccin de retorno de la PC cuando la
rutina llama a otra rutina o ISR. RIP se denomina enlace registrar (LR) en procesador ARM.
2. Puntero de pila (SP): SP es puntero a un bloque de memoria dedicada a guardar el contexto en el contexto
cambie a otra ISR o rutina. Hay un puntero de pila en 8051, 68HCII y 80196.
3. Trama de datos FP (puntero): FP es puntero a un bloque de memoria dedicada a guardar los datos locales y
Los valores de las variables del programa que se est ejecutando actualmente (rutina). .
4. La PFP (puntero de marco del programa anterior): La PFP es puntero a un bloque de memoria dedicada a
guarda los datos del programa marco.
Motorola MC680I0 procesador proporciona USP (puntero de pila de usuario) y SSP (puntero de pila de

244!

Los sistemas integrados

Hay switch desde el modo de usuario al modo de vigilancia despus de cada tick del reloj del sistema (Seccin
<S. 1.2 dar los detalles). MC68040 proporciona para USP, SSP, MSP (marcos de pila de memoria punteros). ISP
y
Puntero de pila (instruccin).
2 Byte
Direccin
que
adquiere de PC

Pila
La celebracin de
direcciones de
retorno de
llamadas anidadas

(a)
Pila

Contienen datos
recuperables en
modo LIFO
(0)

1 pila contienen
datos
recuperables Set 1 Contenido

DJ
S.l

N datos de pila
Celebracin recuperable
- Establecer N Contenis

Un bloque de
memoria con
inicio y final
------------ < .Puntero
Pul). para paquete top
L

Contextos
guardados
de las
roscas como
las pilas

(d)
(c)
(a) una pila debido a llamadas de funcin anidada y empuje de contadores de programa (b) Pila

Parmetros de punteros y empujados a la pila antes de el cambio de contexto


(c) N pilas separadas cada una de ellas con un puntero (d) varios paquetes de contextos para los
subprocesos mltiples

Cuando un procesador tiene un solo SP. El sistema operativo asigna las direcciones de memoria que se utilizan
como los punteros de las mltiples instrucciones y pilas de datos.
Un procesador tiene al menos un SP. Cada proceso debe tener un superior separada de SP y un bloque aparte
en su memoria asignada para las llamadas de funciones anidadas. Una pila puede ser tambin una estructura de
datos especial en la memoria.
Tiene una direccin de puntero que siempre apunta a la parte superior de la pila. Un valor de la pila se recupera
de la memoria en modo LIFO, mientras una fila de datos o datos de una tabla o una base de datos de la cola es
visitada en un FIFO (First in First Out) modo. Como hay varios procesos en un sistema integrado, cada uno
con contexto aparte, hay varios paquetes.
Una estructura de datos, la matriz matriz es un importante elemento de programacin. Una matriz tiene varios
elementos de datos, cada una identificada por un ndice o por un conjunto de ndices y los ndices son enteros sin
signo. Una matriz n-dimensional es una estructura de datos especial en la memoria. Tiene una direccin de puntero
que siempre apunta al primer elemento de la matriz. Para el manejo de una matriz n-dimensional, un puntero que
seala al primer elemento y n ndices son necesarios.
Asumir una dimensin de matriz. Desde el primer elemento de puntero y un ndice de ese elemento, con una
direccin

J 245

Conceptos de programacin y Programacin incrustada en C, C++ y Java

Ejemplo 5.3
1. Considerthat unsigned
int [ ] tel_num significa una matriz de nmeros de
telfono, telfono, num [ 0 ] se refiere a que el primer nmero de telfono, el telfono.num [1J se
refiere a la segunda el nmero de telfono, y as sucesivamente. Phone_num s apunta al primer
elemento).
2. Considerar unsigned char [ ) nombre que significa una matriz de caracteres para el nombre [
0 ] se refiere al primer personaje, nombre (X ] se refiere a el segundo carcter, y as sucesivamente.
El nombre sin puntos de ndice para el primer elemento de la matriz.
3. Considere los resultados de un ensayo en una clase con 30 alumnos con nmeros de rollo 1-30. Deje que
yo sea un ndice que se utiliza en lugar de un nmero de rollo. Dejar marcas en la prueba del rodillo
nmero 1 en la variable entero escalares.
M[0). Digamos que M[0], M [ l ) . . . . M[28] Y M[29] ser las variables para las marcas del rodillo
nmero 1,2 ................................................................................................................................................
29, 30, respectivamente. Hay un puntero que seala al primer valor escalar M[0]. Un registro
denominado registro de ndice J puede apuntar a M[0). El registro de ndice podra ser entonces
aumenta de 0 a 29 Jjpor una instruccin dentro de un bucle para que apunte a las marcas de los
estudiantes de xito roll
i
BUFFER DE MEMORIA
Vector
(matriz La
unidimensional)
Los nmeros.
figura 5.2(a) muestra una matriz en el bloque de memoria, con los punteros de Mi
Base Yo
y el ndice que conjuntamente
a punto su elemento Marks [i],
JU
Yo
Yo
\Qhead
Otail

Puntero
Puntero de Lmite de bloque
Inicio puntero frontal
cola
Puntero
eliminado de la (ndice
de
(destino
(destino
cola
origen
Direccin de
Direccin de
Direccin)
ndice)
ndice)
Eliminacin
Para
insertar
Para Cola Circular,
(a) cuando intenta
(b)
de
en
la
volver
Cola
Cola
Para superar final, pasa a ser igual a
inicio
Start End

----- Marcas [i] en un bloque de


memoria ------------------------------------Punteros de direccin base [0] y
marcas
ndice i

I i
Inicio
Delante a la
De vuelta en la Tarea 1
puntero
Tarea 2.
Final
eliminado del
(tubo
Tubo (fuente) Puntero
tubo
receptor)
Puntero atrs
Puntero
Para insertar en la
frontal
El tubo
Para eliminar(d)
Del tubo
Fig. 5.2 (a) una matriz en un bloque de memoria con un puntero para su base, primer elemento con ndice = 0. Palabra
de datos pueden ser recuperados desde cualquier elemento definiendo el puntero y el ndice (b) Una cola
en un bloque de memoria entre *0.^ y *P|imitar con dos punteros *0 y *Qtaj^| para sealar a sus dos
elementos en la cola trasera y delantera. Una palabra de datos recupera en el modo FIFO de una cola (c)
Una cola circular en un bloque de memoria con dos punteros para sealar a sus dos elementos en la parte
delantera y trasera. Un puntero al alcanzar un lmite del bloque regresa al inicio del bloque (d) los bloques
de memoria en la fuente y sumidero para un tubo

246

Los sistemas integrados

Ejemplo 5.4
Tomemos otro ejemplo. Una expresin, yk = I(a;. xk.j) tiene un coeficiente;. Estos se almacenan como una
matriz. Entrada x| tambin almacena como otra matriz y salida como yk otra matriz. Aqu, i y k son los
nmeros enteros cada uno de ellos vara desde -N para N-l, donde N es por los lmites. Tres matrices y [ ), un [
] y [ | x se utilizan para calcular j 20 secuencias de salida filtrada por la expresin, VK = Z(a, xk_;). Las
asignaciones de memoria ft requerido para la cada matriz estructura = 20 x 8 = 160 B. [asumir cada elemento
como la precesin MM flotante doble puntero nmero de 8 B (64 bits en formato IEEE 754.]

Ejemplo 5.5
Cuando el ndice se incrementa por 1 en el caso de una matriz, el puntero al elemento anterior realmente se
incrementa en 4, y por lo tanto se incrementar en la direccin 0x0004 en el caso de una matriz de enteros. (un
entero de 4 bytes que almacena como nmero.] para el tipo de datos array, * nunca se ponga antes el nombre
de identificador, pero un ndice se coloca dentro de un par de corchetes despus del identificador. Examinar la
declaracin, "unsigned char portAMessageString [80];". El puerto de un mensaje es una cadena, que es una
matriz de 80 caracteres. Ahora, J portAMessageString es un puntero a una direccin sin el signo antes de
ella. [Nota: la matriz es Jj , por lo tanto, conocido como un tipo de datos de referencia.] sin embargo.
^portAMessageString ahora remitir a todos los pies de 80 caracteres en la cadena cadena portAMessage [20]
se refieren a la 20 elemento (carcter) Mi en la cadena.

Cola una estructura de datos, denominado cola es otro importante elemento de programacin. En el caso
de matriz, la lectura es con la ayuda de ndices y la primera direccin del elemento. As, cualquier clemente pueden
ser ledos o escritos en cualquier instancia. En la cola, cada elemento se lee desde una direccin junto a la direccin
de donde el elemento de cola fue la ltima lectura. Esta lectura se denomina eliminacin. En la cola, est escrito a
una direccin junto a la direccin de donde el elemento de cola fue el ltimo escrito. Este escrito se
denomina insercin. Una cola significa un bloque de memoria asignado a partir de un elemento de datos que se
recuperan en el modo FIFO. Utilizando las colas, el byies son enviadas a un bfer de memoria o red o impresora.
Para el manejo de la cola, son necesarios dos punteros y un bfer de memoria asignada entre la direccin
apuntada por siart buffer y buffer-extremo puntiagudo por *Q|imil. Un puntero *Qlail es para sealar una direccin
en un bloque de memoria donde se puede insertar un elemento (agregado en la escritura). Para una cola de enteros,
int i;iQl:li|. *Qhead son declaradas. *Qlai| inicialmente es igual a *Qslar1 y debera aumentar en cada insercin en cola o cola puntero. El otro
*Qh"d (cola puntero de cabeza) inicialmente es igual a *QS1.,I1 y es para sealar una direccin en un bloque de
memoria desde donde un elemento puede ser eliminado (quitar en la lectura). Este puntero debe incrementarse en
cada eliminacin. Ambos punteros * y *Qhcal Qlail] punto al principio a *Qsl.iri la memoria inicial- direccin
buffet en el bloque. Las inserciones en una cola son generalmente ms rpido que las eliminaciones. Por ejemplo,
en una cola en la impresora, el sistema inserta los valores ms rpido que la velocidad a la que se imprimen los v
alores. La diferencia en las direcciones de los dos punteros en una instancia es la longitud de cola actual.
Hay una posibilidad de que el puntero de cola puede aumentar ms all de un lmite fijado para la cola direccin
final en el bloque de memoria. Una excepcin (una indicacin de error) suele ser lanzado cada vez que el puntero
se incrementa ms all del lmite final del bloque. Lo dems, en incrementos sucesivos'ah la intrusin en otro bloque
pueden ocurrir. Figura 5.2(b) muestra un bloque de memoria entre * y *Qstan Qlimit con los dos punteros * y
*Qtail Qhcad necesarios para inserciones y eliminaciones.

Conceptos de programacin y Programacin incrustada en C. C++ y Java

247

Una cola es una estructura de datos con un bloque de memoria asignado (buffer) de que un elemento de datos
se recuperan en el modo FIFO. Tiene dos punteros, uno para la cabeza y el otro por su cola. Cualquier
eliminacin se realiza desde la direccin de la cabeza y cualquier insercin se efecta en la direccin de la cola.
Una excepcin (una indicacin de error) debe ser lanzado cada vez que el puntero se incrementa ms all del
lmite final de bloque, de modo que puedan tomarse las medidas adecuadas.

Una cola cola circular se denomina c ircular cola cuando un puntero al alcanzar un lmite PQlimi!' vuelve a su
valor inicial :,1,P>Ulir

(una cola circular significa una delimitada de bloque de memoria asignado a una cola de tal forma
que su puntero en incrementar nunca excede el lmite establecido y vuelve a iniciar el incremento ms all del
lmite) de una cola circular tambin, el elemento de datos se recuperan en el modo FIFO pero no se produce
ninguna excepcin en exceder el lmite del bloque de memoria asignado. La figura 2.4(c) muestra un bloque de
memoria con una cola circular con sus dos punteros necesarios para inserciones y eliminaciones.
Una circular de cola es una cola en la que los punteros tail y head puede incrementar ms all del bloque de
memoria (buffer) y restablecer el valor inicial en la insercin ms all de la frontera.

Un tubo tubo es un dispositivo que utiliza funciones de controlador de dispositivo y en el que las inserciones
son de la fuente final y las eliminaciones son en el fregadero. Las eliminaciones en el destino final, y son como en
la cola. La fuente de insercin tiene una identidad distinta a la de un destino (receptor) entidad donde se realizan
las eliminaciones y el origen y el destino se encuentran conectados por alguna funcin pipe_connect ( ). Figura
5.2(d) muestra bloques de memoria para un tubo.
Un tubo es un dispositivo con inserciones y eliminaciones en claramente definidos, el origen y el destino.

Tabla Aiable es una estructura bidimensional (matriz de la tierra es un importante conjunto de datos que se asigna
un bloque de memoria. Siempre hay un puntero de una tabla base. Apunta a su primer elemeni en la primera
columna y la primera fila. Hay dos ndices, uno para una columna y la otra en una fila. La figura 5.3(a) muestra
un bloque de memoria con los punteros de la tabla. Como una matriz, cualquier elemento puede ser recuperada
desde tres direcciones de la tabla base, la columna de ndice y de ndice de fila. En lugar de una columna o fila,
un valor de puntero se utiliza en una instruccin que se llama dixplacenieiu. desplazamiento puede ser utilizado
para una columna o fila.
Una tabla de bsqueda es una estructura bidimensional (matriz) y es un importante conjunto de datos. Slo
tiene filas y cada fila tiene una llave y en la lectura de la clave. los datos al destinatario es explorada.
Una tabla es un conjunto de datos asignado con un bloque de memoria. Tres punteros, la base de la mesa,
columna ndice ndice del destino y punteros (o dos punteros y un desplazamiento) puede recuperar cualquier
elemento de la tabla. Tabla de consulta es una tabla de claves (punteros) y al leer una clave la dirigida se
recuperan los datos.

Tabla hash una tabla hash es un conjunto de datos es una coleccin de pares de clave y valor
correspondiente. Una tabla hash tiene una clave o el nombre de una columna. El valor correspondiente o el objeto
se encuentra en la segunda columna. Las teclas pueden ser borrilla consecutivos de direcciones de memoria. Figura
5.3(b) muestra un bloque de memoria con los punteros de un hash.
Una tabla hash es un conjunto de datos asignado con un bloque de memoria para los pares clave/valor.

248,

Los sistemas integrados

Yo

Un bloque de memoria se extiende desde la base puntero adelante


Tabla {o elemento de matriz M (0,0))
Base puntero en
Base Register

i
Yo

ndice de columna {o ndice i en j


M (ij) en Registro de ndice) j
J
-------!

Desplazamiento de base
{o ndice j
En M (i, j)) Define en
Una instruccin
(o en un registro)

-- 1
__
Yo

S/.

Filas

I/Z/.'J

Un elemento
en un
La memoria
Direccin

Columnas

(a)
Nombre Marcas

(un puntero para cada nombre puede ser


En un archivo de registro o en la memoria)

Un puntero para
bytes de una
direccin que
apunta al valor u
objeto de
memoria para un
valor o un objeto
de tabla hash

(b)
Un objeto o sistema de memoria
! Js( valor ^

TOP
Bloque de memoria 1 bloque de
memoria 2
- Cabe
za de
lista

!Nu]il

(Cuando la lista
est vaca)

Siguiente Top
direccin del
puntero para el
siguiente elemento
de la lista o del
objeto

Bloque de memoria 3 J_ ,
[null;
Lsl
Jefe
Ppj-]
:-r a

Lista Top
Lista Top
(Cuando la lista no est vaca
y tiene un objeto solamente)

(c)
Fig. 5.3 (a) un bloque de memoria con los punteros de una tabla (b) un bloque de memoria para tabla hash con los

pares de clave y valor en una tabla hash (c) los bloques de memoria en la memoria del sistema con los
punteros de la lista
Yo kt Una lista es una estructura de datos con un nmero de bloques de memoria, uno para cada elemento. Una lista
tiene una parte superior (cabeza) puntero para la direccin de memoria de donde empieza. Cada elemento de la lista
en la memoria tambin almacena el puntero al siguiente elemento. El ltimo elemento apunta a null. Una lista es
para no consecutiveiy encuentra objetos en la memoria. La figura 5.3(c) muestra los bloques de memoria con los
punteros de la lista.

Ejemplo 5.6
Asumir en un pulso de reloj en tiempo real, los ISR incrementa el nmero de recuentos en una RTCSWTs
(realtime cj^ck interrumpe-triggered temporizadores software). Suponga que hay una lista de temporizadores
RTCSWT que estn activas en un instante. La parte superior de la lista puede ser sealado como
'*RTCSWTJList.top' utilizando el puntero. RTCSWTJList.top es

Conceptos de programacin y Programacin incrustada en C, C++ y Java

1249

Ahora el puntero del ratn a la parte superior del contenido en una memoria para una lista de los activos
RTCSWTs. Considere la declaracin 'RTCSWT_Li.st.top ++;' se incrementa este puntero en un bucle. No ser
hasta el siguiente punto de la parte superior de otro objeto en la lista (otra RTCSWT) sino en cierta direccin
que depende de las direcciones de memoria asignada a un elemento de la lista_de_RTCSWT. Deje LisiNuw ser
un puntero en el bloque de memoria de la lista el elemento superior. Una declaracin '*RTCSWT_List.
*RTCSWT ListNow =_List.top;' har lo siguiente. Ccr wt_list es sustituido ahora por el puntero RTCSWT lista
top puntero y ahora apunta al siguiente elemento de la lista (objeto). (Nota: RTCSWT_List.top++ para el
puntero a la prxima lislobjectcan slo debe utilizarse cuando RTCSWT_List elementos se colocan en una
matriz. Esto es debido a que una matriz es anlogo a consecutivamente ubicado los elementos de la lista en
la memoria).
Considere la posibilidad de una declaracin: "Mientras (* RTCSWT_List. ListNow -> Estado = null)
(numRunning ++);". Yo cuando un puntero a ListNow en una lista del software temporizadores que se estn
ejecutando en la actualidad no es NULL, entonces /j solamente ejecutar el conjunto de instrucciones dadas en
el par de llaves de apertura y cierre. Uno de los usos importantes de ml el puntero nulo en el ltimo elemento
de la lista para sealar el final de una lista, o Mi a no ms contenidos en una cola o pila vaca, cola o lista.
MM
Una lista es una estructura de datos en la que cada elemento (objeto o estructura de datos) tambin almacena un
puntero al siguiente elemento en la lista. Tiene un bloque de memoria asignado a cada elemento. La lista top
puntero
apunta
al primer
y el ltimo
elemento
a NULL.
El
cuadro
5.2 resume
los elemento
usos ejemplares
de colas,
pilas,apunta
matrices,
listas y rboles.
Cuadro 5.2 Usos de las distintas estructuras de datos en un elemento de programa

Estructura de datos
Cola

Pila

Definicin y cuando se utiliza

Ejemplo) s) de su uso

Es un slructure con una serie de elementos con un cabezal (i) Bfer de impresin. Cada
Elemento gemidos lor una operacin de lectura, llamada supresin
carcter se imprime en el modo
La operacin. Una operacin slo puede realizarse en la primera
FIFO.en
Primero en salir (FIFO) modo. Se utiliza cuando un elemento
est en una red (cada
(ii)noMarcos
Para ser accesible por cualquier ndice y puntero directamente,
pero tambin tiene una
fotograma
Slo a travs de la FIFO. Un elemento slo puede insertarsecola de una secuencia de
Al final de la serie de elementos que esperan para una operacin.
bytes). Cada byte debe ser
Hay dos punteros, uno para eliminar despus de la operacinenviado para recibir como
Y el otro para la insercin. Ambos tras un incremento
FIFO.
La operacin.
(iii) Los fotogramas en una
secuencia de imgenes, stas
Se trata de una estructura con una serie de elementos con su(i),
ltimo
elemento
empujando
variables como
y
tienen
que
ser de
procesados
Gemidos para una operacin. Una operacin slo puede realizarse
en de interrumpir o
eluncontexto
FIFO).
El ltimo en entrar es el primero en salir (LIFO) modo. Se utiliza
el elemento
llamar cuando
a otra funcin,
(ii) ah
No es para ser accesible por cualquier ndice o puntero directamente,
perode reventar el
Recuperacin
Slo a travs de la LIFO. Un elemento puede ser empujadoempujado
(insertar) datos de una pila.
Slo en la parte superior de la serie de elementos que siguen esperando una
La operacin. Slo hay un puntero utilizado para POP (eliminar)
Despus de la operacin, as como para empujar (insercin). Punteros
El incremento o decremento despus de una operacin. Depende
Insercin o eliminacin.
(Podra)

250!

Los sistemas integrados

Estructura de Duio

(una
matriz
multidim
ensional
vector)
Multi
Ttrrav

Lista

rbol

Definicin y cuando se utiliza


Se trata de una estructura con una serie de elementos con cada
elemento accesible por el nombre de identificador y el ndice. Su
elemento se puede utilizar y manejar fcilmente. Se utiliza
cuando cada elemento de la estructura es la que debe darse una
identidad definida por un ndice para facilitar la operacin.
ndice de 0 estrellas y es un nmero entero positivo.
Se trata de una estructura con una serie de elementos cada uno
con otro sub-serie de elementos. Cada elemento es accesible
mediante el identificador y el nombre de dos o ms ndices. Se
utiliza cuando cada elemento de la estructura se da una clara
tdentityby dos o ms ndices para una fcil operacin. La
dimensin de una matriz es igual al nmero de ndices que son
necesarios para identificar claramente un elemento de la matriz.
Inicio Indices de 0 y son enteros positivos.

Cada clemente tiene un puntero a su elemento siguiente. Slo el


primer elemento es identificable y la lista top puntero
(encabezado) lo hace. Ningn otro elemento es identificable y
por lo tanto no es accesible directamente. Al pasar por el primer
elemento y, a continuacin, de forma consecutiva a travs de
todos los elementos sucesivos, un elemento puede ser de lectura
o de lectura y borrado o puede ser aadido a un elemento vecino
o sustituido por otro elemento.
Hay un elemento raz. Tiene dos o ms ramas cada elemento
tena una hija. Cada elemento hija hija tiene dos o ms
elementos. La ltima de ellas no tienen hijas. Slo el elemento
raz es identificable y es realizado por el treetop puntero
(encabezado). Ningn otro elemento es identificable y por lo
tanto no es accesible directamente. Recorriendo desde el
elemento raz y, a continuacin, proceder continuamente a travs
de todas las sucesivas hijas, un elemento de rbol puede ser de
lectura o de lectura y borrado o puede ser aadido a su otra hija
o sustituido por otro elemento. Un rbol tiene elementos de
datos organizados como ramas. La ltima hija, llamada nodo
hoja no tiene ms hijas. Un rbol binario es un rbol con un
mximo de dos hijas (ramas) en cada elemento y ninguno en
elementos de hoja.

/. Umiplc (si su uso


s

Es = 12 s(l): salario total, ts 12 limes


el primer mes de sueldo.
Marcas_\veight |4| = m;trks_\vcight
101; el peso de las marcas en el tema
con el ndice 4 est asignado el
mismo como en el tema con el ndice
0.
Manejo de una matriz o tensor.
Considere la posibilidad de un pxel
en una imagen. Considerar QuarlerCIF pxel de imagen en 144 x 17FI
imagen tamao de fotograma
(recordar la seccin 1.2.7.) pxel [
UI8. 88] se pronunciar representan
un pixel en el 108-sima fila
horizontal y el 88-sima columna
vertical.
Ved tambin la siguiente nota.
Una serie de tareas que estn activos.
Cada tarea tiene puntero de la
siguiente tarea. Otro ejemplo es un
men que apunta a un sub-men.
Un ejemplo es un directorio. Tiene
nmero de carpetas de archivos.
Cada archivo de la carpeta tiene un
nmero de otras carpetas de archivo
y as sucesivamente. Al fin y al cabo
es un archivo.

pxel fO.do representa los pxeles a la izquierda comer en la parte superior y pixel [143, 1751 que representa en la parte inferior
derecha, 110.108 pxeles. 88| pixel es un elemento de datos en una matriz tridimensional. Representa los pxeles en la misma
posicin (108 x 88) en el dcimo frame.

El lector puede referirse a un libro de texto para el estndar de C y C++ de algoritmos de estructuras de datos.

5.4.4 Uso de modificadores


Las acciones de modificadores son como sigue:
Caso (i): modificador 'auto' o sin modificador significa que no hay asignacin de ROM para la variable por
localizador si se inicializa en el programa. RAM es asignada por el localizador, si no est inicializado en el
programa.

Conceptos de programacin y Programacin incrustada en C, C++ y Java

I 251 :

Caso (IIJ: Modificador 'unsigned' es un modificador de un cortocircuito o ini o tipo de datos long. Es una
directiva para permitir slo los valores positivos de 16. 32 o 64 bits, respectivamente.
Caso (Hi): modificador '.wu/tc'declaracin est dentro de un bloque de funcin. Declaracin esttica es una
directiva para el compilador que la variable debe l accesible fuera de la funcin de bloque tambin, y tiene que
haber un espacio de memoria reservado para ella. A continuacin, no guarda en una pila de parmetros locales.
Cuando varias tareas se ejecutan en cooperacin, la declaracin sialic ayuda. Considere una declaracin ejemplar,
'private: static void interrupt ISR_RTI (). La esttica- declaracin aqu es para la directiva del compilador que el
ISR_RTI () funcin cdigos limitan al bloque de memoria para ISR_RTI () funcin. La declaracin privada aqu
significa que no hay otras instancias de ese mtodo en cualquier otro objeto. A continuacin, no guarda en la pila.
Hay ROM Asignacin por el localizador si se inicializa en el programa. No hay asignacin de RAM por el
localizador si no se inicializa en el programa.
Caso (iv): modificador sialic declaracin est fuera de un bloque de funcin. No se puede usar fuera de la
clase o mdulo en que se declara. Hay ROM Asignacin por el localizador para los cdigos de funciones.
Caso (vj: modificador const declaracin est fuera de un bloque de funcin. Debe ser inicializado por un
programa. Por ejemplo, #define const _Mensaje de bienvenida "Hay un correo para vosotros". Hay ROM
Asignacin por el iocator.
Caso (vi): modificador register declaracin est dentro de un bloque de funcin. Debe ser inicializado por un
programa. Por ejemplo, 'registerCX.". Un registro de la CPU se asigna temporalmente cuando sea necesario. No
hay asignacin de ROM o RAM.
Caso (vii): modificador interrumpir: dirige el compilador para guardar todos los registros del procesador en
la entrada a la funcin de cdigos y la restaura a su regreso de la funcin (este modificador es precedido por un
carcter de subrayado, 'Jnlerrupt' en algunos compiladores).
Caso (viii): modificador extern: dirige el compilador busque la declaracin de tipo de datos o la funcin en
un mdulo distinto del actualmente en uso.
Caso (ix): modificador volatile fuera de un bloque de funcin es una advertencia al compilador que un evento
puede cambiar su valor o que su cambio representa un evento. Un ejemplo de evento es un evento de interrupcin
de hardware, evento o eventos de comunicacin inter-tarea. Por ejemplo, considere una declaracin: ' :'
IntrEnable Boolean voltiles se cambia a false en el inicio del servicio mediante un servicio rutinario, si es true
previamente. El compilador no realiza la optimizacin para una variable voltil. Dejemos que una variable sea
asignado, c = 0. Posteriormente, se asigna c = I. El compilador ignorar la instruccin c = 0 durante la
optimizacin de cdigo y tendr c = 1. Pero si c es una variable de evento, no debe ser optimizado. IntrEnable =
0 est al principio de la rutina de servicio de interrupcin en caso de que una variable es utilizada habilitado para
deshabilitar cualquier interrupcin durante el perodo de ejecucin de ISR. IntrEnable = 1 se ejecuta antes de
volver desde el ISR. Esta re-habilita las interrupciones en el sistema. Declaracin de IntrEnable como volatile
indica al compilador que no optimizar dos sentencias de asignacin en la misma funcin. No hay ROM o
asignacin de RAM por el localizador.
Caso (x): modificador volatile sialic declaracin est dentro de un bloque de funcin. Algunos ejemplos son:
(a) static boolean voltiles- RTIEnable = true": (b) 'inestable ' RTISWTEnable static boolean; y (c) "voltiles
static boolean_RTCSWT F.' la declaracin esttica es para la directiva de compilador que la variable debe ser
accesible fuera de la funcin de bloque tambin, y tiene que haber un espacio de memoria reservado para ella.
La volatilidad es una directiva que puede optimizar como un evento puede modificar. A continuacin, no guarda
en la pila para parmetros locales de la funcin. Cuando varias tareas se ejecutan en cooperacin, la declaracin
static ayuda. El compilador no optimiza el cdigo porque la declaracin de voltil. No hay ROM o asignacin de
RAM por el localizador.

5,4.5 Uso de bucles, bucles infinitos y condiciones


A veces una serie de declaraciones que se repite en un bucle. Generalmente, en caso de aiyay, el ndice cambia y
el mismo juego se repite con otro elemento de la matriz. Los bucles se utilizan cuando se ejecuta un conjunto de
instrucciones varias veces. Un bucle comienza a partir de un valor inicial o condicin y ejecuta hasta que se

252

Los sistemas integrados

Por ejemplo, considere la siguiente, para (i = 0; i < = 100; i + + ) {/* un conjunto de declaraciones que ejecutar
repetidamente */ |. La condicin inicial se asigna como i = 0 y la ltima condicin para que el bucle se ejecuta
hasta que yo sea inferior o igual a 100. El conjunto de declaraciones en el soporte se ejecuta desde el inicio hasta
el final y antes de volver a iniciar el i se incrementa por I. La instruccin for permite el conjunto de instrucciones
para ejecutar repetidamente 101 veces con valores de i = 0, 1
99. 100.
Foranother ejemplo, considere la siguiente, i = 0; mientras que (i < = 100) {(/*.setof declaraciones que ejecutar
repetidamente */ ); i++; |. La condicin inicial se asigna como i = 0 y se fija antes del bucle while. El bucle while
se ejecuta hasta que me sigue siendo inferior o igual a 100. i++ incrementos antes del volver a probar la condicin
while. La instruccin while permite al conjunto de instrucciones para ejecutar repetidamente con valores de i = 0,
1 ...............................................................................................................................................99, I (X).
Si la condicin sigue siendo verdadera, entonces bucle while se ejecutar indefinidamente. Por
ejemplo, mientras que el (l)j ( /* un conjunto de declaraciones que ejecutar ejecutar repetidamente */ ). El bucle se
ejecuta indefinidamente porque yo siempre es true. Bucles infinitos no son nunca deseada en la programacin
habitual. Por qu? La funcin o tarea no terminar nunca y nunca salir o continuar con los cdigos despus del
bucle. Bucle infinito es una caracterstica en el sistema integrado de programacin! El software del sistema en el
telfono tiene que estar siempre en un bucle de espera que encuentra el anillo en lnea. Una salida del bucle har
que el sistema hardware redundante.
Ejemplo 5.7 proporciona un programa C el diseo en el que el programa comienza a ejecutarse desde la principal
funcin (). Hay llamadas a las funciones y llamadas en interrupciones entre ellas. Tiene que volver a empezar. El
programa principal del sistema nunca est en un estado de suspensin. Por lo tanto, el principal () est en un bucle
infinito en el inicio y el fin.

Ettirnple 5.7
Defina false 0
# Definir cierto 1
Void main (void) (
I* Las declaraciones aqu e inicializacin aqu */
/* El siguiente bucle while infinito. Desde la condicin establecida para el bucle while es siempre verdadera,
las declaraciones dentro de las llaves para continuar con la ejecucin de *1
Mientras (true) f
J
/* Los cdigos que ejecutar repetidamente */
Jj

Ejemplo 5.8 da un ejemplo de uso del sondeo para un evento o mensaje en un programa.
Supone que la funcin main tiene un bucle de lamentaciones y simplemente pasa el control a un RTOS. Cada
tarea controlada por el RTOS tambin tendrn cdigos en un bucle infinito. Ejemplo 5.9 muestra los bucles infinitos
dentro de cada tarea.

Ejemplo 5.8
# Definicin FALSE 0
# Definir cierto 1

Conceptos de programacin y Programacin incrustada en C, C++ y Java

Void main (void) (


I* llamada RTOS ejecutar aqu */ RTO.run(); mientras (l)(
/* los bucles while infinito sigue en cada tarea. Por lo tanto nunca hay retorno desde el RTOS. */

//********************************************************************
Void taskl (....) { /* Declaraciones *1

While (true) {
/* Los cdigos que ejecutar repetidamente */

/* Los cdigos que se ejecutan en un evento */ si (Pabelln 1) {....;); la bandera 1 =0.


/* Los cdigos que ejecutar para enviar mensaje al kernel */ mensaje 1 ();

Void tarea2 (...) Declaraciones j /* */

While (true) {
/* Los cdigos que ejecutar repetidamente */

/* Los cdigos que se ejecutan en un evento */ si (Pabelln 2) (


;); indic2 =0.
/* Los cdigos que ejecutar para enviar mensaje al kernel */ Message2 ();
};

//********************************************************************

/***********************%:y***^/t\***************************************/.
Void taskN (...) {

Declaraciones /* */

253

Los sistemas integrados

.mientras (true) {
/* Los cdigos que ejecutar repetidamente */

/* Los cdigos que se ejecutan en un evento*/


Si (flagN flagN) =0.
/* Los cdigos que ejecutar para enviar mensaje al kernel */
MessageN ();
);
)
Puede haber ms de un bucles infinitos. El cdigo dentro del bucle infinito espera una comunicacin interproceso (1PC) mensaje o evento bandera o un conjunto de eventos a travs del sistema operativo.
El cdigo dentro del bucle de la tarea en ejecucin genera un mensaje que transfiere al kernel. El ncleo del
sistema operativo, que pasa a la espera de mensaje de tarea, lo detecta y cuando esa tarea inicia el SO pre
Supongamos que un evento se ajuste de una bandera, y el valor de marca es desencadenar la ejecucin de una
tarea cuando el kernel pasa a la tarea de espera. La instruccin se ejecuta SW1 para enviar el mensaje a la otra
funcin de la tarea de un servicio.
Sentencias condicionales se utilizan muy a menudo. Si una condicin definida(s) se han cumplido, las
declaraciones dentro de las llaves despus de la condicin (o una declaracin sin llaves) son ejecutados, de lo
contrario, el programa contina con la instruccin siguiente o al siguiente conjunto de declaraciones.
Un conjunto de instrucciones se denomina switch-case. Un programa pasa a un caso como por el resultado de
la expresin switch resultado. Por ejemplo, el interruptor (/) significa cambiar segn el caso para el valor de i.
Ejemplo 5.9 muestra una aplicacin de bucle infinito y el interruptor de la programacin para la instruccin case
GUIin telfonos mviles (por ejemplo, 1.5.4).

Ejemplo 5,9
Considere la posibilidad de un telfono mvil inteligente (por ejemplo 1.5.4). Asumir que la pantalla Estado j
es entre 0 y K, entre 0, 1, 2,... o K - 1 estados posibles (conjunto de mens). Una interrupcin se genera desde
una pantalla tctil de interfaz grfica de usuario (GUI) y un Router ISR puestos un mensaje de evento m = 0,
1, 2,..., o N - 1 segn el seleccionado la opcin de men 0, 1, 2,..., N - 1 cuando hay N opciones de men para
un usuario de un telfono mvil para seleccionar desde la pantalla de estado. j. La m se pronunciar
dependen OP . La posicin de la pantalla en la posicin de tocados. La figura 5.4 muestra el uso de un modelo
de programacin aqu, lo que facilita la ejecucin de uno de los mltiples posibles llamadas de funcin; una
funcin se ejecuta despus de que el sondeo para el estado de la pantalla de un mensaje j y m desde un SR
(segn la eleccin del usuario
# Definir cierto 1
# Definicin FALSE 0
Void main (void) {
Declaraciones /* */
While (true) (/* ejecutar un bucle infinito */
Poll_Screen_State (i); /* llame a una funcin para sondear el estado de la pantalla. Un Estado significa un
conjunto de opciones de men que aparece en la pantalla tctil */

Conceptos de programacin y Programacin incrustada en C, C++ y Java

I 255 i

ISR en la opcin de men Seleccin de usuario

Interrumpir
en el men
Seleccionar
la tecla

R
Y
o
Y
o

Sondeo de estado de pantalla actual mensaje de arena para seleccin de


men m;
Caso (pantalla de estado = as, men seleccionado = mOj funcin
execute (MO).
Caso (pantalla de estado = as, men seleccionado = m1) funcin execute
(m f);
Caso (pantalla state=sj, men seleccionado = mp) funcin execute ($/, mp);

Funcin (por lo
tanto, Mo) ejecuta
cdigo seal

Funcin (Sir, m0)


ejecuta cdigo
seal

1 funcin (MOM) j
! Ejecutar cdigo

Seal J

1 funcin (mNt) puedo


ejecutar cdigo Seal
j

R
Yo | funcin (S|f_i, Mo) \
1
- Ejecutar cdigo -j
F
Seal i
,

' -i

- + funcin (as, mN_) i j


ejecutar cdigo
J
1 seal

Fig. 5.4 Uso del modelo de programacin aqu, lo que facilita la ejecucin de uno de los mltiples posibles llamadas
de funcin y la funcin se ejecuta despus de que el sondeo para el estado de pantalla j y para un
mensaje m a partir de una rutina de servicio de interrupcin, segn la eleccin del usuario

/****" ***********,t::j::|:#:i,**:|:|:**:**:i:*********:i:********$**,>::i*:*:*:J#$*%******/
Void poll_Screen_State (J)
/* nmero j permiten identificar una pantalla estado *1 El interruptor (I) {
Caso 0: poll_menu0 (); exit ()
Caso 1: encuesta, men 1 (); exit ()

Caso j: poll_menuJ (); exit ()

Caso K: poll_menuK (); exit ()


)
}
F t *******************************************.**X*****JI:*****-t**p:*}l****l
Void poll_menu0 (/* Cdigo de sondeo de cboice.^om men 0 para pantalla ESTADO 0 */}
/* Un ISR enva mensaje m segn la opcin seleccionada por el usuario en el men en la pantalla de estado j
*/ Interruptor (m ) (
Caso 0: (/*Cdigo que se ejecuta cuando la eleccin es men Pantalla 0 Estado 0*/; salida (); J

256

Los sistemas integrados

Caso 1: {/*Cdigo que se ejecuta cuando la eleccin es men 1 Pantalla estado 0/* */ exit ( ;);)

Caso N - 1: |/*Cdigo que se ejecuta cuando la eleccin es men N - 1 pantalla Estado 0/* */ ; salir ();
}
!
Y********************************************************************/
. /* Los cdigos de estado de pantalla 1,2

J */

/* Un 1SR enva mensaje m segn la opcin seleccionada por el usuario en el men en la pantalla de estado
j = */ Vende poll_menuJ {/* Cdigo para el sondeo de eleccin del men m para pantalla estado J */
/* Un ISR enva mensaje m segn la opcin seleccionada por el usuario en el men en la pantalla de estado j
*/ Interruptor (m)(
Caso 0: {/*Cdigo que se ejecuta cuando la eleccin es men Pantalla 0 estado j*/ ; salir ();)
Caso 1: {/*Cdigo que se ejecuta cuando la eleccin es men 1 Pantalla estado j/* */ exit (;);)

Cuidado N- 1: {/*Cdigo que se ejecuta cuando la eleccin es men N - 1 pantalla estado j/* */ exit ( ;);)
)
*********************************************************) *******s
, !* Cdigos de estado pantalla j + 1,2 K - 1 *1
Void poll_menuK {/* Cdigo para el sondeo de eleccin del men m para pantalla estado K
- 1*/
//********************************************************************

2,6

Utilice la funcin Os Cnfe

Fbula 5.1 dio los significados de los diversos conjuntos de instrucciones en el programa C. Existen funciones
especiales o iniciar la ejecucin de un programa, 'void main (void)". Dado siguiente son los pasos a seguir cuando
se utilice una funcin en el programa.
1. Declarar una funcin: cada variable tiene que tener una declaracin, cada funcin debe ser declarada.

5,1G de muestra
1. Declarar una funcin como la siguiente: "ejecutar indexRTCSWT int (int, unsigned int, unsigned int
numTicks maxLength, SWT^tipo swtType, SWT_Action loadEnable swtAction, boolean);' el run es el
nombre de la funcin. Aqu int especifica el tipo de datos devuelto. Hay argumentos dentro de los
parntesis. El tipo de datos de cada argumento es tambin declarado. Un modificador es necesaria para
especificar el tipo de datos del elemento devuelto (variable u objeto) de cualquier funcin. Aqu, el tipo
de datos especificado es un entero. (Un modificador para especificar el elemento devuelto tambin pueden
ser estticas, voltil, internet y extern).
2. Considerar una funcin de controlador de dispositivo abierto (fd, opciones device_parmetro). La
funcin llamada nombre es 'Abrir'. Establece la configuracin del dispositivo. Cuando se llama a la
funcin por instruccin, open (4,OJRDWR, 9600). Primer, segundo y tercer argumentos que se
pasan son 4,0_RDWR y 9600. Primer argumento

Conceptos de programacin y Programacin incrustada en C, C++ y Java

257

Es para el dispositivo y le pasa el valor del descriptor fd = 4. El descriptor es una identidad, que es un
nmero entero. El segundo argumento se describe el valor de la opcin del dispositivo como lectura y
escritura deviceV el tercer argumento describe el parmetro device, baud_rate, la tasa por la cual la
lnea serie M dispositivo va a estar configurado para la comunicacin UART. La misma funcin se usa
para abrir el ml otras opciones y parmetros del dispositivo. Por ejemplo, open (4, 0_rd, 1200)
dispositivos, mg , lo que significa que el dispositivo 4 es de slo lectura y el parmetro DEVICE es
1200.
V
2. La definicin de las declaraciones de funcin: cada variable tiene que ser dado el contenido o valor, cada
funcin debe tener declaraciones. Considerar las declaraciones de la funcin 'Ejecutar'. Estos estn dentro
de un par de llaves de la siguiente manera: 'int CCRS WT: indexRTCSWT run (int, unsigned int, unsigned
int numTicks maxLength, SWT_Type swtType, SWT_Action loadEnable swtAction, boolean) La ltima
declaracin de una funcin es para el regreso y tambin pueden ser para devolver un elemento o estructura
de datos o el objeto.
3. Llamada a una funcin: Considere un ejemplo: "Si (DELAY_F = = true && SWTDelaylEnable - true)
ISR_Delay (100);". Hay una llamada en el cumplimiento de una condicin. La llamada puede ocurrir
varias veces y pueden ser hechas repetidas veces. En cada llamada, los valores de los argumentos dados
en el par de corchetes pase para utilizar en funcin de las declaraciones. Slo hay un argumento en
ISR_Delay.
A continuacin aparecen los pasos dados en la transferencia de los valores de los argumentos de la funcin de
llamada a funcin llamada sus argumentos.
(1) pasando los valores (elementos): Los valores son copiados de argumento para llamar a la funcin llamada
argumento. Cuando la funcin se ejecuta en este modo, no cambia el valor de una variable en la funcin de llamada
de retorno de la funcin llamada. Una funcin slo puede usar los valores copiados como sus propias variables a
travs de los argumentos.

Ejemplo 5.11.
Considere una declaracin, "run (int indexRTCSWT, unsigned int, unsigned int numTicks maxLength,
SWT_Type swtType, SWT_Action loadEnable swtAction, boolean) {...)". Funcin 'Ejecutar' argumentos
indexRTCSWT, /, maxLength, swtType loadEnable numTick y valores originales en el llamado programa
permanecer invariable durante una ejecucin de los cdigos. La ventaja es que los mismos valores para su
uso en el resto de Ml instrucciones estn presentes en el retorno a la funcin de llamada. Los argumentos que
se pasan por los valores
se guardan temporalmente en una pila de parmetros locales y recuperados en el
retorno de la funcin llamada.
(2) Funciones reentrante llamada: re-entrant funcin es utilizable por las varias tareas y rutinas de forma
sincrnica (al mismo tiempo). Esto es as porque todos sus valores de argumento son recuperables de una pila de
las variables locales, estructuras de datos y objetos. Se llama a una funcin re-entrant funcionan cuando las
siguientes tres condiciones son satisfechas.
(i) Todos los argumentos pasan los valores y ninguno de los argumentos es un puntero (la direccin) cada
vez que se llama a la funcin de llamada. No hay ningn puntero como argumento en el ejemplo 5.11 de
funcin 'Ejecutar'.
(ii) Cuando una operacin no es atmico, la funcin no debe funcionar en cualquier variable que se declara
fuera de la funcin o que un 1SR usa o que es una variable global pero pasados por referencia y no pasan
por valor como argumento a la funcin. (El valor de esa variable o variables, que no es local, no guarda
en la pila cuando hay una llamada a otro programa).
Nos permiten comprender operacin atmica. El siguiente es un ejemplo que aclara an ms. Supongamos que en un servidor
(software), hay una variable de 32 bits cuenta para contar el nmero de clientes (software) que necesiten servicio.
No hay ninguna opcin excepto para declarar el recuento como una variable global que comparte con todos los
clientes. Cada cliente de

Mg

Mg

258 i

Los sistemas integrados

Una conexin a un servidor inicia incremento ol contar. Count operacin de incremento debe ser atmica y hasta
que finalice el servidor deshabilita las solicitudes de otros clientes. Supongamos que un serv ice rutina para reloj
de tiempo real tick incrementa el reloj en numTicks, que es una variable de 64 bits. Todas las operaciones mediante
lour u ocho bytes de la variable representan una unidad atmica. La aplicacin del cdigo en ensamblador para
incremento en esa ubicacin de la memoria se convierte en no-atmicas en la siguiente situacin. Supongamos que
el procesador es de 8 bits, y por lo tanto el de 32 o de 64 bits incremento se realiza en cuatro u ocho operaciones,
respectivamente. Asumir que no hay desactivacin de interrupciones o la ejecucin de otras rutinas o tareas hasta
que todas las operaciones de incremento de 64 bits estn completos. Ahora bien, si se produce una interrupcin
entre el incremento de los valores incorrectos, ol contar puede ser pasado.
(iii) Dicha funcin no llamar a cualquier otra funcin que por s mismo no es re-entrant.
(3) Pasando las referencias: Cuando el valor de un argumento para una funcin pasa a travs de un puntero,
la funcin llamada puede cambiar este valor. A su regreso de esta funcin, el nuevo valor estar disponible en el
programa de llamadas u otra funcin llamada por esta funcin. Esto es porque no hay ningn ahorro de pila de un
valor que pasa a travs de un puntero en los argumentos de la funcin o la opera en la funcin en una variable
global o opera a travs de una variable declarada fuera del bloque de funcin.

5.4.7 Varias llamadas de funcin en orden cclico


Uno de los mtodos ms comunes es funcin de mltiples llamadas hechas en un orden cclico en un bucle infinito.

Ejemplo 5.12
Asumir la red de 64 kbps (ejemplo 4.1). La figura 5.5 muestra el modelo de las mltiples llamadas de funcin.
Typedef unsigned char intSbit;
# Definir boolean intSbit
# Definicin FALSE 0
# Definir el verdadero yo
Void main (void) {
/* Las declaraciones de ail variables, punteros, funciones aqu y tambin inicializaciones aqu */
La funcin f1

Llame a fl.
|_

Ejecutar cdigo
volver

Llamadas de
funcin mltiple

Llame a f2

La funcin f2

Ejecutar cdigo
volver
Llame a f3
La funcin f3

Ejecutar cdigo
volver

Fig. 5.5 El modelo de programacin de llamadas de funcin mltiple

Conceptos de programacin y Programacin incrustada en C, C++ y Java

|259

Unsigned char *portAdata; charAFlag booleana:


CheckPortAChar booleano (); /* una interrupcin de la funcin de servicio para devolver una bandera booleana, si
no hay carcter recibido en el puerto un *1
/* a las declaraciones de las funciones */ void inPortA (unsigned char *); void decipherPortAData (unsigned char *);
void encryptPortAData (unsigned char *); void outPortB (unsigned char *);
While (true) {
/* Los cdigos que ejecutar repetidamente */
/* Funcin para comprobar la disponibilidad de un personaje en el puerto A*/
Mientras (charAFlag != TRUE) checkPortAChar ();
/* Funcin para leer caracteres PortA*/ inPortA
(unsigned char *portAdata);
/* */ para descifrar la funcin
DecipherPortAData (unsigned char *portAdata);
/* */ para la codificacin de la funcin
EncryptPortAData (unsigned char *portAdata);
/* Funcin para retransmitir la salida a PortB*/
Puerto de salida B (unsigned char *portAdata);

}
Y*********************************************************************y
/* una interrupcin de la funcin de servicio para devolver una bandera booleana, si no hay carcter recibido en el
puerto */
CharAFlag booleana:
CheckPortAChar booleano ();
Void inPortA (unsigned char *{...};/* El ISR, que obtiene el carcter de entrada en la direccin
PortAdata */
Y*********************************************************************y

5.4.8 Los punteros a funcin, funcin de colas y colas de ISR


Deje que el signo * no se debe poner antes del nombre de una funcin y hay argumentos dentro de un par de
parntesis despus del nombre. Las declaraciones de la funcin se ejecuta usando el argumento valores o
referencias para los datos variables.
Las declaraciones estn presentes dentro de un par de llaves. Considere la posibilidad de una declaracin en el ejemplo
5.12,
'boolean checkPortACharJ );". "checkPortAChar' es una funcin que devuelve un valor booleano. Ahora,
checkPortAChar es en s mismo un puntero a la direccin inicial del cdigo. La direccin tiene los cdigos para las
declaraciones.
El PC buscar la direccin de checkPortAChar cuando una llamada a la funcin, y la CPU ejecuta secuencialmente las
sentencias de funcin desde aqu.
Ahora, deje que el signo * se ponga antes el nombre de la funcin. checkPortAChar' a referirme a todos los
compilados ,{es declaraciones en la memoria que se especifican dentro de las llaves.
Considere la posibilidad de una declaracin en el ejemplo, 'void inPortA (unsigned char *);".
1. InPortA significa un puntero a las declaraciones de la funcin. En el interior del soporte, hay un personaje
unsigned apuntada por algn puntero.

J 260:

Los sistemas integrados

2. *inPortA har referencia a todas las declaraciones de inPortA compilado.


3. T * en el puerto A) se refieren a declaraciones de llamada inPortA.
4. Qu har una declaracin, 'void crear (void (* inPortA) (unsigned char *), void *portAStaek, unsigned char
portApriority);'?
a. Primer modificador 'void' significa crear una funcin que no devuelve nada.
b. 'Crear' es la funcin, que puede ser llamado despus de su declaracin en un comunicado.
c. Considerar el primer argumento de esta funcin 'void (*inPortA) (unsigned char *portAdata)".
(*inPortA) significa llamar a las declaraciones de inPortA el argumento de que es "unsigned char
*portAdata'.
d. El segundo argumento de la funcin create es un puntero para el portA pila en la memoria.
e. El tercer argumento de la funcin create es un byte que define la portA de prioridad.
Una leccin importante para ser recordado de esta discusin es que una devolucin de datos (por ejemplo, la
especificacin de tipo void) seguido por '(*nombrefuncin) (functionArguments)' llamadas las declaraciones del
nombrefuncin utilizando functionArguments ihe, y sobre el retorno que devuelve el objeto de datos especificado.
As podemos usar el puntero a funcin para invocar una llamada a las funciones de una funcin C.

5.4.9 La cola de funciones en interrupciones


Cuando hay varios ISRs, una alta prioridad de ISR se ejecuta primero y la menor prioridad, en el extremo (vase
la seccin 4.5). Es posible que las llamadas a funciones y declaraciones en cualquiera de las interrupciones de alta
prioridad puede bloquear la ejecucin de ISR de prioridad baja y puede haber plazo miss para el ISR de baja
prioridad. Usando los punteros a funcin de las rutinas, y formando una cola (FIFO) para los punteros de funcin
es una solucin para el problema de lmite de baja prioTty rutinas. Las funciones de la cola son luego ejecutados
en una etapa posterior. Las funciones de la cola son las llamadas a procedimiento diferidas (DPC) y pueden ser
llamados ISTs cuando el sistema operativo se ocupa de ellos como subprocesos (Seccin 7.3). Las figuras 5.6(a),
(b) y (e) muestran la funcin principal, funcin varias llamadas pidiendo el FunctionQueues e ISR,
respectivamente. La figura muestra un ejemplo de modelo de programacin en el que los punteros de funcin
mltiple estn en cola por el ISR y dispositivo de conduccin de ISR. Cada ISR declaraciones tienen un breve
conjunto de cdigos. Ejecuta cdigos esenciales dentro de la ISR y el resto de los cdigos de funciones en cola.
La figura 5.6(d) muestra la cola de punteros a funcin.

Ejemplo 5,13
El siguiente es el cdigo en el que sobre una devolucin de servicio funcionamiento rutinario, la funcin
'opera/ronFunctionQueues" () obtiene los punteros a funcin de la cola y, a continuacin, ejecuta las funciones
puntiagudo.
/* Inserte aqu todas las directivas de preprocesador, comandos y funciones excepto el principal y
portAJSRJnput () funciona. */ void main (void) {
Las declaraciones de todas las variables, punteros, funciones aqu y tambin inicializaciones */
Mientras (true) (operationFunctionQueues ( ); /*llamar a las funciones de la cola en forma cclica (Round Robin)
Modo*/

/*******:(! *$**** sfc'*******^ ********* *$**:********************)!##$*** ***$*/


Void operationFunctionQueues () {
unsigned char *portAdata;

Conceptos de programacin y Programacin incrustada en C, C++ y Java

261

CheckPortAChar booleano ();


Void inPortA (unsigned char *):
Void decipherPortAData (unsigned char *);
Void encryptPortAData (unsigned char *);
Void outPortB (unsigned char *);
Void checkPortAChar ();
/* En_A_Out_b es una matriz, que inserta la cola elementos */
En QueueElArray_A_Out_B = nuevo * QelementsArray QElType QueueElArray (65.536);
portAIF = false; portAIEnable = true;
/* Los cdigos que ejecutar repetidamente */
Mientras (portAFlag != TRUE) checkPortAChar (LN_A_de__B, STAF);
En_A_Out_B.QElRetum (); /* Obtenga una_A_Out_B elemento de cola
*/_A_Out_B.QElRetum (); /* Get next in_A_Out_B elemento de cola
*/_A_Out_B.QEIRetum (); /* Get next in_A_Out_B elemento de cola */_A_Out_BQElRetum (); /* Get next_out en un elemento de la cola B */
};
*******************^^jpj jplgi-j
****************** rutina/
Interrumpir f "
..... PortA L

Servicio
Rutina,
ISR.PorlA entrada 1

Principales () {
Llamar a la funcin que
Llama al
Funciones a
La cola.

Puerto de insercin
de un puntero a
funcin de lectura de
datos en cola.

(a)

Las funciones
a las que llama
uno por uno

Llamada en interrumpir

"Qtop

Inserte descifrar y
cifrar de puntero a
funcin de puntero
a funcin y el
puerto B Los datos
de salida en funcin
de una cola.
Volver

W
Un
C
Oh

Llame a leer
Cal! Descifrar
Llame a cifrar
Llaman al puerto
B

"Qhead
Qtail puntos L A
En ISR Queue-Tail
Function-Pointers
Finalizar

Una cola de
Function-Pointers

Yo
'Leer
'Decipher

"Cifrar
Puerto B
Fig. 5.6 (a) () funcin principal [b) Funcin 'opertionFunctionQueues" () (c) la creacin de una
cola de los punteros a funcin por la rutina de servicio de interrupcin (d) Cola de punteros a funcin

Los sistemas integrados

Void QueueElArray checkPortAChar (In_A_Out_B, voltil portAIF boolean) (


Mientras (portAIF != true) { ); /*esperar hasta la aparicin del puerto a interrumpir */
/* llamada ISR_PortAInputI, una rutina de servicio de interrupcin en el puerto llamado interrumpir */
(QueueElArray PortAInputI ISR_en_un_Out_B);
Yo
/*******************[Pfi^upt
****************** rutina/
Void interrupt (QueueElArray PortAInputI ISR_en_un_Out_B) (
Disable_PortA_Intr ( )'; /* Deshabilitar otra interrupcin desde el puerto A*/
Void inPortA (unsigned char *portAdata); /* Funcin para retransmitir la salida a Pott B*/
Void decipherPortAData (unsigned char *portAdata); /* */ para descifrar la funcin
Void encryptPortAData (unsigned char *portAdata); /* */ para cifrar la funcin
Void outPortB (unsigned char *portAdata); /* Funcin para enviar la salida al puerto B*/
/* Inserte los punteros de funcin en la cola */
En_A_Out_B.QElinsert (const inPortA & *portAdata);
En_A_Out_B.QElinsert (const decipherPortAData & *portAdata);
En_A_Out_B.QElinsert (const encryptPortAData & *portAdata);
En_A_Out_B.QElinsert (const outPortB & *portAdata);
Enable_PortA_Intr (); /* permite otra interrupcin de portA*/
!

Un modelo de programacin concepto es que utilice la funcin de colas y colas de punteros a funcin construido
por el ISR. Reduce significativamente los perodos de latencia de ISR. Cada dispositivo de ISR, por lo tanto, es
capaz de ejecutar dentro del plazo estipulado.

5.5

Programacin Orientada a Objetos

Cuando un programa grande, un lenguaje orientado a objetos ofrece muchas ventajas. Una programacin orientada
a objetos (OOP) lenguaje proporciona lo siguiente:
1. Definir el objeto o conjunto de objetos, que son objetos comunes o similares dentro de un programa y
puede ser usado en muchos programas.
2. Definir los mtodos que manipulan los objetos sin modificar sus definiciones.
3. Creacin de mltiples instancias de la definicin, el objeto o conjunto de objetos u objetos nuevos.
4. La herencia.
5. Encapsulacin de datos.
6. Diseo de componentes reutilizables.
Un objeto puede ser caracterizado por los siguientes.
(a) Una identidad (una referencia a un bloque de memoria que mantiene su estado y comportamiento).
(b) Un Estado (sus datos, propiedades, campos y atributos).
(c) Un comportamiento (mtodo o mtodos que pueden manipular el estado de la obiect).
En un lenguaje basado en el procedimiento, como Fortran, COBOL, Pascal y C, grandes progiims ate dividido
en bloques funcionales ms simples y declaraciones. En un lenguaje orientado a objetos como Smalltalk, C++ o
Java, los grupos lgicos (tambin conocido como clases) se realizan primero. Cada grupo define los datos y los
mtodos de utilizacin de los datos. Un conjunto de estos grupos a continuacin ofrece un programa de aplicacin.
Cada grupo tiene campos de nivel de usuario interno para los datos y el

Conceptos de programacin y Programacin incrustada en C, C++ y Java

263
V __ /

Mtodos de procesamiento de los datos en estos campos. Cada grupo puede crear muchos objetos copiando el
grupo y hacerla funcional. Cada objeto es funcional. Cada objeto puede interactuar con otros objetos para procesar
los datos del usuario. El lenguaje proporciona para la formacin de las clases por la definicin de un grupo de
objetos que tienen atributos similares y un comportamiento comn. Una clase crea los objetos. Un objeto es una
instancia de una clase.

" 5.6 Programacin incrustada en C++


5.6.1 Ventajas de C++
C++ es un lenguaje OOP que, adems, apoya el procedimiento orientado a cdigos de C. Programa de codificacin
en C++ ofrece la ventaja de los cdigos de la programacin orientada a objetos, as como la ventaja de C y el
montaje en lnea. Conceptos de programacin integrado para la programacin en C++ son como sigue:
1. Una clase se une todas las funciones miembro juntos para crear objetos. Los objetos tendrn la asignacin
de memoria, as como las asignaciones por defecto para las variables que no se ha declarado
como static. Supongamos que cada software temporizador es un objeto. Se obtiene el recuento entrada
desde un reloj de tiempo real. Tiene un recuento de terminales valor despus de que se genera una
interrupcin de software. Es inicializado a un valor de recuento. Ahora considere los cdigos para una
clase de C++ RTCSWT. Una serie de objetos de temporizador de software pueden ser creados como las
instancias de RTCSWT. Cada instancia de RTCSWT pueden tener diferentes valores de actualidad,
recuentos de inicial y terminal, pero tiene los mismos mtodos para manipular el recuento.
2. Una clase puede derivar (heredar de otra clase tambin. Crear una clase secundaria de RTCSWT como
una clase principal crea una nueva aplicacin de la RTCSWT.
3. Los mtodos (funciones de C) pueden tener el mismo nombre en la clase heredada. Esto se
denomina sobrecarga del mtodo. Los mtodos pueden tener el mismo nombre, as como el mismo
nmero y tipo de argumentos en la clase heredada. Este mtodo se denomina sobre-caballo. Estas son las
dos caractersticas importantes que son extremadamente tiles en un gran programa.
4. Los operadores de C++ se pueden sobrecargar como mtodo de sobrecarga. Las declaraciones siguientes
muestran cmo los operadores ++ y ! Estn sobrecargados para realizar un conjunto de
operaciones.(lfsually el operador ++ se utiliza para postincrement y preincrement y ! El operador no se
usa para una operacin).

Const.OrderedList & el operador ++ (


) {Si (ListNow != null)
ListNow =
-> pNext ListNow;
*Este retorno;}
Int OrderedList & operador booleano ! ( ) const {retorno (ListNow !=
null)
(Java no soporta la sobrecarga de operadores, excepto para el operador 'plus', la cual es utilizada para la suma
y la concatenacin de cadenas).
Hay struct que enlaza todas las funciones miembro juntos en C. Pero una clase de C++ tiene caractersticas
de objeto. Puede ser extendido y clases secundarias pueden ser derivados de ella. Un nmero de clases secundarias
pueden obtenerse a partir de una clase comn. Esta caracterstica se denomina polimorfismo. Una clase puede
declararse como pblico o privado. Los datos y mtodos de acceso est restringido cuando se ha declarado una
clase privada. Struct no tiene estas caractersticas.

5.6.2 Desventajas de C++


Los cdigos del Programa vuelto prolongado, especialmente cuando las siguientes caractersticas del estndar de
C++ se utilizan.
I. Plantilla.

; 2641

2.
3.
4.
5.

Los sistemas integrados

La herencia mltiple (derivar una clase de muchos padres).


Manejo excepcional.
Las clases base virtuales.
Clases para 10 de los arroyos. [dos de las funciones de biblioteca son de estao (en caracteres) en)
y coul (personaje(s)) La clase Stream 1/0 biblioteca proporciona para los flujos de entrada y salida de
caracteres (bytes). Admite tubos, zcalos y caractersticas de administracin de archivos.

: .5.3 Optimizacin de cdigos en C++ incrustado de programas para eliminar las


desventajas
Cdigos del sistema integrado puede optimizarse cuando utiliza un lenguaje OOP por el siguiente
1. Declarar clases privadas de tantos como sea posible. Ayuda en la optimizacin de los cdigos generados.
2. Utilice int, char y boolean (tipos de datos escalares) en lugar de los objetos (tipos de datos de referencia)
como argumentos y usar variables locales tanto como sea factible.
3. Recuperar la memoria ya utilizados una vez cambiando la referencia a un objeto nulo.
Un compilador especial para un sistema integrado puede facilitar la desactivacin de funciones especficas
previstas en C++. Embedded C++ es una versin de C++ que prev una desactivacin selectiva de las caractersticas
antes mencionadas, a fin de (hat hay una menor sobrecarga en tiempo de ejecucin y menor biblioteca en tiempo de
ejecucin. Las soluciones para las funciones de la biblioteca estn disponibles y portado en C directamente. Las 10
funciones de biblioteca de stream en incrustado un compilador de C++ son tambin re
GNU C/C++ compiladores (llamado gcc) encuentra un amplio uso en C++ en el entorno integrado de desarrollo
de software. Embedded C++ es una nueva herramienta de programacin con un compilador que proporciona una
pequea biblioteca en tiempo de mn. Satisface las pequeas necesidades de RAM en tiempo de ejecucin, de manera
selectiva, de la configuracin de funciones, como plantilla, herencia mltiple, clase base virtual y as sucesivamente,
cuando hay una menor sobrecarga en tiempo de ejecucin y cuando menos la biblioteca en tiempo de ejecucin
utilizando soluciones disponibles. Elimina de forma selectiva (DE-configurado) caractersticas podran ser plantilla,
ejecutar
Un sistema incorporado de C++, el compilador ( gcc) es distinto de Diab compilador Diab datos. Tambin
proporciona el destino (Embedded System procesador) con optimizacin especfica de los cdigos. Las herramientas
de anlisis en tiempo de ejecucin compruebe el error en tiempo de ejecucin esperado y dar un perfil que sea
visualmente interactiva.
Embedded System utilizan los programadores de C++ debido a las caractersticas de la programacin orientada a
objetos de la reutilizacin del software, la posibilidad de ampliaciones, el polimorfismo, la funcin predominante
y sobrecarga junto con la portabilidad con los cdigos C y en

I'iiinfifirrw yinniniTiTwnmiiTtr iBiLUL1. i j iuiulhh, >j" ..utijnj i n H .UH.III. MI t i n i mur nr THI -I niinrnnTrTH muni

5,7

Programacin incrustada en JAVA

5.7.1 Conceptos bsicos de la programacin


Java
Programacin Java comienza a partir de la codificacin de las clases. Una clase tiene miembros. Un campo es como
una variable o estruc
En C. Un mtodo define las operaciones en los campos, similar a la funcin en C. El cuadro 5.3 resume el basic

! 265
1

Conceptos de programacin y Programacin incrustada en C, C++ y Java

Usos y la ejemplar utiliza. Los campos de instancia de la clase y los mtodos de instancia son los miembros, cuyas
nuevas instancias tambin se cre como cuando se crean los objetos de la clase. Es el nombre de una clase de
conjunto de cdigos que tiene un nmero de miembros - campos de datos (variables), los mtodos (funciones), y
as sucesivamente, de modo que los objetos pueden ser creados a partir de ella. Las operaciones se realizan en los
objetos al pasar los mensajes a objetos OOP. Cada clase es un grupo lgico con la identidad, el estado y el
comportamiento de las especificaciones. Para un aprendizaje en profundidad del lenguaje de programacin, los
lectores deben consultar los libros de texto estndar y hacer los ejercicios de prctica.
Cuadro 5.3 diversos elementos de un programa de Java

Programa Java
Elemento

Explicacin

Ejemplo(s) de su uso

Variable local una variable dentro de un bloque de cdigos se define dentro de


la
(for (int i = 0; int totalOfMarks
Llaves y tiene un alcance limitado.

= 0; i<5; i++) (totalOfMarks + =


subj ectMarks[i];); return
totlaOfMarks;). Aqu /' es la

variable local. La i no tienen


ningn mbito fuera del bucle
for.
FindTotalMarks ( ) {
); encontrar el mtodo

Ejemplo
Bloques de cdigo Java, lo cual les da un nombre, una
ToialMarks () ( ) tambin se
llamada
crear en objeto creado desde la
Mtodo
(invocacin) es realizado por otros cdigos Java que
clase.
tambin puede pasar
Cadena tele_number: Aqu, la
(transmitir) la necesaria referencia a los valores, parmetros
tele_number es un campo de
Y as sucesivamente.
instancia de la clase y tambin se
Instancia de un identificador de campo con un nombre y con ese nombre crear en los objetos creados a partir
un
de esa clase.
Declaracin se realiza en una clase Java. Tiene un defecto
Los sueldos de clase pblica { j
El valor y el campo est tambin presente en los objetos que
son
pblico mensual de flotacin
|
Las instancias de la clase.
Sueldo. totalSalary;

La clase
Una clase es una unidad estructural bsica en un Flotacin pblica
J
programa Java. Un
FindTotalSalary ( ) ( ); i
Clase consta de campos de datos y mtodos que operan sobre
J
Los campos. Una clase define un grupo de objetos con >
Public
Class
J
Atributos similares y el comportamiento comn y relacinLos buques. Una clase se utiliza para crear objetos como AccountDetails
sus instancias. extiende
BankDetails
La clase
Ha de instancia y mtodos y campos estticos.
AccountDetails heredarn los
La herencia de clases Java a los miembros cuando se hereda una clase Javamiembros
se extiende
de clase BankDetails.
A partir de una clase padre llama super clase. El heredado
Los campos de instancia y los mtodos pueden ser invalidados por
Redefinicin de ellos en clase extendida utilizando el mismo nombre,
Los argumentos y los tipos de argumento. Los mtodos pueden ser
Public Class AccountDetails
Sobrecargado por la redefinicin de ellos para diferentes nmeros o
extiende BankDetails
Tipos de argumentos.
implementa inters.!:ompu tat

Interface

Interfaz slo tiene los mtodos abstractos y el


me oris {...} .
Campos de datos esttico correspondiente y los mtodos no
En la interfaz de la aplicacin. Una clase Java que es
Interactuar con una interfaz implementa los mtodos abstractos
En la interfaz especificada.

(cont)

266 I
Yo

Los sistemas integrados

Elemento
de
Explicacin
Ejemplo! Si de su uso
programa Java
Tipos de datos La clase java utiliza los tipos de datos primitivos: byte (8- Byte portData; /* K bits de datos del
bil). corto (16-bit), ini (32 bits), largo (64 bits), float,
puerto */ breve cuenta.- /* datos de
double, char Unicode (16 bits). La clase java utiliza tipos conteo de 16 bits */ int num
de datos de referencia. Puede ser una referencia al tipo de Garrapatas;
clase en que hay grupos de campos y mtodos para operar /* 32-bit nmero de tics del reloj
en los campos. Una referencia puede ser el tipo de matriz */ cadena a.ccountNum. eMailid; /*
en la que existen grupos de objetos como elementos de la nmero de cuenta y su ID de correo
matriz.
electrnico como objetos de la clase
Excepcin
Java se ha incorporado en las clases de excepcin. Las
Java.lang.ArraylndexOutOf
String */
apariciones de condiciones excepcionales son manejadas BoundExceptions : 0 en addArray (....
cuando se produce la excepcin. Tambin es posible
Esto
genera
una
excepcin,
definir las condiciones de excepcin en un programa de javal.pulmn tiene un objeto del
modo que las excepciones son arrojados desde los cdigos paquete
java.lang,Throwable.
del bloque try y catch capturado por mtodo de excepcin Tambin
podemos
definir
.
excepciones try {..) catch (Exception
(Seccin 4.2.2).
el){ ) Finalmente! |: (Ejemplo 4.6).

5.7.2 Ventajas de programacin Java


Java tiene ventajas para programacin incrustada como sigue:
1. Java es totalmente un lenguaje OOP. Programa comienza con las clases de Java. Programa de Aplicacin
se compone de clases, interfaces y objetos.
2. Hay una enorme biblioteca de clases en la red que hace que el desarrollo del programa rpido.
3. Java tiene la extensibilidad.
4. Java tiene soporte integrado para la creacin de mltiples subprocesos. Es obvia la necesidad de un
planificador basado en sistemas operativos para el manejo de hilos.
5. Genera cdigos de bytes de Java. Estos se ejecutan en instalado una JVM (Java virtual machine) en una
mquina. La mquina virtual tiene los cdigos de bytes de Java en la entrada y se ejecuta en una plataforma
determinada (procesador, del sistema y del sistema operativo). [Virtual Machine (VM) en sistemas
integrados se almacena en la ROM.J Por lo tanto. Cdigos Java puede alojar en diversas plataformas. La
independencia de plataforma en acoger los cdigos compilados permitir Java para aplicaciones de red.
6. Independencia de plataforma ofrece portabilidad con respecto al procesador y sistema operativo utilizado.
Java es considerado como escribir una vez y ejecutar en cualquier lugar.
7. Java es el lenguaje de la mayora de las aplicaciones Web y permite a equipos de diferentes tipos para
comunicar en la Web.
8. Java es fcil de aprender por un programador de C++.
9. Java no permite la manipulacin del puntero de instrucciones. Por lo tanto, es robusto en el sentido de que
las fugas de memoria y errores relacionados con la memoria no ocurren. Se produce una prdida de
memoria, por ejemplo, al intentar escribir despus del final de una matriz acotado.
10. Java no permite la doble manipulacin de objetos por valor y referencia. No hay estructuras typedef, enum,
y europea. Java no permite la herencia mltiple. Java no permite la sobrecarga de operadores, excepto por
el signo utilizado para la concatenacin de cadenas.

5.7.3 Desventajas de Java


Java tiene las siguientes desventajas para programacin incrustada como sigue:

Conceptos de programacin y Programacin incrustada en C, C++ y Java

267

1. Como primer arco cdigos Java interpretado por la JVM que ejecuta comparativamente lentamente. Este
inconveniente puede superarse como sigue: cdigos de bytes de Java pueden ser convertidos a cdigos
de mquina nativo para una rpida ejecucin utilizando jList en titnc (compilacin JIT). Un acelerador
de Java (co-procesador) puede ser usado en el sistema para el ltimo cdigo a ejecutar.
2. Cdigos de bytes de Java que generan los neumticos necesitan una mayor memoria. Un sistema Java
incrustado puede necesitar un mnimo de 512 kB de ROM y 512 kB de RAM, debido a la necesidad de
instalar primero JVM y ejecutar la aplicacin.

5.7.4 J2ME
Uso de J2ME (Java 2 Micro Edition) o Tarjeta Java o Java integrada ayuda a reducir el tamao del cdigo a 8 kB
para las aplicaciones habituales como tarjeta inteligente. Cmo? Los siguientes son los mtodos.
1. Utilizar clases de ncleo nico. Clases para el entorno de tiempo de ejecucin bsico forman el formato
interno de VM y slo el Programmer's nuevas clases Java no estn en formato interno.
2. Proporcionar para configurar el entorno de tiempo de ejecucin. Ejemplos de configuracin
est eliminando el manejo de excepciones, clases de cargadores de clases definidas por el usuario,
archivo de clases, clases de AWT, sincronizar subprocesos, grupos de subprocesos, matrices
multidimensionales y larga, y los tipos de datos flotantes. Otros ejemplos de configuracin estn
aadiendo las clases especficas de datagramas, entrada, salida y arroyos para conexiones a red cuando
sea necesario.
3. Crear un objeto en un momento cuando se ejecutan varios subprocesos.
4. Reutilizar los objetos en lugar de utilizar un mayor nmero de objetos.
5. Utilice slo tipos escalares tanto como sea factible.
JavaCard, EmbeddedJava y J2ME son tres versiones de Java que generan un cdigo de tamao reducido.
J2ME proporciona el entorno de tiempo de ejecucin optimizado. En lugar de la utilizacin de los paquetes. J2ME
ofrece para los cdigos de las clases principales. Estos cdigos son almacenados en la memoria ROM del sistema
integrado. Proporciona dos configuraciones alternativas, connected device configuration (CDC), Connected
Limited Device Configurations (CLDC). CDC hereda algunas clases de los paquetes de red. seguridad, io,
reflexionar, security.cerl. texto, lext.resources. util, jar y zip. CLDC docs no proporcione los applets awt. Frijoles,
matemticas, net. rmi, seguridad y sol y texto en los paquetes java.lang. Hay un objeto javax.mireoedition.io
paquete en la configuracin CLDC. Un PDA (Personal Digital Assistant) o telfono mvil utiliza CDC y CLDC.
Hay scaleablc OS caracterstica en J2ME. Existe una nueva mquina virtual. KVM como una alternativa a la
JVM. Cuando se utiliza la KVM, el sistema necesita un 64 kB en lugar de 512 kB entorno en tiempo de ejecucin.
Las caractersticas KVM son como sigue:
1. El uso de los siguientes tipos de datos es opcional, (a) matrices multi-dimensionales, b) iong entero de 64
bits, y (c) los puntos flotantes.
2. Los errores son manejados por el Programa de las clases que heredan slo necesita unas cuantas clases
de control de errores desde el paquete I/O de java para las excepciones.
3. El uso de un conjunto de API (application program interfaces) en lugar de Jini. JINI es porttil. Pero en
el sistema incorporado de la ROM de la aplicacin ya ha portado y el usuario no lo cambie.
4. No hay verificacin de las clases. KVM presume las clases como ya validados.
5. No hay ningn objeto de la finalizacin. El recolector de elementos no utilizados no tienen tiempo para
realizar los cambios en el objeto/o finalbifjion.
6. La clase Loader no est disponible para el programa de usuario. La KVM proporciona el cargador.
7. Grupos de subprocesos no estn disponibles.
8. No hay ningn uso de java.lang.la reflexin. Por lo tanto, no hay interfaces que hacer la serializacin de
objetos, depuracin y perfilado.

268

Los sistemas integrados

J2ME no debe restringirse para configurar la JVM para limitar las clases. La aumentada puede l configuruiiun
hv profiler clases. Por ejemplo. MIDP (Mobile Information Device profiler profiler] es una clase para dispositivos
mviles. Un perfil define el apoyo ol'.hiva a una familia de dispositivos. El profiler es una capa entre la aplicacin
y la configuracin. Por ejemplo. Es entre CLDC y MIDP application. Entre el dispositivo y la configuracin, no es
un sistema operativo que es especfica para el dispositivo necesita.
Un dispositivo mvil de informacin tiene los siguientes.
1. Una pantalla tctil o un teclado.
2. Un mnimo de 96 x 54 pxeles de pantalla en color o monocroma.
3. Las redes inalmbricas.
4. Un mnimo de 32 kB de RAM 8 kB HHPRO.V1 o hash de datos y 128 kB de ROM.
5. MIDP us como PDA, telfonos mviles y localizadores.
Describir las clases de MIDP mostrar texto. Describe la conectividad de red. Por ejemplo. H TTP 11 nternet
Hyper Text Transfer Protocol ]. Proporciona soporte para pequeas bases de datos almacenados en la EEPROM o Flash
memory. Planifica las aplicaciones y es compatible con los temporizadores.

RMI (Remote Method Invocation) profiler Profiler es una ejemplar para su uso en entornos distribuidos.

' JavaCard.7.5 y Java integrada.


\ smart card (Seccin 1.10.4) es un circuito electrnico con una memoria y CPU o un circuito VLSI sintetizada. Es
empaquetado como una tarjeta de cajero automtico. Para las tarjetas inteligentes, es la tecnologa de tarjeta de
lava. {Consultelos http://www.java.sun.com/ productos/ javacard.) formatos internos para los entornos de tiempo
de ejecucin estn disponibles principalmente para las pocas clases en Java Card. Slo se puede ejecutar un applet
y cada applet es aptrida, lava las clases para conexiones, datagramas, entrada, salida y arroyos, la seguridad y la
criptografa proporcionan el medio ambiente.
No est restringido en el entorno de ejecucin. Una tarjeta inteligente utiliza una aplicacin simple.lavaCard.
La ventaja de la plataforma .lava independencia en cdigos de bytes es un activo. La tarjeta inteligente se conecta
a un servidor remoto. La tarjeta almacena el ltimo saldo de la cuenta de usuario y detalles de usuario para el
servidor remoto de forma encriptada la informacin formal. Se descifra y se comunica con el servidor, el usuario
necesita despus de identificar y certificar el usuario. Los cdigos intensivos para la compleja aplicacin se ejecute
en el servidor.
Para EmbeddedJava. Consulte lmp://www.sun.java.cum/embeddediava. Proporciona un entorno de ejecucin
integrado de cal y un exclusivo sistema cerrado. Cada mtodo, clase y ejecutar biblioteca-cal es opcional.
Los objetos Java obligar al Estado y comportamiento, y son instancias de una clase Java. EmbeddedJava es una
versin de Java, lo que hace ms sencillo el desarrollo programa grande por proporcionar completas
caractersticas de programacin orientada a objetos en Java. JViVl est configurado para minimizar los requisitos
de memoria en tiempo de ejecucin y los gastos generales en el sistema mosaico. Embedded System utilizan los
programadores Java en un gran nmero de clases disponibles para el 10 de arroyo, red y seguridad. Los programas
Java poseen la capacidad de ejecutar bajo permisos restringidos. Es una tecnologa JavaCard para las tarjetas
inteligentes y est basado en Java.

la programacin en lenguaje ensamblador, da los importantes beneficios de un control preciso de los


procesadores, dispositivos internos y un uso completo de las caractersticas especficas del procesador en
su conjunto de instrucciones y modos de direccionamiento.

Conceptos de programacin y Programacin incrustada en C, C++ y Java

Programa en un lenguaje de alto nivel da ihe imporiant beneficios del ciclo de desarrollo shorr lor un complejo sistema
y portabilidad a modificaciones de hardware del sistema. Que fcilmente se hace ms factible el desarrollo del
programa.
Soporte de lenguaje C para el montaje en lnea t fragmentos de cdigos en general) ofrece las ventajas de ambos.
El programa C utiliza diversos elementos de instruccin, directivas de preprocesador, macro y constantes, incluso de los
archivos de cdigo fuente y archivos de cabecera y las funciones. Elementos de programacin C bsica arc los tipos de
datos, estructuras de datos, modificadores, condicionales y bucles, llamadas a funciones, funciones mltiples, funcin
de colas y colas de rutina de servicio.
Bucle infinito es una caracterstica muy utilizado en sistemas embebidos, pues mantiene una tarea o un sistema listo para
su ejecucin cuando pasa un mensaje o sealado lo ejecute.
La funcin C argumentos pasan los valores de las variables, as como pasar una referencia a las funciones, punteros
punteros NULL y los punteros a funcin.
Cola es una importante estructura de datos utilizada en un programa. Los datos de la cola de estructura funciones
relacionadas son 'Construyendo' una cola, 'insertar' un clemente en ella. La eliminacin de un elemento de ella y la
"destruccin" de la cola. Una cola es una estructura de datos FIFO. Colas de bytes juegan un papel vital en una red de
comunicacin o comunicacin cliente-servidor tambin.
Colas de punteros a funcin en interrupciones y despus de llamar a las funciones de esta cola es un mejor enfoque
(modelo de programacin) que proporciona el uso de corto tiempo de ejecucin ISR.
Uso de 'stack' es muy frecuente para guardar los datos en el caso de interrupciones o llamadas a funciones. Slackfunciones relacionadas son: "construir" una pila, "empujando" un elemento en ella. apareciendo un elemento de ella y la
"destruccin" de la pila.
La 'lista' y prioridad-wise lista ordenada-funciones conexas estn construyendo' una lista, 'insertar' un elemento en ella,
encontrando una clemente por ella. La eliminacin de un clemente de ella y la "destruccin" de la lista. Una aplicacin
ejemplar es una lista de reloj de tiempo real software drivcn inlerrupts-temporizadores. Otra es la lista de tareas
preparadas para la programacin de las mltiples tareas.
C++ proporciona todas las ventajas de C como muro como OOP. Su cdigo puede reducirse mediante la optimizacin de
los cdigos generados como sigue: (a) declarar cuantas clases privadas como sea posible, (b) Con char,
INR y booleano (tipos de datos escalares) en lugar de objetos (tipos de datos de referencia) como argumentos y usar
variables locales en la medida de lo posible, c) la recuperacin de la memoria una vez utilizado ya por cambiar la
referencia a un objeto nulo, (d) de forma selectiva
- Java proporciona los beneficios de la amplia disponibilidad de bibliotecas de clases, modularidad, robustez, portabilidad y
la independencia de la plataforma. Es J2ME Java 2 Micro Edition, que configura y perfiles para los dispositivos
pequeos. Tarjeta Java y Java incrustado se utiliza en tarjetas inteligentes y pequeos dispositivos embebidos.

S&'Fieara)s sansw fiKsxxesrosr 1. "v

Keywords y
La clase

Las bibliotecas de clases

Tipo de datos
de estructura
de datos

Sir definiciones
Un llamado conjunto de cdigos que tiene un nmero de diputados, variables,
funciones, etc., de modo que los objetos pueden ser creados a partir de ella. Las
operaciones arco realizado en los objetos al pasar los mensajes de IHE objetos en
OOP. Cada clase define un grupo lgico con la identidad, el estado y el
comportamiento de las especificaciones.
Clases para una serie de aplicaciones, como excepcin, el cifrado, la seguridad,
puede ser proporcionada tras exhaustivas pruebas y depuracin para el uso de estos
en los requisitos. El uso de bibliotecas de clase acelera^rograma ciclo de desarrollo.
Una estructura multi-elemento que puede referenciarse por un nombre comn
(identidad).
Tipo de datos de una variable, por ejemplo, un entero, y en la que slo un conjunto
definido de operaciones que se pueden realizar.

J
Yo

J 27 i
Ciclo de desarrollo exception
handling

Foundation Classes cola


Funcin de archivo de
encabezado
Lenguaje de alto nivel

El montaje en lnea incluyen


archivos bucle infinito

10 Lista de corrientes
Variable local de optimizacin
de memoria.
Modularidad herencia
mltiple
NULL
Programacin orientada a
objetos :
Lista ordenada de pasar la
referencia

Los sistemas integrados

Un ciclo de codificacin, prueba y depuracin. Un nmero de ciclos pueden ser


necesarios antes de finalizar los cdigos fuente para portar en la ROM del sistema
integrado.
Una manera de llamar a las funciones para gestionar el desarrollo de una condicin
excepcional. Por ejemplo, incapaz de buffer para almacenar cualquier otro byte. Un
programador piensa de las condiciones excepcionales y proporciona las funciones y su
vocacin de ocurrencia (tirar! De la excepcin.
Clases significaba para GUI (e. g., button, checkbox, men y as sucesivamente).
Una cola de punteros a las funciones en espera de ejecucin posterior.
Archivo que contiene cdigos (principalmente funciones estndar) para el usuario. Por
ejemplo, un archivo "math.h" que contiene los ejes para las funciones matemticas.
Lenguaje de programacin en el que es ms fcil escribir los cdigos que en el lenguaje
ensamblador, y que tambin da a los importantes beneficios de corto ciclo de desarrollo
de un sistema complejo, OOP, tipos de datos y muchas caractersticas, tales como la
portabilidad a modificaciones de hardware del sistema.
Un fragmento de cdigo en lenguaje ensamblador, en un lenguaje de alto nivel que
ofrece las ventajas de las instrucciones especficas de cada procesador y modos de
direccionamiento.
Archivo que se incluye junto con el usuario antes de la compilacin del cdigo fuente
por el compilador.
Un bucle desde el programa que no puede salir, salvo en interrumpir o sobre un cambio
en algunos parmetros utilizados por l o en exigir que determinados parmetros o
mensaje o token a determinadas instrucciones en el bucle.
Un bfer de memoria creados por el envo de los bytes oi caracteres desde un origen a
un destino, de modo que el destino acta como un sumidero y acepta en el orden en
que se enviaron. Un objeto Stream 10 La escritura a un archivo o a una impresora o
a una cola o a un dispositivo de red.
Una estructura de datos en la que los elementos pueden ser insertados de forma
secuencial y se recuperan, no necesariamente en modo FIFO o LIFO. Cada elemento
tiene un puntero que seala a la direccin del siguiente elemento en la lista. ltimo
elemento apunta a NULL. Una parte superior (cabeza) puntero apunta a su primer
elemento.
Una variable definida dentro de una funcin que ninguna otra funcin puede utilizar o
modificar. Cambiar ciertos pasos para reducir la necesidad de memoria y tener un
cdigo compacto. Reduce el tamao total de la memoria necesaria. Puede tambin
reduce el nmero total de ciclos de CPU y, por lo tanto, las necesidades totales de
energa.
Un conjunto de cdigos se dice para ser modular si son utilizables en mltiples
aplicaciones. Una hija (clase derivada) hereda las funciones miembro de ms de una
clase.
Cuando un puntero apunta a NULL, significa que no hay ninguna referencia a la
memoria. La memoria ocupada por un elemento o un objeto o estructura de datos puede
ser liberada por apuntando a NULL.
Un mtodo de programacin en el cual en lugar de operaciones sobre los tipos de datos
y estructuras, variables y funciones como individuos, las operaciones se realizan en los
objetos. Una clase crea los objetos en C++ y Java.
Una prioridad-wise lista ordenada en la que es fcil eliminar operaciones (lectura y, a
continuacin, ajuste el puntero a la siguiente). Se realiza de forma secuencial,
comenzando desde la parte superior.
A partir de una funcin, una direccin del argumento de valor se pasa de la denominada
funcin de procesamiento cuando se transfieren a otra funcin de llamada. El llamado

i
Yo

Tp,

Conceptos de programacin y Programacin incrustada en C. C++ y Java

Pasando el valor

Independencia

de

plataforma Portable
Las

directivas

de

preprocesador
Private
Cola

Tipos

de

datos

de

referencia robustez

Biblioteca de tiempo
de ejecucin
Sobrecarga en tiempo
de ejecucin tipos de
datos escalares
Pila
El cdigo fuente de la plantilla de
la herramienta de ingeniera
Las clases base virtuales

271

Argumento de funcin pasa a ser modificado cuando se acciona la funcin y puede


tener un argumento diferente valor ai ter retorno desde la funcin de llamada. El valor
del argumento no guarda en la pila cuando eso pasa por su referencia.
A partir de una funcin, un valor es transferido a otra funcin, pero el mismo valor se
reasigna a la funcin original tras el retorno de la funcin llamada. Antes de pasar, los
valores del argumento guarda en la pila y recupera en la devolucin de la funcin.
Un cdigo que puede puerto en diferentes mquinas y sistemas operativos.
Un cdigo que puede ser portado en otro programa por cambios de configuracin
adecuado. Programa declaraciones y directrices para el compilador antes de la funcin
principal para incluir azulejos y definir la variable global, Global macro (seccin de
cdigo), el nuevo tipo de datos y constantes globales.
Una variable perteneciente a una clase especfica y no utilizable fuera de esa clase.
Una estructura de datos en los elementos que se pueden insertar y eliminar
secuencialmente en modo FIFO. Se necesitan dos punteros, uno para la cola cola
(Atrs) para la insercin y la otra para la cola cabeza (delantero) para su eliminacin
(lea y elija Siguiente elemento). Matriz y cadenas son ejemplos del tipo de datos de
referencia.
Un programa se dice ser slido si puede funcionar sin errores como desbordamiento
de pila y errores de falta de memoria. Evitar la manipulacin del puntero de
instrucciones, frecuentemente liberando la memoria si no es necesario ms tarde y con
excepciones, hacer un cdigo robusto. Una funcin de biblioteca que se vincula
dinmicamente en tiempo de ejecucin. Enlaces aumenta en tiempo de ejecucin en
tiempo de ejecucin y los gastos generales de los errores de memoria pueden surgir.
Uso de memoria RAM para los datos y la pila se denomina sobrecarga en tiempo de
ejecucin.
El carcter, entero, entero, nmeros de punto flotante, largo y doble son llamados tipos
de datos escalares. A diferencia de una matriz, datos constan de un solo elemento. Una
estructura de datos en la que los elementos pueden ser empujados por el ahorro en
determinados bloques de memoria y puede ser popped en modo LIFO. Se necesita un
puntero de la pila la cabeza (parte superior) para reventar (lectura y elija Siguiente
elemento) y empujando.
Una herramienta para disear los cdigos fuente y tambin para ayudar en la
depuracin y el anlisis del rendimiento de los cdigos de lenguajes de alto nivel.
Un conjunto de clases mediante el cual se construyen nuevas clases.
Un tipo especial de clase proporcionada en C++.

BBODMMiKanMnaRaBannm

Preguntas de repaso
1. Cules son los criterios por los que un lenguaje de programacin adecuado es elegido para el software integrado de un
sistema dado?
2. Cul es la caracterstica ms importante en C que se convierte en un popular lenguaje de alto nivel para un sistema
integrado?
3. Cul es la caracterstica ms importante en Java que hace que sea muy til un lenguaje de alto nivel,ns>r un sistema
incorporado en muchas aplicaciones relacionadas con la red?
4. Cul es la ventaja del polimorfismo, cuando la programacin con C++?
5. Por qu romper un programa en archivos de encabezado, archivos de configuracin, mdulos y funciones?
6. Disear una tabla para dar las caractersticas de diseo top-down y bottom-up el diseo de un programa.

272

Los sistemas integrados


J

7, |-\plain ihe importancia ol (l declaraciones siguientes: static, voltil e interrumpir en embedded C.


S, cmo y cundo son los siguientes utilizados en un programa en C? (a> # Definir (hi tvpcdcl (ci puntero nulo (d) pasando el
(el de referencia funcin recursiva.
Yo
Y mueren, cules son las ventajas de usar freeware. El compilador GNU C/C++?
10. Por qu necesita un compilador cruzado?
J
11. Whs Utilizar un bucle infinito en sistemas embebidos
Software?
\
\2. Qu SonEl Ventajas de re-entrant funciones en
EmbeddedSistemaSoftware ."
']
I Cules son las ventajas de utilizar varias llamadas de funcin en orden cclico en el principal?
4. Qu SonElVentajas de la construccin de ISK colas?
I 3. Qu SonEl
Ventajas de tener isr corto que
Crear la funcin ColasPara el procesamiento posterior a la cal?
J,
10. Cmo arc las colas utilizadas para una red?
Yo

Practice Exercises

Yo
17. Por qu las caractersticas de C++ que el cdigo largo cuando utilizando la plantilla, herencia mltiple (derivar una clase * de
muchos padres), manejo excepcional, clases base virtuales y 10 arroyos? Tabula los motivos.
IX Escribir un controlador de dispositivo para un puerto COM serial line en C incluido el montaje en lnea de cdigos.
19 Qu son las directivas de preprocesador ms utilizados? Dar cuatro ejemplos de cada uno de ellos.
-(/ Cmo el uso de una macro difieren de una funcin? Explicar con ejemplar} cdigos.
2i escribir el programa C cdigos para un bucle para sumar 10 enteros con ndices impares solamente. Cada entero es de 32
bits. Ahora desenrollar el bucle y escribir cdigos C de nuevo. Compare la longitud del cdigo en ambos casos.
22. Un sci de imgenes en un bastidor de v deo neumtico para ser procesados. Estructura de datos que sern ms
adecuados para almacenar las entradas antes de comprimir en un formal apropiada?
23. Cmo combinar dos funciones docs reducir ihc requiremciii memoria? Explicar con nuestros ejemplos.
2-1. Considerar (mentira formal de PEP (point-to-Point Protocol). Escribir un programa en C lo transmitir tramas de datos PPP encapsula
4()db daia bits. Arco de bits que se transmiten en una secuencia de nmeros enteros de 32 bits almacenados en la memoria como en
big-endian formal.
23. Dar dos ejemplos de programacin cada uno en un software incorporado, que emplea estructuras de datos: (a) matriz
(Bj cola pila (c) (d) (c) de la lista Lista ordenada (f) rbol binario.

- iJ'-.

,/B

Conceptos de
modelado de
programa

Yo

Yo

U
n

1. Dos modelos para los lenguajes de programacin


Procedimiento y programacin orientada a objetos
(OOP).
2. Procedimiento son ejemplos de lenguaje orientado a
Alp y
C. El LENGUAJE C proporciona funciones
y principales
C funcin define la primera funcin que se ejecuta y
Las dems funciones que se llaman desde el principal.
Funcin puede llamar a otra funcin. No se puede
El anidamiento de las llamadas de funcin. Tambin
puede haber varios
Llamadas de funciones dentro de una funcin. (Por
ejemplo, 5.12,
Seccin 5.4.7).
3. Elementos de programacin en el preprocesador de C
Directivas, modificadores, condicionales y
Bucles, punteros, llamadas a funciones, funciones
mltiples,
Los punteros a funcin, funcin y colas de ISR.
Programa
Utiliza datos de diversos tipos y con diversas
estructuras:
Matrices, colas, pilas, listas y rboles.
4. Lenguaje OOP son ejemplos de C++ y Java. C++ sup.
Puerto orientado a objetos as como orientada al
procedimiento
Los cdigos. Java es puramente orientado a objetos. Es
un objeto

Un

Yo

C
<1
Yo

.4 la prctica de diseo estndar aprobado por ingenieros es utilizar un modelo cuando


las soluciones a los problemas que se encontr. El sondeo de la programacin basada
en eventos, procesos concurrentes de programacin, la programacin secuencial y los
modelos de programacin OO del mineral que se utiliza con ms frecuencia. El objetivo
de este captulo es aprender los conceptos importantes do programa de modelado. Los
siguientes conceptos de modelado del programa son explicados.
1. Utilizando el modelo de flujo de datos y control de flujo de datos grfico grfico
de flujo de datos.
2. Modelo de la mquina de estado.
Un poderoso lenguaje de modelado UML est basado en el diseo orientado a
objetos. Satisface la necesidad de UML para un idioma unificado, que puede modelar
muchos tipos do procesos, clases, objetos, actividades, diseos y enfoques del proceso
de desarrollo. Tambin debera ser entendido. El objetivo de este captulo es aprender
el siguiente.
1. Elementos bsicos de UML.
2. Diagrama de UML.
Ejemplo de uso de modelado UML es una implementacin de software.
Embedded svstems pueden considerarse como sistemas modelo de procesamiento
concurrente con los procesos que se ejecutan simultneamente y los procesos pueden
requerir restricciones en tiempo real. Modelo de proceso concurrente y la comunicacin
programa
entre6.1
procesosLos
sernmodelos
descritas ende
el Captulo
7.
1. Mesas para eventos modelo: Seccin 5.4.5 explica este modelo por ejemplo 5.9
y el grfico 5.4. Hay mesas en bucle continuo para los eventos, variables de
estado, mensajes y seales usando el switch-case declaraciones.
2. Modelo de programa secuencial: Ejemplo 5.12. La seccin 5.4.7 dio un ejemplo
de modelo de programacin secuencial en la que existen mltiples llamadas a la
funcin secuencial dentro de una funcin. La seccin 5.4.9 Composicin dio otro
ejemplo de programa secuencial modelo en el que el ISR siempre corto perodo
desviaciones de la secuencia de ejecucin de cdigos cortos y envi los punteros
a funcin como mensajes insertados en la cola y luego las funciones ejecutadas
en orden FIFO.

Ejemplo 6.1.
La figura 6.1 muestra un programa secuencial modelo para ACVM (Seccin 1.5.2). Las
siguientes funciones se ejecutan en secuencia.
1. Activar la funcin get_user_input () para obtener la entrada para la eleccin del
chocolate del nio.
2. Activar la funcin read_monedas () para leer las monedas insertadas en el
ACVM por el costo de chocolate;
3. Activar la funcin entregar_chocoiate () para entregar el chocolate.
4. Activar la funcin display_gracias () para mostrar "Recopilar el buen
chocolate. Visite de nuevo!".

275

Conceptos de modelado de programa

Un
. ; function get _userJnput () ,
Ejecutar cdigo
Volver

A.

Llamadas de funcin
secuencial
Si bien () {
get_user_input ();
read_monedas ();
deliverchocolate ();
displaythanks ());

! La funcin read_monedas
() j ejecutar cdigo volver

\ N.

Funcin deiiver_chocolate ()
Ejecutar cdigo
Volver
Funcin displayjhanks ()
Ejecutar cdigo
Volver

Tiempo

Fig. 6.1 Modelo de programacin secuencial de un ACVM

3. Modelo de flujo de datos: Los datos grficos de flujo, abreviado como DFGs y controlar el flujo de datos
grficos, abreviado como CDFGs se utilizan para modelar las rutas de datos y flujos de programa de
software. Un programa es modelada como el manejo de las corrientes de datos de entrada y la creacin
de flujos de datos de salida. Los modelos basados en el concepto de modelo de flujo de datos se describen
en la seccin 6.2.
4. Modelo de la mquina de estado: un modelo de programacin es que existen diferentes estados y el
modelo considera un sistema como una mquina, que est produciendo los estados. Ejemplo 5.9 considera
estados diferentes, que tienen diferentes mens mostrados y el programa accin depende del estado.
Programa secuencialmente encuestados para el estado de la pantalla y la opcin de men seleccionada
por el usuario. Ejemplo 3.6 demostr cmo una clave
Marc 5 puede producir pulsando estados diferentes (0. 5). (I. 5). (i, j) ............ La transicin de una llave
Ocurre si se pulsa de nuevo dentro de un intervalo. El estado de la tecla sufre en forma cclica como:
(1.5) - " ( I . J ) - " ( i , k ) -> ( I . I ) -> (I, 5 ) -> (1. j). Los modelos basados en el concepto de la mquina
de estado se pronunciar en ser descrito en la seccin 6.3.
5. Procesos concurrentes y comunicacin interproceso modelo: un modelo de programacin es que hay
varias tareas simultneas (o procesos o subprocesos) y cada tarea tiene los cdigos secuenciales en bucle
infinito. Una tarea enva un mensaje o una seal para otra tarea. Un ttisk, que obtiene un mensaje o una
seal, y ejecuta las tareas restantes permanecen en el estado bloqueado. Ejemplo 5.8 dio la ejemplar
cdigos. Ejemplo 6.2 da el proceso simultneo de programas basados en el modelo para el programa
secuencial modelo en el Ejemplo 6.1. El modelo de procesos concurrentes, tareas o subprocesos y la
comunicacin entre procesos entre los procesos concurrentes sern descritos en detalle en el Captulo 7.

Ejemplo 6.2
La figura 6.2 muestra un programa modelo basado en la e j e c u c i n s i m u l t n e a de l os procesos en el
ACVM
(Seccin 1.10.2). Supongamos que el programa consta de los siguientes procesos, que pueden ejecutarse
simultneamente.
1. Process get_user_input () para obtener la entrada para la eleccin de chocolate de el nio y la
sealizacin para procesar read_monedas inicio.
2. Proceso_reacl monedas () espera una seal get_user_input () e iniciar la lectura de la seal de lectura
de las monedas insertadas en el ACVM por el costo de chocolate. Puesto una seal para procesar
chocolate entregar para iniciar y tambin una seal al proceso post display_wait () para empezar.

Los sistemas integrados

Concurrent
Crear procesos

Crear el proceso
Get_user_input;
Crear proceso de lectura
monedas

0.
Crear el proceso
Entregar_chocolate ();
Crear el proceso
Displayjhanks ();
Crear el proceso
Display_wait();)

)
- L a s f l e c h a s muestran
inter-proceso
Comunicaciones

Fig. 6.2 Modelo del programa de procesamiento concurrente de ACVM

3. Proceso entregar_chocolate ( ) esperar seal de read_monedas ( ) y comienza a enviar el chocolate y


enve una seal para mostrar_gracias ( ) para iniciar.
4. Visualizacin de proceso_wait ( ) espera la seal de reacLcoins () y comienza a mostrar "Espere
unos momentos!' y, a continuacin, espere la seal para mostrar_gracias ().
5. Visualizacin de proceso_gracias ( ) espera entregar delantero seal_chocolate ( ) y de
display_wait ( ) y comienza a mostrar "Recopilar el buen chocolate. Visite de nuevo!".
6. Modelo de programacin orientada a objetos: lenguaje orientado a objetos se utiliza para las siguientes
funciones:
(a) Cuando hay una necesidad para la reutilizacin de la definicin, el objeto o conjunto de objetos que
son comunes dentro de un programa o entre varias aplicaciones: cuando hay mucha abstraccin y
cuando, mediante la definicin de objetos por herencia y polymorphs, se pueden crear nuevos objetos.
Hay encapsulacin de datos dentro de un objeto.
(b) Un objeto se caracteriza por su identidad (una referencia a lo que mantiene su estado y
comportamiento), por su estado (sus datos, propiedades, campos y atributos) y por su comportamiento
(operaciones, mtodo o mtodos que pueden manipular el rancio del objeto).
(c) Definir el grupo relacionados lgicamente hace una clase. Clase detines la pizarra y comportamiento.
Tiene campos de nivel de usuario interno para su estado y comportamiento. Define los mtodos de
procesamiento de los campos.
(d) Los objetos se crean a partir de las instancias de una clase. Una clase puede crear muchos objetos
por ftcopiando el grupo y hacerla funcional. Cada objeto es funcional. Cada objeto
puede '' interactuar con otros objetos para procesar los estados segn las define el comportamiento.
Un conjunto de clases y sus objetos, entonces da aplicacin-programa.

Ejemplo 6.3
Este ejemplo da un objeto basado en el modelo en lugar del modelo de programa secuencial ACVM y procesos
concurrentes modelo basado en ejemplos dados en 6.1 y 6.2, respectivamente. La figura 6.3 muestra las clases
y objetos,

Conceptos de modelado de programa

277

Caractersticas de la interfaz y de la herencia y en un programa modelo


basado en el ACVM (Seccin 1.10.2). El
Pueden ser las siguientes clases y objetos.
1. Clase de grfico GUI para la interaccin del usuario. Tiene dos
mtodos display_mer.u ( ) y
Get_user_entrada ( ) y para la obtencin de insumos para la eleccin
del chocolate del nio. Tiene
El mtodo set_choi.ce ( ) para ajustar la opcin seleccionada.
2. La clase Read_monedas () para la lectura de las monedas insertadas.
Tiene un mtodo de lectura ( ), para leer uno, dos y
Rupia de cinco monedas de tres puertos y un mtodo sum ( ) para sumar
el total de monedas.
3. Entregar
clase_chocolate. Tiene los
mtodos get_eleccin ()togetthechoiceanddeliver
( ) para la entrega del chocolate.

4. Clase MsgDisplay. Se dispone de mtodos display_wait ( ) y mostrar_gracias


( )
Mostrar esperar y gracias a mensajes.
utiliza para crear objetos GUI ;tiene varias instancias de la GUI. Se utiliza la clase
MsgDisplay
Para crear objetos de visualizacin de mensajes como mltiples instancias de esperar y gracias
mensajes. Clase MsgDisplay
Puede interactuar con una interfaz screen_size ( ). Que tiene un mtodo abstracto screen_size
GUI de clase se

( ).
El mtodo abstracto screen_size ( ) est implementado en la clase MsgDisplay
Ampliar
la categora
MsgDisplay puede
especificar
una

nueva clase
MsgTime_Display. Clase extendida
MsgTime_Display
todos
los atributos
y mtodos
la clase
MsgDisplay.
han la UMI.
UML es el lenguaje de hereda
modelado
basado
en el modelo
orientadodea objetos
de mosaico.
La SeccinClase
6.5 describe

ampliado
Otro mtodo display_time_fecha ( 1 para la visualizacin de fecha y hora tambin con cada mensaje.
Extended
6.2 Modelos DFG
Clase de interfaz interfaz can set_display._perodo. MsgTime_Pantalla ahora aplicar el
El mtodode
set_display_perodo
( ) para establecer perodo de exhibicin de i o 2 minutos de
Grfico
flujo de datos -5,2.1
gracias y esperar los mensajes.
En el
enfoque
orientado
a lacmo
objetaron,
existe
la reutilizacin
de
Una forma
de datos
significa
que un programa
y todos los pasos
de ejecucin
del programa se determinan
objetos definidos
de GUI
un conjunto
de objetos
especficamente
slo por los datos.
El ydiseador
de software
predetermina la entradas de datos y disea los pasos
son comunes
dentro
de de
un datos.
programa
o entre
las muchas
aplicaciones
deQue
programacin
para generar
la salida
Por ejemplo,
un programa
para hallar
un promedio de las
son creadas.
Tambin
tenemos
resumen
calificaciones
en varios
temas tendr
las entradas
de datos de los grados y la salida de datos del aveivge. El
Mtodos.
screen_size
( ).
Y set_display_periodo
se apropiado
definenpara
enmodelar
el
programa
ejecuta
una funcin para
generar
la salida adecuada. La DFGque
modelo
el
interlaces
pero J
programa
de la media.
Implementado
eldeentrelazado
de las
clases.
Hay herencia
Cmo funciona elen
flujo
datos en un programa?
Datos
que se introducen
despus deen
las los
operaciones de
objetos
nuevos,
que son
por de un flujo de datos. Un diagrama llamado la DFG
datos
se convierte
en el programa
quecreados
se emite despus
Extendiendo
la clase
MsgDisplay.
Hay encapsulacin
de tiene
mtodos
representa
grficamente.
La DFG no
tiene ninguna condicin
para que el programa
un puntoy de entrada de
atributos
desalida.data.
la clase
datos
y un punto de
Slo hay un camino independiente para el flujo del programa cuando se ejecuta
el Contra
programa. objetos.
Cada crculo representa un proceso en el DFG. Una flecha dirigida hacia el crculo representa la entrada de
datos (o conjunto de insumos) y una flecha procedentes del crculo representa una salida de datos (ora conjunto
de salidas). Entrada de datos

Los sistemas integrados

A lo largo de un borde de entrada est considerado como testigo. Un borde inpul tiene al menos un token. El
crculo representa el nodo. El nodo se dice para ser disparadas por los tokens de todos los bordes de entrada. La
salida es considerado por el saliente tokens, los cuales son producidos por el nodo en el disparo.
Clase GUI
Bytes sin signo [ J: keycode
Cadena: char [ J;
Cadena: Menultems;
Menultems: StrLinel.
StrLine2, StrLine3, StrLine4;
Color: textLineColor,
cursorTextLineColor,
screenBackgroundColor;
Cursor: Lnea, coloredBar;
Display_men ();
get_user_input
(): set_eleccin
(); enterClick ();

Clase MsgDisplay

La clase Read_Monedas

Cadena: char (J;


cadena:
Msgltemsl,
StrLinel,
Msgltems2,
StrLine2;
Color:
textLineColor;

Bytes sin signo [


]:
CoinAmount
ReadCoin ();
Sum ();
La clase
Deliverchocolate

Resumen de pantalla
();
tamao_set_display_
perodo ();

Get_eleccin
();
Entregar ();

Read_port:
read_Monedas
CoinAmount: coinl,
una moneda, una
moneda de 2 5

MsgDisplay
displayThanks:
MsgDisplay
displayWait:
GUI de
clase

I --Yo
Clase_GUI_User ACVM Clase J J_GUI_Owner ACVM
Clase MsgDisplay !

F
La clase
Display_time_date

1'

La clase j Userjnputs |

Fig. 6.3 Clases, objetos, herencia y caractersticas de la interfaz basada en el modelo OOP programa ACVM

Cuando slo hay un conjunto de valores de cada una de las entradas y slo un conjunto de valores de las salidas
para la entrada, el DFG es tambin conocido como el acrlico ADFG (grfico de flujo de datos). Todas las entradas
estn disponibles instantneamente en APDFG. Ejemplos de no-acrlico de entrada de datos son los siguientes: (i)
un evento; (ii) un valor de indicador de estado en un dispositivo y (iii) como entrada por condicin de salida del
proceso anterior.
Ejemplo 6.4 da un DFG durante un algoritmo DSP.

Ejemplo 6.4
La figura 6.4 muestra un DFG de la siguiente expresin para una secuencia de salida y6 de una "respuesta de
impulso finito (FIR) filtro'. Un n-simo secuencia de salida filtrada, y"=Z (a;.xM) donde la suma est hecha para i
= 0, 1, 2,..., N-I.] Figura 6.4(a) muestra la DFG para un proceso de la sexta FIR y secuencia de la Figura 6.4(b)
muestra la DFG para un conjunto de procesos de la misma secuencia. Los siguientes son los puntos notables
durante el proceso de clculo y6 = a^Xg + a.x5 + A2.x4 +A3.x3 + A4.x2 + A5.x +A6.x6.

Conceptos de modelado de programa

279

I. Hay un punto de entrada para el proceso representado por el crculo para calcular y6.
?.. Hay un punto de salida para y6.
3. Slo hay una direccin de memoria y variable cada coeficiente de Tor y cada entrada de llenado.
All
Es slo un valor para cada una de las seis entradas para x y hay un solo valor de cada uno de los
Los coeficientes, una. (DFG es, por tanto, tambin la ADFG).
El orden en que las entradas son obtenidas y la suma se realiza tambin es irrelevante.

Fig. 6.4 (a) Grfico de flujo de datos (DFG) de un proceso para la sexta de respuesta de impulso finito (FIR) D F G d e
s ec uenc ia ( B ) par a un c onjunt o de pr oc es os de la m is ma s ec uenc ia par a un f ilt r o F IR
c on 6 ent r adas y 6 c oef ic ient es

Debe sealarse de ejemplo 6.4 que no hay complejidad en el proceso de y6. Modelos DFG ayuda en un simple
cdigo de diseo. Un simple cdigo de diseo puede ser definida como aquella en la que el programa se divide
en DFGs principalmente. La DFG modelos elemento de programa fundamental tener un camino independiente.
Se da esa unidad de un sistema que no tiene condiciones de control y, por tanto, una sola ruta para el flujo del
programa. El programa da una unidad de contexto y ayuda en el anlisis de un programa en trminos de
complejidad. Un programa ms complejo tendra un nmero inferior de DFG procesos que un simple programa.
La figura 6.5 muestra un programa modelo para la DFG para guardar una imagen de una cmara digital.
Tarea de estado
del marco de
lectura y los datos
de todos
los pxeles x e y
de la imagen el
rea del bastidor y
ONU-columnas
expuestas a coprocesador CCD

Tarea para
guardar los
datos de
pxeles en un
frame buffer
de memoria

CCD co

T
Tarea de
compresin
JPEG

su
Los datos escaneados de ADC
Fig. 6.5 Modelo para DFG programa para guardar una imagen de una cmara digital

280

Los sistemas integrados

Grados programa modelo traduce y ejecuta como un nico-pa'ce" programa modelo secuencial. Un programa
se ejecuta como por morir (mensaje o evento de entrada o conjunto ol c\padres> y la entrada determina la salida.
Aplicacin de software se simplifica enormemente cuando se utiliza el formato jpg porque en la DFG modelo,
existe un nico punto de entrada de datos y un nico punto de datos, con un proceso o conjunto de procesos que
estn representados por circletsj. Tareas de programacin se simplifica mediante la representacin de la cotie
para cada proceso mediante un crculo, utilizando la entrada de datos de flecha entrante(s) y la generacin de la
salida de datos a lo largo de flecha saliente(s|. Cuando la asignacin a una entrada en un lixed DFG. tambin se
llama ADFG. Complejidad de programacin es minimizada por un programa de modelado en trminos ol DFGs
tantos como sea posible, y el uso de tantas ADFGs como sea posible.

6.2.2 Control modelo DFG


Un lio de control\\ significa que slo especficamente el programa determina todos los pasos de ejecucin del
programa y la forma de un programa. El diseador de software y programas predetermina estos pasos. Cmo
disear un proceso que incorpora controles para la toma de decisiones durante las operaciones de datos y datos
tcnicos en un programa? Un proceso puede cinco las declaraciones que controlan las entradas o salidas. Puede tener
bucles o sentencias de condiciones entre recordar (seccin 5.4.5). Los datos que se generan los datos de entrada
salida despus de un control de datos Modo segn las condiciones de control. Gutput(s) depende de las sentencias
de control para diversas decisiones en un proceso. El CDFG es un diagrama que representa grficamente las
condiciones y el flujo del programa a lo largo de una ruta dependiente de la condicin.
El CDFG diagrama tambin representa el efecto de los eventos entre los procesa y muestra los procesos que estn
activados en cada evento. Aqu, el valor de una variable cambia por encima de un lmite .o por debajo de un lmite
o caer dentro de un rango es tambin como un evento que activa un determinado proceso.
Un crculo tambin representa cada proceso (denominado nodo) en un CDFG. Una flecha dirigida hacia el
crculo representa la entrada de datos (o conjunto de insumos) y una flecha dirigida desde el crculo representa una
salida de datos (o un conjunto de pulso de salida). Una caja t cuadrado o rectngulo con su diagonal ejes hori/omul
y \ ertical i puede representar una condicin, por ejemplo, en la Figura 6.6(a). Alternativamente, una condicin
puede ser marcado (o denotado) en el stari del dirigido ai i o la flecha. Una flecha dirigida desde el cuadro o una
marcada condicin inicial determina la accin a ser tomada wuen la condicin es verdadera.

smmpie 6.S
La figura 6.6(a) Se muestra el control de entrada (decisin) nodos por la condicin de prueba especificando las
cajas y las entradas de datos a un CDFG para un filtro FIR con 10 entradas y 10 coeficientes |recordar Ejemplo
6.4 para los significados de varios trminos en el n-simo secuencia de salida filtrada. Y" = lUVX,,., K donde la
suma est hecha para i = 0. 1.2. .. .. 9|. Los siguientes son los puntos notables durante el proceso de clculo y".
Hay un punto de entrada para el proceso representado por el crculo para calcular yn.
1. Hay un punto de salida para y6. Slo hay una direccin de memoria y variable para cada coeficiente y
cada filtro de entrada. Estas son las variables, i n, s, e, que tienen varios valores durante el flujo del
programa.
2. El orden en que los insumos se obtienen y sumatoria se realiza docs asunto.
Figura 6.6(b) Se muestra el control de entrada en el In_A_Out_B Programa de ejemplos 4.1 y 4.2. Aqu, en
lugar de cajas, el estado est marcado en el inicio del arco.
/
Hay mayor programcomplexity en el proceso para yn el CDFG modelo ayuda a comprender Jj todas las
condiciones y en la determinacin del nmero de caminos que un programa puede tener. Tambin nos muestra que
el ml software debe ser probado para cada ruta comenzando desde un nodo de decisin y ayuda a analizar
el Jgi programa en trminos de complejidad.
Jw

281 i

Conceptos de modelado de programa

( 'I )l (; IIN .del prngram traduce coneurrenl ami se ejecuta como un programa modelo de proceso. Una decisin
controlado segn el mensaje o evento o conjunto de eventos determinar, que el proceso para ejecutar en una
instancia.

Interrumpir un
puerto del sistema ;
Habilitar
Interrumpir ;
No Enmascarada
Leer
V 6Y!e
en
Un puerto--i
interrumpir % Un
puerto
En
Cola

/ Ejecutar \
Funciones , (ii)
IO(v) j

(b)

T ig. &.S (a) entradas de datos y control (decisin) nodos de entrada mostrada por cajas de prueba en un control
Grfico de flujo de datos para un filtro de respuesta de impulso finito con 10 entradas y 10
coeficientes (b) condiciones de entrada Controliing marcados en la LN_A_Out_B programas en los
ejemplos 4.1 y 4.2 (en lugar de un cuadro, la afeccin se caracteriza por el inicio de un arco)
Softw son la aplicacin resulta simplificado cuando el uso de las especificaciones de las condiciones y la
decisin nodos en el CDFGs que representan la decisin controlado en los nodos, y el programa de caminos
(DFGs) que son atravesados por consiguiente de los nodos despus de la toma de decisiones.

Grfico AOifif (SDR3;


Cuando el nmero de fichas de neumticos (insumos) necesarios para un clculo para generar tokens ms (salidas)
en un solo disparo, los datos cmo se dice para ser sncrona. El modelo SDFG es como sigue. |Consulte E. A. Lee
y D. G. Mosserschmitt. 'Static programacin de flujo de datos sincrnica". IEEE Transactions on
Computers. Febrero de 1987. | Deja un arco representan una mantequilla en memoria fsica. El arco puede contener
uno o ms fichas iniciales con los retrasos. Un token no dispara los clculos en un vrtice hasta que se recibe en
el vrtice. Los vrtices (crculos) en este grfico se llama tiie actores. Actores hacer los clculos. Un actor
representa tambin una completa DFG dentro de s mismo. Un borde entre los vrtices (arcos con una flecha
para,la di^ction) representa una cola de valores de salida a partir de un vrtice y una cola de valores de entrada a
otro vrtice. Bordes llevar los valores de una estrella a otra.
Deje que X e Y son dos conjuntos de instrucciones que una vez disparado (iniciado), no necesita ms entradas
desde cualquier fuente din ing computaciones de mosaico. Llamaremos X generar los valores de salida
(fichas/datos) a, b y c. Vamos y obtener los valores de entrada (fichas/datos)., c. i y j y le tengo un retraso. El
nmero de entradas a y no necesitan la igualdad

282

Los sistemas integrados

El IHE nmero de salidas de X. Y obtiene las entradas adicionales y no necesita todas las salidas de X.
Estos clculos y los datos estn modelados por DEC dirigido! Que existe de X a Y. l iie nmero de
Y las entradas estn etiquetados ouiputs cerca del arco origen y fin. La figura 6.7 muestra los actores (veiliees que
hace.
Los clculos para el despido) y ares en grafo orientado entre X e Y. La figura muestra las salidas a, b y c
Y las entradas a, c. i y j. La i es con un retraso (dot). El punto de un arco representa el primer loken(s) en un SDFG
Modelo. A continuacin, un token inicial tambin pueden representar un retraso que es demostrado por un punto
en los bordes del SDFG. Si no
Es ms que un token inicial el nmero de fichas iniciales son mencionados en elLos
punto
(Figura
6.7).
Laeli clculo
yj
vrtices
(Acton)
para
Los tokens para el vrtice inicial y en la Figura 6.7 muestran que i tiene un retraso.
(b, c).
(a. c), i),
Un nmero de vrtices pueden estar presentes en un sistema.
j).
Todos
3
4/
\
Los clculos son estticas programadas en SDFG ejecucin en
cada
Vrtice (disparando elementos para los clculos y la creacin de
Fig. 6.7 Actores y arcos en un dir
Un conjunto
modelo SDFG
es como
DFG,Modelo
pero tambin
los
Otro
de tokens
de un
salida).
SDFGmodela
programa
retrasos
como
traduce
el nmero
de entradas
y salidas. Los bordes dirigidos
EnAs
un como
programa
de modelo
secuencial.
Al crculo puede suponer tener un buffer de memoria fsica
Y hasta que el buffer tiene los datos, los clculos no fuego.

6.3

Modelos de programacin para la mquina de estado ' flujo de


programa controlada por evento

Una mquina de pizarra es un modelo en el que se supone que hay Estados y funciones de transicin obsoletos, que
producen los estados. Una transicin de estado se trata de una funcin que cambia de un estado a su prximo estado.

Ejemplo 6,6
(a) Sistema de telfono inactivo, recibir un anillo, marcacin conectado e intercambiar mensajes. Hay
cinco nmero finito de estados.
(b) Estudiar los estados de un temporizador en estado de ejecucin. La figura 6.8 muestra los estados de
temporizador por crculos y transicin de estado por flechas. El conteo de entrada es la entrada de reloj.
El cambio de valor de recuento es la salida. La funcin de salida es el incremento en el valor del recuento.
La funcin de transicin de estado es el time-out en el desborde cuando un determinado nmero de
entradas de recuento son alcanzados. Un ahora son ms finos tiene cuatro estados finitos: 'Reposo', 'Start',
'Running' y 'Terminado'.
1. Estado de 'Reposo' se inicia la transicin del estado de carga de una entrada, numTicks (nmero de
garrapatas despus de que el temporizador termine).
2. 'Running' estado: en cada entrada de reloj para disminuir el valor de recuento disminuye.
3. 'Finalizar' ESTADO: programa pasa al estado finalizado. Esto es cuando el recuento alcanza el valor
0.
(c) Una tarea tiene cuatro estados finitos-irf/e, listo, en ejecucin y terminado [Figura 6.9(a)). Para la salida
de un Estado, que se convierte en la entrada al siguiente estado, tokens (insumos) desde el planificador
est listo bandera y pabelln de bloque. Los tokens (salidas) para el planificador ejecuta bandera,
bloquearon la bandera y la marca de final.

Conceptos de modelado de programa

1283 I

1. Un 'loco' obsoletos a los 'ready' pizarra transicin ocurre cuando el RTOS programar esta tarea
enviando un token (mensaje). La salida de este estado consiste en guardar el contexto planificador
en el planificador pila.
2. El 'Running' ha caducado instrucciones que se ejecutan y el PC cambia continuamente segn el
flujo del programa.
3. Fluye hacia el programa 'blockedstale' cuando el planificador se anticipe una tarea. Enva un
mensaje (token) para la tarea. La salida de este estado se compone de ahorro de la tarea en el
contexto de pila de tarea.
4. El flujo del programa a la pizarra 'Running' de nuevo se produce en un token desde el planificador
y despus de reintento ving los valores de la pila.
5. El flujo hacia el estado 'finish' ocurre cuando la instruccin llega a la etapa final. La salida es
Un mensaje para el planificador.
Jj
6. El flujo hacia el estado 'READY' en lugar de estado finalizado" ocurre cuando las tareas se
encuentran en un jj
Bucle de espera infinita.
Mi
1. El flujo al estado inactivo" ocurre cuando un mensaje es enviado por el planificador de tareas de
la IM y se elimina la tarea delante de la lista.
Mf
Cuando un sistema se modela como la
Idle Timer
Temporizador Temporizador funcionando
decremento Inicio
stales
Entrada de carga ^
|ntroduccin
___
Y la mquina de estado? Con frecuencia,
NumTicks '-'.
Evento
hay
Salida
Salida
Count = NumTicks
Entradas para un programa que cambie el
Count = Countrancio
1 decremento
De los sistemas a un nuevo estado, y
Evento de entrada Cuando Count = 1
generar
Recuent
Salidas, que pueden ser tambin los
o de salida = 0
= indicador de Establecer
insumos para
tiempo de
La siguiente pizarra. Ahora puede Fig. 6.8 Statesofatimerusingfinitestatesmachinemodel
espera
suponerse que
En un modelo del funcionamiento del
programa
Y su flujo puede ser considerado como
funcionando
6.3.1 Mquina de estados finitos (FSM) Modelo
De una mquina generadora de los estados.
Modelo FSM afirma que hay un nmero finito de estados posibles en un sistema y un sistema slo puede existir
El
en uno de cmo
estos estados
instancia. Figura 6.8 mostraron los estados modelada como FSM de un
Programa
puede en
serunamodelada
temporizadorpor
ya que hay un nmero finito de estados de temporizador. La figura 6.9(a) muestra cmo los estados
simplemente
de una tarea interestatal
puede ser modelada
Transiciones
(desde un como
rancioun
a FSM (consulte la seccin 7.3 para comprender el concepto de una
tarea).aFigura
muestra la
FSM unidos
Otro)
partir 6.9(b)
de la prxima
transicin
de en un programa modelo de un ACVM. No puede haber transicin
del estado actual al siguiente estado, la cual depende de los insumos y la funcin de transicin de estado. Un
estadoconjunto de(Moore)
salidas orepresenLs
un estado
en el modelo
de Moore
y un conjunto de productos representan una
Funciones
siguiente modelo
de transicin
de salida
Mealy-funciones
transicin de estado en el Mealy modelo.
(modelo),
un crculo
representan
un estado
y deje un
dirigido
(o,:bn anrftw)
Las Dejar
subsecciones
siguientes
se describe
el modelo
dearco
mquina
de estado
finito. representan el flujo del
programa a partir de un estado a otro. Al modelar un proceso como el FSM, el diseador de software especifica
lo siguiente para cada estado.
1. El estado de uno de los un nmero finito de estados.
2. Conjunto finito de insumos (tokens o banderas de evento o estado banderas) con sus valores para el
estado.

284

Los sistemas integrados

La tarea del Planificador de tareas desde ralentLa


listoejecucin de la tarea
Ejecutar pabelln conjunto = ^Bandera listo
.

//

-J

Guardado en flojas o redefinir


Puntero de pila y registrar
Ventana

Task-Blocked

Task-Running

Restauraciones
desde
Pila o redefinir
Puntero de pila y
Ventana de
registro
Entrada de

___
seal
Tarea
Get_user_input

Reemplazado por.
Mayor prioridad
Tarea

; <5
I como tc
! O)
O)
: ro J9
I d u<F d
u cutzzsSE
CO

Bandera bloqueado =
restablecer indicador
Running = Ajuste

(a)
Entrega de seal ____
Tarea
Entregar_chocolate)

0.

La tarea \
Displayjhanks t
Las flechas indican las transiciones de estado a
estado siguiente en una seal de interrupcin de
software para la transicin (b)

5.9

(a) los Estados de la mquina de estados finitos (FSM) de una tarea en un programa muiti-tasking (b)
FSM unidos en un programa modelo de un ACVM

3. Acciones finito (p. ej. los clculos) durante el estado y el conjunto finito de salidas con sus posibles valores
(o tokens o evento banderas o marcas de estado) y una salida (accin) funcin para el estado que da las
salidas.
4. Funcin de transiciones de estado para cada estado para pasar al siguiente estado.
Los pasos que modelo o representan los estados y transiciones interestatal en FSM ruta de datos son como
sigue.
1. Una transicin a un nuevo estado se produce desde el estado anterior en un evento (entrada). El evento se
puede establecer un valor de un determinado parmetro o el resultado de la ejecucin de ciertos cdigos.
Una transicin puede ser impulsada por la bandera de interrupcin (tras una bandera establece) impulsada
por el semforo o fuente de interrupcin o necesidad de mantenimiento de unidad.
2. Un estado puede recibir varios tokens (insumos, los mensajes, las banderas se interrumpe o semforos) desde
otro Estado(s). Un token (evento) se usa aqu como un trmino general que significa una entrada o entrada
de evento. Un evento de entrada es caracterstico que es asincrnica (uno nunca sabe cuando puede ocurrir
un evento). Entrada de un evento puede ocurrir cuando hay de establecer o restablecer una bandera. Puede
ocurrir cuando: (i) un semforo dadas o tomadas o (ii) alguna indicacin de un recurso o una seal o
elemento de datos generados o (iii) la finalizacin de la ejecucin de.mset de cdigos. (Consulte las
secciones 7.7, 7.10 y 7.11 para los significados de semforos y seal)
3. Un estado puede generar varios tokens (salidas, mensajes, bandera interrumpe o semforos). Un producto o
conjunto de productos y variables identifica el siguiente estado en el mapeo de los insumos, las variables y
estados anteriores mediante la transicin de estado de salida (accin) funcin (Mealy modelo). Una bandera
indicando el estado

Conceptos de modelado de programa

,285

Condicin o un conjunto de cdigos que se ejecutan o un conjunto de valores de ciertos parmetros


identifica el siguiente rancio en el mapeo de los insumos, las variables y el estado anterior utilizando la
funcin de transicin de estado siguiente (modelo de Moore).
Cuando el FSM modelo es representada grficamente con crculos y arcos dirigidos, resulta compleja en el
caso de un proceso complejo con un gran nmero de estados. Tabla de estado de los Estados Federados de
Micronesia puede ser til.

6.3.2 Tabla de estado de los ESTADOS FEDERADOS DE MICRONESIA


Disear un software utilizando el modelo FSM, una tabla de estado puede ser diseado para la representacin de
cada pizarra en sus filas. Se realizan las siguientes columnas para cada fila.
1. Estado actual nombre o identificacin.
2. Action(s) en el estado hasta que algn evento(s).
3. Los eventos (token) que provocan la ejecucin de la funcin de transicin de estado.
4. Salida(s) de la funcin de salida de estado(s).
5. Siguiente rancio.
6. Intervalo de tiempo previsto para terminar la transicin a un nuevo Estado tras el evento.
La codificacin utilizando cada fila ahora pueden hacerse fcilmente como sigue.

Mientras (presentState) {action ( ); si (evento =


; token = .... )
(salida = ... ; StateTransitionFunction
( ); };}
O
Interruptor (estado)
Caso presentState: accin ( ); si (evento = ..... ; token = .... )
(salida = ... ; StateTransitionFunction
( ); };}'
Aqu presentState es una variable de tipo Boolean que es verdadero mientras el estado actual contina y se
convierte en falsa la transicin a la siguiente. La accin ( ) es una funcin que se ejecuta en el estado. Si
ocurren ciertos eventos y tokens son recibidos (por ejemplo, entrada de reloj en un ahora son ms finos), un estado
de transicin, la funcin se ejecuta stateTransitionFunction, que tambin hace presentState es igual a false y se
produce la transicin al siguiente estado estableciendo nextState
(una variable booleana) es true.

TXOT'Vpip

6,7

La figura 6.10 muestra los estados, transiciones de estado, eventos, salidas de estado y la funcin de salida de
un nmero finito de transiciones de estado de un telfono mvil la tecla '5' del teclado T9 (ejemplo 3.6). Un
telfono mvil T9 Teclado tecla de marcado 5 Tiene cinco miembros. Se somete a las transiciones de estado
inicial (0, 5) como sigue: (0, 5) ->
(l, 5)
(1,j) -> (1, k) -> (1, I) -> (1, 5) h> (1, j). En primer lugar, la variable de estado S0 = 0 representa la
clave inicial
Estado inactivo. Cuando es 1, que representa el estado activo. La segunda variable de estado s = 5 o j o k o I
representa el carcter final, que es aceptada como salida despus de 1 segundos de retraso. Se produce una
transicin cuando se pulsa de nuevo en un perodo inferior a 1 segundo. El temporizador tiene cuenta registrar,
comparar y registrar dos banderas-TR (cronmetro) y TF (tiempo comparar) banderas de salida. Transicin de
estado se produce cuando la bandera de interrupcin de entrada clave KF es igual a establecer o TF = 1. La
transicin en TF restablece la clave. El temporizador se inicia en aspectos clave de la interrupcin y cuando el
temporizador est en estado ON, temporizador-Ejecutar pabelln TR es igual a 1. Cuando el temporizador est
apagado o timer time outs, TR=0. Cuando el valor de Count = x, temporizador flag Tf equivale a falso antes del
tiempo de espera. Se agota el tiempo de espera cuando x es igual a Count comparar n5gistei',r> cargado durante 1
segundo. Despus de 1 segundo, el TF es igual a 1. Hay un nmero finito de 12 estados de la llave y el temporizador
juntos. Ejemplos 6.8 y 6.9. Dado el estado de la tabla de estado y programa de la mquina.

1286

l.

Los sistemas integrados

_J

Si (key5interruptflag == 1 && TR = 1 && TF == 0) y, a continuacin, C


= 1 else if
(TR = 0 TF = 1) y, a continuacin, C = 0; /' TR = 1 significa que el
temporizador est funcionando despus de
Tecla interrumpir, TF = 1 significa que el temporizador de tiempo de
espera o outcompare */.
Fig. 6.10 Los estados, transiciones de estado y un nmero finito de transiciones de estado en un
Tecla 'S' en el teclado del telfono mvil T9

Ejemplo 6.8
Hacer la tabla de estado para el FSM en el Ejemplo 6.7. El cuadro 6.1 da la tabla de estado de la tecla '5' en el
Tabla T9.
6.1 Tabla de estado de la tecla '5' en el teclado T9.
teclado
Accin

Claves de
estado
(0, 5).
actual
0,5)

TR

TF

Eventos
KF

KF

Contar
X'.

Key

Estado TR
Yo
Yo
Yo
Yo
Yo

TF

KF

Inicio del
temporizado
Reiniciar
el
r
temporizado
Reiniciar
el
X
(U)
O.K)
1
rtemporizado
Reiniciar el
X
(l,k)
(1.1).
1
rtemporizado
Reiniciar el
X
(1,5)
(U)
1
r
temporizado
(1,5)
D
(1,5)
Reset Timei
0
0
0
0
1
r
Restablecimi
(l,j)
(l,j)
0
0
0
0
0
1
ento
del
Restablecimi
(1 k)
D,k)
0
0
0
0
0
1
temporizado
ento
del
Restablecimi
(1,1)
1
(1,1)
0
0
0
0
0
rtemporizado
ento del
r
Nota. Contar x' recuento inicial el valor de registro, = x significa cuenta mayor que X' y menos de comparar
temporizado
Establecer el valor de registro de 1 segundo de tiempo de espera. TR = 0 significa temporizador parado.
r
TR =1
significa cronmetro despus
La carga de un valor en el registro para comparar el tiempo de captura despus de 1 segundo. TF = 1 significa
timer comparar
El tiempo de espera. KF = 1 tecla evento. KF = 0 significa restablecer clave o inactivo.

Ejemplo 6.9

0
1

0
0
0
0
0

0
0
0
0
0
0
0
0
0

Esper
e
Esper
eEsper
eEsper
eEsper
e-

Salida

Siguiente

Yo
Yo
Yo
Yo
Yo

Los cdigos C en la tabla 6.1 se puede escribir como sigue.


# Definir cierto 1
# Definicin FALSE 0

(1,5).
D.j)

0
0
0
0
0
0
0
0
0

0
0
0
0
0

Conceptos de modelado de programa

287

# InitialState dctlnc
'05000' definir estado I
'15100'
# Definir estado2 ' Ij 100'
# Definir estado3'IklOO'
# Definir estado4 '11100'
# Definir statc5 '15010'
# Definir estado6 "IjOlO'
# Definir estado7 'IkOlO'
# Definir estado8 '11010'
# Definir estado9 '15000'
# Definir 'ljOOO statelO'
# Definir estado ' t kOOO'
# Definir estado 12 '11000'
Void Key5FSM ( ) { char [
) estado; initialState = "05000"
mientras ( t r u e ) { /* */ un bucle infinito
I* ----------------------------------------------------------------------------------------------------------------- - ------- */
/* pantalla function ("x"), que muestra el carcter x en la pantalla y la funcin cursor_next ( ) mueve el
cursor a la siguiente posicin cuando keyiing en un mensaje de texto SMS. SWI es la instruccin de
interrupcin de software */
Interruptor (Estado) (
** *

S * t * * * * * :* * * * * * * * * * * * * * * * * * * * * * * * * /

InitialState: if ((KF == 1) && Count == 0)) {

SWI timerstart; I* ejecutar la rutina de interrupcin para iniciar el


temporizador */ pantalla ("5"): estado = ESTADO I;}
Break;
/ * * :j : * * : | :: |r * * *

* * * * * * * * * sj : s >!

%*

t i t * * * * * * * * * * * # * * * : :* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /

He estado: si ((KF == 1) && Count == x)) {


SWI timerRestart; /* ejecutar la rutina de interrupcin para reiniciar
el temporizador */ pantalla ("J"); el Estado = rancio2;)
Break;
/****** ************* ****************************************************:|:********s

Estado2: si ((KF == 1) && Count = x) (


SWI timerRestart; I* ejecutar la rutina de interrupcin para reiniciar
el temporizador */ pantalla ("K"); el estado = ESTADO3;)
Break;
/*****************************:1:*****:^ ******************* ......................../ Estado3: if ((KF = 1)
&& Count == x)) {
SWI timerRestart; /* ejecutar la rutina de interrupcin para reiniciar
el temporizador */ pantalla ("K"); estado = ESTADO4;)
Break;
/******************************:]:*** ************** ********************************/
Estado4: if ((KF == 0) && Count = x)) {

288:

Los sistemas integrados

SWI timerRestart; /* ejecutar la rutina de interrupcin para reiniciar ahora son ms


finos '*/ pantalla ("I"); estado = ESTADO.*);}
Break;
F*si:*4:*X*4;****#********#*#####*****************#*##*#/ *****************************
Slate5: si ((KF == 0) && Count = 0). f.
SWI timerReset; /* ejecutar la rutina de interrupcin para restablecer y detener el
temporizador */ pantalla ("5"); el cursor_next (); estado = ESTADO9;|
Salir ();
/************************************************#********* ******** **********/ Estado6:
si ((KF = 0) && Count = 0) (
SWI timerReset; /* ejecutar la rutina de interrupcin para restablecer y detener el temporizador */ pantalla
("J"); el cursor_next (); Estado Estado = 10;) salir ();
/"$*"******************************************
********************************$/
Estado7: if ((KF = 0) && Count = 0)) {
SWI timerReset; /* ejecutar la rutina de interrupcin para restablecer y
detener el temporizador *1 La pantalla ("K"); el cursor_next (); estado =
ESTADO II;/
Salir ();
Estado8: si ((KF - 0) && Count = 0)) {
SWI timerReset; /* ejecutar la rutina de interrupcin para restablecer y
detener el temporizador */ pantalla ("I"); el cursor_next (); Estado = Statel
2;}
Salir ();
Rtf*********** ***** ***;?:**S}s**si<*****j
1:4r * J#: 4c #* #f: * * * X X % X 4FJ
I*- ------------- -- -------------------------- Final de switch-case
} /* al final del bucle infinito */
} /* */ KeyoFSM final de
FSM modelo asume el nmero finito de estados y reduce las tareas de programacin a la siguiente:
(i) Codificacin para cada funcin y cada transicin de estado de funcin de salida; ii) conocer los perodos
de tiempo tomado por el proceso en cada estado y la funcin de transicin entre cada estado, cuando la
programacin de tiempo real. El FSM es el modelo adecuado para un proceso a la vez, para los flujos
secuenciales de un estado al siguiente estado y para el control de flujo del programa. Cuando se utiliza
el modelo de Micronesia, una representacin de la tabla de estado se vuelve muy til mientras que codifica
para mquina de estado.

Cemm o SISTEMAS MIMTSPROCBSOR


6.4,i Los sistemas multiprocesador

.T*

Un gran complejo programa puede dividirse en las tareas o conjuntos de instrucciones (o procesos o subprocesos)
y el ISR. Las tareas y los ISRs pueden ejecutarse simultneamente en diferentes procesadores y mediante algn
mecanismo las tareas pueden comunicarse unos con otros.

Conceptos de modelado de programa

289

_ J

Ejemplo 6.10
1. Asumir un gran programa tiene cuatro tareas: la tarea 1, la tarea 2, la tarea 3 y (pedir 4. Tiene cuatro ISR:
ISR_A,
ISR_C. la
ISR_B. ISR_C y 1SR_D. Asumir un procesador PA es estticamente programada para que seDejecute
tarea 2, la tarea 4,
ISR_B y 1SRJD. Procesador estticamente PB est programada para que se ejecute la tarea I y la tarea
3, !SR_un_isr y C.
La figura 6.11(a) muestra la programacin de los procesadores.
2. Asumir un gran programa tiene cuatro tareas: la Tarea I y la tarea 2, la tarea 3 y la tarea 4. Tiene
4 ISR: ISR_,4
ISR, ISR_B_Cy ISR_D. Asumir tenga un procesador dual core con un ncleo programado
Seal o mensaje
Seal o mensaje^ j-procesador]
estticamente
/
Para
ejecutar
las
tareas
y
el
otro
el
ISR.
Isr
y
enviar
los
mensajes a las^ ---------tareas que
se ejecutan
ISR B
-*-{ Tarea
4
en el
j |dual-core.
PA |
Otro ncleo.
Figura
6.11(b) muestra la programacin de un procesador
Seal
o mensaje
PB

(a)
Interrumpir
\

ISR C)
S1 o m 1 \

S2orm2

S3orm3

\\

Interrumpir

S4 o M4

ISR D

Tarea 4
Tarea 2.
Tarea
3
S significa seal y m significa mensaje de una comunicacin inter-proceso
(b)
Tarea 1

Fig. 6.11

! Core_UN~)

! Core_B~]

(a) esttica programacin de tareas y rutinas de servicio de interrupcin en dos procesadores (b) esttica
Programacin de dos ncleos de procesador

El problema es que la particin del programa proa en tareas o conjuntos de instrucciones entre los distintos
procesadores, y luego cmo programar las instrucciones y datos a travs de los tiempos y recursos disponibles del
procesador de manera que exista un rendimiento ptimo. Debe haber programacin esttica para ejecutar una tarea
en un procesador? A continuacin, supongamos que un procesador termina los clculos anteriores a la otra. Cul
es el costo de rendimiento? Costo de rendimiento es ms si hay tiempo de inactividad de la izquierda. Cul es el
costo de una tarea si necesita enviar un mensaje a otro y el otro espera (bloquea) hasta que se recibe el mensaje?
Los siguientes son los problemas en el modelado del procesamiento de instrucciones en un sistema
multiprocesador.
1. Particin de procesos, establece la instruccin y enseanza(s).
2. El procesamiento simultneo de los procesos en cada procesador.
3. Programacin esttica por el compilador, anlogo a la programacin en un procesador superescalar.
(Cada procesador superescalar tiene varias unidades de procesamiento en paralelo).
4. Cuando unidades superescalar estn presentes en un procesador, esto significa que dos o ms ductos de
instrucciones son
Ejecutarse en paralelo. Canalizacin tiene una serie de etapas (3 a 9) y las instrucciones son diferentes en
diferentes

290

5.

6.
7.

8.

9.

Los sistemas integrados

Las etapas. El problema es (Ned no slo de programacin de procesamiento concurrente iiMruciions en


diferentes procesadores sino tambin la programacin de instrucciones de procesamiento concurrente en
cada unidad superescalar y gasoducto en el procesador.
Problema de programacin de hardware, por ejemplo, si la programacin esttica de hardware
(procesadores y memorias) es factible o no (es ms sencillo y su uso depende de los tipos de instrucciones
cuando no afecta el rendimiento del sistema ihe).
Problema de programacin esttica (por ejemplo, cuando el rendimiento no se vea afectado y cuando las
acciones de procesamiento son predecibles y sncrona).
Problemas de sincronizacin, la sincronizacin significa el uso de interprocessor o procesar comunicaciones
(IPCS) de tal forma que existe un orden definido (precedencia) en el que los clculos se dispararon en
cualquier procesador en un sistema multiprocesador (IPC es un mensaje o una seal a otro proceso o el
procesador para que pueda continuar. La seccin 7.9 se describe el IPC en detalle).
Programacin dinmica cuestiones (por ejemplo, el rendimiento se ve afectado cuando hay interrupciones
y cuando los servicios que las tareas son asincrnicas. Tambin es pertinente cuando hay planificacin
preventiva como que tambin es asncrono).
La programacin de las instrucciones, SlMDs (single instruction multiple data), MlMDs (mltiples
instrucciones y datos mltiples) y VLIWs (muy grandes palabras de instrucciones dentro de cada proceso)
y programarlos para cada procesador.

Existen varios mtodos de programacin y sincronizar la ejecucin de instrucciones, SlMDs. Y MlMDs VLIWs
en el sistema. En un sistema multiprocesador, la programacin se lleva a cabo despus de analizar las opciones
de sincronizacin y de programacin para el procesamiento concurrente y la programacin de instrucciones, y
VLIWs MlMDs SlMDs,.
Considere dos procesadores, PA y PB. entrelazado con la memoria en un sistema. Caso I: Procesadores
comparten el espacio de direcciones de tame a travs de un bus comn, llamado estrecho acoplamiento entre
procesadores. Caso 2: procesadores lave diferentes espacios de direcciones autnomas (como en una red), as como
los conjuntos de datos compartidos y matrices, llamado acoplamiento oose. Figura 6.12(a) y (b) muestran tanto los
casos. Caso J: Procesadores comparten los recuerdos en la alternativa de SU arquitectura, por ejemplo, la malla
tridimensional. anillo, trridos o rbol en lugar de un bus compartido entre los procesadores lifferent estrechamente
acoplados. Procesadores procesan simultneamente como sigue:
1. Una forma de procesamiento concurrente es programar cada tarea para que se ejecute en diferentes
procesadores y sincronizar las tareas por algunos inlerprocessor mecanismo de comunicacin.
2. La segunda forma es, cuando un criterio o M1MD o instrucciones VLIW tiene datos diferentes (por
ejemplo, diferentes coeficientes en el ejemplo 6.5), cada tarea se procesa en diferentes procesadores
(fuertemente acoplados) procesamiento de datos diferentes. Esto es anlogo a la ejecucin de un VLIW en
TMS320C6. Un procesador de la serie DSP de Texas Instruments. Emplea dos conjuntos idnticos de cuatro
unidades y una palabra de instrucciones VLIW puede ser dentro de 4 y 32 bytes. Tiene paralelismo a nivel
de instruccin cuando el compilador horarios tales que los procesadores se ejecutan los diferentes elementos
de instruccin en las diferentes unidades en paralelo.
Nate: el compilador hace programacin esttica para VLIWs. programacin esttica es aquella en la que
un compilador compila tales que los cdigos se ejecutan en procesadores diferentes o unidades de
mecanizado segn el calendario decidido y este programa permanece esttico durante la ejecucin del
programa, incluso si un procesador espera a que otros para finalizar el procesamiento programado.
I(s
3. Una alternativa es que un grupo de instrucciones se ejecuta en el mismo procesador o instrucciones
diferentes de una tarea puede ser realizada en diferentes procesadores (acoplado). Un compilador horarios
las diversas instrucciones de las tareas entre los procesadores en una instancia.

J 291 i

Conceptos de modelado de programa

Bloqueado para
PA
Mismo
Instrucciones
De una tarea o .
Diferentes
Instrucciones de un
Tarea o VLIW
PB

Bus compartido

Los conjuntos de
datos compartidos
o matrices

Yo

Comunicacin entre
procesadores (IPC) ""K* w para
sincronizacin j /
Necesidades
Desbloqueado
para |
Un especfico 2
Tarea o a |
Yo VLIW
especficos

Los conjuntos de
datos compartido o no
compartido
o
matrices
Yo

Fig. 6.12

(a) fuertemente acoplados procesadores que comparten el mismo espacio de direcciones,

mientras que el procesamiento mltiple


Tareas (b) Loosely coupled Procesadores autnomos separados con espacios de direcciones como

en una red, as como el espacio de direcciones compartido para conjuntos de datos y matrices.

6.4.2 Modo! De desenvolvimiento en SDFGs SDFGs homogneo


Un modelos SDFG los retrasos, as como el nmero de entradas y salidas (seccin 6.2.3). Los bordes dirigidos a
crculos se supone que tienen un bfer de memoria fsica y hasta el bfer tiene los datos, los clculos no fuego.
Cuando slo hay un token en la entrada y en la salida, una se llama SDFG SDFG (HSDFG homognea). La figura
6.13(a) muestra un modelado de clculos por un SDFG. Figura 6.13(b) muestra una representacin HSDFG
despus del despliegue (l SDFG en la figura 6.13(a). El DOT y la etiqueta sobre el borde demuestran un retraso
de dos tokens de entrada nmero de vrtice Y.
Por ejemplo, suponga que las salidas de vrtice X' (un conjunto de clculos) es una entrada y a Y' (otro
conjunto de clculos) es tambin. Un SDFG puede, por lo tanto, se despliegan en un HSDFG. Un SDF grfico
puede ser desplegada en uno o ms HSDFGs. Dos vrtices pueden estar conectados por dos o ms bordes en la
HSDF grfico. Un grfico HSDF naturalmente tendr ms vrtices y aristas de un token SDFG porque solo est
permitido en un vrtice.
Cuando hay una secuencia de datos indefinidamente larga, basada en SDFG modelado y la consiguiente
desplieguen en el HSDF grficos de ayuda. Por ejemplo. HSDFGs aplicada a los clculos de una transformacin
rpida de Fourier o para la codificacin de datos de voz. Un grfico HSDF tambin puede ser efectiva en un
modelo interprocessor IPC (comunicacin) Grfico. Todos los clculos son estticas programadas en HSDFG
ejecucin en cada vrtice (disparando elementos para los clculos y la creacin de otro conjunto de tokens de
salida). No permitamos que una secuencia de clculos que son disparados a los vrtices. Deje que
la precedencia en el grafo orientado definir el orden en que los clculos los vrtices se colocan primero y, a
continuacin, en Siguiente y, a continuacin, junto a la siguiente. Una secuencia en un procesador entre el
conjunto de procesadores puede retrasarse en los arcos. Entrada de otro procesador (token) inicial tambin puede
ser retrasado. Un programa modelo SDF luego se traduce en una serie de paralelos simultneos o secuenciales
utilizando HSDFGs programas modelo.

Los sistemas integrados

J Actor para computarizar


---------------- Borde de una memoria fsica
El bfer para almacenar los productos
y proporcionar insumos

(a)
Delay (PX2.p*)~0
Token i es de PXt y
Token j es de PX2
Y

0 entre el puerto de salida PXi


Y pies de entrada>rt px
Superndice 1 significa el primer token de salida y 2 significa la
segunda
Token de salida que se activa despus de un retraso con respecto
a la primera

Fig. S.13

(token inicial retrasada Py extrado)

(c)

(o) un modelado de clculos


(" por un SDFG. El DOT y la etiqueta sobre el borde mostrar retardo
Dos tokens de entrada nmero de vrtice y (b) una representacin SDFG homognea despus de
desplegar los SDFG (c) una representacin de un HSDFG APEG despus de quitar el borde retardada

Sistema multiprocesador computaciones y sus instancias de disparo puede ser modelada. Simplifica la
programacin de modelado, programacin y sincronizacin de los procesos. Modelos HSDFG son como un
SDFGs pero tienen la caracterstica de que slo hay un token que retrasos a lo largo de un borde (arco o flecha)
porque slo hay un token de entrada y uno de salida.

5,4.3 Modelo de despliegue en APEGs HSDFGs


Precedencia de acrlico es una precedencia de vrtices en el grafo orientado de tal forma que no hay retrasos en los
arcos. Si tokens inicial (retrasos) se sacan de un grfico HSDF, un acrlico precedencia grfico de expansin (APEG)
es obtenida.
APEGs son importantes para la programacin en sistemas multiprocesador. Una de APEG no slo tiene a lo
largo del arco, entradas de arranque idntico a la salida de un vrtice anterior, pero tampoco retrasar el token. Por lo
tanto, la ejecucin es uniforme a lo largo del arco con ningn interprocessor tiempo de comunicacin. Un algoritmo
basado en APEG se convierte en el ms sencillo de programar que las restricciones de precedencia en el algoritmo
siguen siendo los mismos que antes. Figura 6.13(c) muestra el correspondiente APEG que es un grfico
sin demoras , las unidades de una HDFG [Figura 6.13(b)] o [SDFG Figura 6.13(a)]
Un proceso
simultneo
al
nivel
de
tareas,
as
como
un grfico
de
IPC pueden modelarse utilizando APEGs y HSDFGs. Un subproceso que se ejecuta en un procesador modelada
como APEG puede pasar de un control a otro mediante el bloqueo o por dormir, pero la secuencia y el flujo de
procesos a lo largo de la APEG permanecen intactos. Ejemplo 6.11 explica esto.

Conceptos de modelado de programa

293

Ejemplo 6.11
Sea v'|, V2 y V'3 ser el clculo de vrtices del procesador asignado a PA. Sea v', V"2, v"3 ser
La ie Jj /
Los vrtices de computacin asignado al procesador PB procesar concurrentemente con PA. Es
necesario un IPC
Cuando el algoritmo (o conjunto de clculos) V"3 no puede continuar hasta que haya un mensaje
(token) de V'.
Deje que el IPC entre V3 y V"2. Esto sincroniza los procesos en PA y PB a travs del IPC.
La figura 6.14 muestra una HSDFG APEG y uno con un IPC en PB de PA.
APEG modelos son tales que no hay retrasos durante la ejecucin en cualquier etapa de una APEG o cadena
de APEGs. Los problemas complejos son, por tanto, modelada como la primera, entonces SDFGs SDFGs se
desdoblan en HSDFGs y se separan en APEGs HSDFGs. El procesamiento es como por restricciones de
precedencia entre los APEGs. APEG algoritmos basados en convertirse en el ms sencillo de programar, sino
restricciones de precedencia en el algoritmo entre sus APEGs sigue siendo la misma que antes.

} Crculo para clculos de vrtice en PA o PB

----- ^ flecha dirigida para los productos transportados


a
Vrtice siguiente

v2
V _ Un

* Vs
\ X...

/\V

(,v\r ..........
PA:
un
procesador
PB: procesador B

R ih;

IPC
V;

Valor V2 de salida es
recibido como entrada
Al cabode un retraso y
slo entonces los
clculos Inicio

Un sistema de dos procesadores con una precedencia de acrlico y un grfico de expansin


Grfico de flujo sncrono de datos homogneos con un IPC en PB DE PA

6.4,4 Aplicaciones de los grficos para sistemas multiprocesador.


Particionado y programacin
Cuando hay varios procesadores en paralelo, la particin de un programa se realiza de la siguiente forma.
1. Hay un nmero mnimo de IPCs, de manera que el tiempo total de retraso (IPC) minimiza los tiempos
de espera.
2. Hay equilibrio de carga. Cada procesador tiene el menor tiempo de espera al compartir la carga de
procesamiento.
3. Minimiza el costo de ejecucin. Costo de rendimiento significa que el tiempo de ejecucin necesario (i)
para los clculos de los tokens y las demoras en el borde (tiempo de comunicacin), (ii) el tiempo de
clculo antes de fi^ng (clculos) por un vrtice (transicin) y (iii) el tiempo de cambio de contexto.
Considrese la Figura 6.15 vrtices. En cada vrtice clculos ocurren tales que las restricciones de
precedencia mantener (permanecen intactos). El grfico de un programa as las particiones a las funciones o tareas o subprocesos. Una de las
tres estrategias siguientes pueden planificar un programa para ejecutar.

,294

Los sistemas integrados

I. Cada uno (pedir o funcin se ejecuta en un procesador asignado. Cada tarea o funcin se ejecuta en
procesadores diferentes en diferentes perodos. Instrucciones de cuatro diferentes tareas estn divididas en
dos procesadores. Instrucciones de cuatro diferentes tareas programadas y estn divididas en dos
procesadores de manera diferente en diferentes perodos |Las figuras 6.15(a) a la (djj mostrar estas cuatro
particiones y estrategias de programacin].
Procesador

------ Tarea 1:

1PA1 C

----

-(vj i
0
__ ^

H (5

Procesador
Los clculos
Salida al prximo
lugar
O el puerto.

Tarea 2. ----(v'i,V'2.V'3),y V"i ,V"2 V"3) son diferentes subprocesos de la tarea 1 y la tarea 2,
respectivamente
Procesador

(a)
Procesador

- Tarea 1

IPC

C'Hjis una instruccin en V( para tomar la i-sima columna y j-simo elemento de fila de la
matriz A y aadir
Bits con el elemento correspondiente de B.
Procesador

6.15 (a) Cada tarea o funcin se ejecuta en un procesador asignado (b) para cada tarea o funcin se ejecuta en
procesadores diferentes en diferentes perodos (c) Instrucciones de cuatro diferentes tareas estn
divididas en dos procesadores (d) Instrucciones de cuatro diferentes tareas programadas y estn divididas
en dos procesadores diferente durante diferentes perodos

Conceptos de modelado de programa

2. Cada conjunto de datos est dividida en una instruccin VLIW y se ejecuta en los distintos procesadores
que ejecutan el mismo programa. Considere la posibilidad de un proceso de adicin de la matriz. Cada
fila puede ser aadido en un procesador diferente cuando los datos de las filas estn divididas entre los
procesadores. Esas particiones de datos es preferido al procesar un DSP-VLIW.
Un combinado de particin se realiza tanto a nivel de datos, as como la tarea (o funcin). Distintas funciones
se puedan ejecutar simultneamente en diferentes procesadores, pero en el micro o datos a nivel atmico est
particionada y ejecutar las instrucciones del arco.
Particionado y programacin de vrtices puede hacerse de varias maneras, (i) Cada tarea o funcin se ejecuta
en un procesador asignado, (ii) cada tarea o funcin se ejecuta en procesadores diferentes en diferentes
perodos, (iii) las instrucciones de cuatro diferentes tareas estn divididas en dos procesadores, (iv) las
instrucciones de cuatro diferentes tareas programadas y estn divididas en dos procesadores de manera
diferente en diferentes perodos, (v) la particin de datos en caso de SIMDs, MlMDs y VLIWs.

6.5

Modelado de UML

Recapitular la seccin 5.5. Los conceptos utilizados en el lenguaje orientado a objetos tambin se usan en el
diseo de software.
Diseo orientado a objetos tambin se realiza como antes.
1. Diseo orientado a objetos se realiza cuando existe una necesidad para la reutilizacin de los
componentes de software definido como objeto o conjunto de objetos (componentes reutilizables). El
nuevo componente se abstraen del existente. Nuevos componentes y diseos de objetos son creados por
el objeto herencias y polymorphs. Hay encapsulacin de informacin dentro de un componente u objeto
diseado.
2. Componentes de diseo de un objeto se caracteriza tambin por su identidad (una referencia a lo que
mantiene su estado y comportamiento), por su estado (sus diseos para datos, correctamente, campos,
atributos y algoritmos) y por su comportamiento (mtodo o mtodos que pueden manipular la pizarra del
diseo).
3. Los nuevos diseos de objetos se crean a partir de las instancias de una clase diseada. Define el estado
de clases, atributos, operaciones y el comportamiento de un concepto de diseo. Tiene campos de nivel
de usuario interno para su estado y comportamiento. Define las formas de utilizar los diseos.
4. Diseado una clase puede crear muchos objetos componentes (Diseos) copiando el grupo y hacer
diseos funcionales. Cada diseo es un diseo funcional. El diseo de cada objeto puede interactuar con
otros diseos para procesar los estados segn las define el comportamiento.
5. Un conjunto de clases que luego da el software completo de diseo de un sistema.
UML es un Unified Modeling Language (comn) para cualquier sistema general de que el anlisis y el diseo
orientado a objetos son viables y que pueden ser extrados por modelos. Unificacin en UML significa su
aplicabilidad comn a muchos diseos o procesos. Podemos entonces el siguiente modelo por un conjunto similar
de diagramas: (i) software visualizacin, (ii) el diseo de datos(s), (iii) diseo de algoritmos(s), (iv) el diseo de
software(s), (v) las especificaciones del software, (vi) el proceso de desarrollo de software, (vii) un proceso
industrial.
UML es un lenguaje de modelado. Detalles de la lengua pueden ser extradas de un libro de texto estndar.
[Por ejemplo, "El lenguaje unificado de modelado User Guide" por Grady, James Rambaugh Boocit y Ivar
Jacobson, Addison Wesley, 1999].UML caractersticas y sus aplicaciones en el diseo de sistemas embebidos
puede ser entendida desde la siguiente descripcin breve.
Figura 6.16(a) a (f) muestra las representaciones de hasic seis elementos de UML: clase, paquete, estereotipo,
objeto, objeto annimo y el estado. El cuadro 6.2 da una lista de los mismos y su descripcin.

296

Los sistemas integrados

Un diseo conceptual modelado puede seguir el enfoque (JML. Un diseo conceptual puede utilizar el usuario,
objeto, secuencia, estado, clase y diagramas de actividad. El cuadro 6.3 da clase UMI.", "tarde", la secuencia',
'Colaboracin' y 'objeto' de los diagramas.
UMI. Permite la SpecCharts y StateCharts: SpecCharts (especificacin grficos) es otro lenguaje lor
especificaciones y grficos. Se permite a los equipos que utilizan los programas secuenciales para modelar las
acciones estatales. Diagrama de estado es un idioma para la aplicacin del diagrama de actividad, los Estados
Federados de Micronesia estados y transiciones de estado, la simultaneidad, la sincronizacin, la sincronizacin y
la jerarqua de comportamiento. La secuencia de mensajes grficos se prepar primero y de estos el diagrama de
estado, para mostrar un diagrama de actividad. Por ejemplo. StateChart puede modelar dos actividades simultneas
de dos FSMs. Sus modelos, junto con sus caractersticas como StateCharts proporcionan la implementacin del
manejo de excepciones (reventado e interrumpiendo las rutinas fcilmente. Los diagramas de secuencia UML
tambin pueden usar el StateChart sustratos, o los modelos creados por el lenguaje de diagrama de estado.
Nombre
Reloj en tiempo real

objeto

Unsigned long
count

Nombre

La entrada de reloj ()
Y
o
Dock Inc ()
|
Interrupcin
Clase de
del
UML() 1
sistema

(a)

de
1 Swt i: Reloj de Tiempo Real.
de

Atributos
clase
Los
comportami
entos/
Mtodos/
Operaciones

Unsigned

Yo
long
Y

o
Contar Swt 1
Objeto
UML

(d)

Paquete de tres
clases

Procesamiento del
temporizador ( .
Contador de marcha libre (
Clase OutCompare
Clase ;

Objeto
Objeto annimo
:El Reloj de

Clase InputCapture

Tiempo Real
Paquete de UML

objeto annimo
(e)

(6)

I " hr-minseo> Temporizador )


Clase I
Estereotipo UML

(c)
Ig. 6.16

Preferencia de eventos
Estado
de
I---ejecucin de
Una
tareas
transicin
Estado de
UML

Representacin de elementos bsicos de lenguaje de


modelado unificado (a) clase
(0
(activeClass y
Clase abstracta o inactivo) (b) (c) del paquete estereotipo (d) (e) del objeto objeto annimo
Y el estado (/)

UML es un lenguaje de modelado potente para: (i) software visualizacin de datos, (ii), (iii) el diseo de
algoritmos, diseo
(iv) Diseo de software, especificaciones de software (v) y (vi) el proceso de desarrollo de software.
Elementos bsicos de UML son de clase, paquete, estereotipo, objeto objetos annimos y estado. Modelado
de UML es mediante los diagramas de clases, diagramas de estado, diagramas de objetos, diagramas de
secuencia y diagramas de colaboracin.

Conceptos de modelado de programa

Tabla 6.2 Elementos Bsicos de UML

Modeli
zacin

Qu modelo
Y el espectculo?

Diagramtica ejemplar
Representacin

Diagrama
La clase

Clase Define los estados, atributos y comportamientos, Una caja rectangular con divisiones, como se
muestra en la figura 6.16(a) para los
la clase tambin puede ser un activo o una clase
nombres de clase lor su identidad, atributos
abstracta.
y comportamientos (operaciones o mtodos
de rutinas o funciones).
Caja Rectangular con divisiones para los
nombres de clase lor su identidad, atributos
y operaciones, pero con el prefijo abstracto
con cada comportamiento abstracto y
atributo.

Resumen
La clase

Una clase en general puede ser abstracta cuando uno o


ms estados, operaciones o comportamiento no est
completamente definido, estando en una etapa abstracta,
o cuando sta no es para crear objetos, pero slo una clase,
que se extiende, implementa el comportamiento abstracto
(mtodos) y especifica los atributos abstractos (campos o
propiedades) esa clase puede crear el objeto.

Objeto

Una instancia de una clase que es una entidad funcional formado


Caja
Rectangular
con
identidad de objeto
Copiando los estados, atributos y comportamientos de un seguido de punto y coma y la identidad de clase
clase.
Como se muestra en la figura 6.16(d).
Caja Rectangular con identidad de objeto,
Un activo clase define un objeto activo instancia activa de
seguido por un signo de punto y coma y la
una clase. Un proceso o subproceso es equivalente al
identidad de clase, pero con el prefijo activo
objeto activo en UML, porque el objeto activo puestos las
con
J
seales como la rosca y puede esperar antes de iniciar o
La identidad del objeto.
J
reanudar las operaciones utilizando los mtodos.
Yo
Una clase de activos significa una clase thread que tiene
Yo
Caja Rectangular con gruesosFrontera
un estado definido, atributos, comportamientos y
Lneas de I
conductas de las seales. Clase activa adems, define el
Divisiones interiores y de los nombres de clase
control de comportamientos (seal de sealizacin para
I
para
la
identidad,
atributos
y
un objeto, que puede ser publicada y para los cuales puede
comportamientos : (operaciones y seales),
esperar antes de iniciar o reanudar). As, no hay control
pero con el prefijo activo con identidad de
sobre el comportamiento de la clase.
clase.
Yo
Un objeto, el cual es enviado (publicada) de una clase de
La
identidad
de
la
seal
dentro
de
dos
activo (el objeto activo) a otra clase de activo, que espera
pares de arranque y cierre de signos
para iniciar o reanudar. Objeto de seal comportamiento
seguidos por identidad de clase (similar
define el comportamiento (mtodo de operacin) de la
al estereotipo).
comunicacin inteiprocess. [Signal (Seccin 4.2.2) es la

Active
Objeto

Active
La
clase

Seal

instruccin de software o mtodo (funcin), lo cual genera


interrupcin.) Objeto de seal tiene atributos
(parmetros). El atributo puede ser simplemente una
bandera de I-bit.
Stereo

Desempaquetar una coleccin de elementos (atributos o


comportamientos) que se utilizan de forma repetida.

Caja rectangular con el nombre de identidad


de estereotipo dador fftithin los dos pares de

Iniciar y cerrar signos seguidos por la


identidad de clase, como se muestra en
la figura 6.16(c).
(continuacin)

2981

Los sistemas integrados

Modelizacin
de il

Qu modelo

Diagrama
el espectculo?

Un objeto annimo sin identidad, objeto


Paquete

Estado

I>niip lixempUirx<unmulii
Hcprcxcnlaiinn
Caja Rectangular con ningn objeto identidad antes
(punto y coma y la identidad de clase, como se
muestra en la figura 6.16(e).

Una coleccin repleta de clases y objetos. Una caja rectangular con cuadros de interior para cada !
Clase con nombre (o identidad de clase. Nombre de
paquete es dada por encima de la parte superior de la
caja, como se muestra en la figura 6.16(b).
Un estado.

Rectngulo redondeado con nombre de estado lor su identidad


y con una flecha en la caja. La flecha indica una transicin como
se muestra en la figura 6.16(f).

Tabla 6.3 diagramas UML


Modelizaci
n

Qu modelo y mostrar?

Representacin

Diagrama
Estado
Diagrama de estado muestra un modelo de Una oscura marca circular muestra el punto shirting, flechas
Diagrama
estructura para su inicio, fin, entre asociaciones a indican las transiciones. Una etiqueta sobre la flecha muestra la
travs de las transiciones y eventos muestra condicin o evento que desencadena la transicin. Una marca
etiquetas (o condicin) asociados con las rectangular oscuro dentro de un crculo muestra el final [Figura
transiciones.
6.17(a)|.
La clase
Los diagramas de clase muestran cmo las clases
Diagrama
y objetos de una clase se refieren asociaciones
Cajas rectangulares .muestran las clases y flechas con tringulos
jerarquizadas y objeto de las interacciones entre
vacos al final muestra la jerarqua de clases. Las clases de la
las clases y objetos.
jerarqua se pueden unir mediante una lnea. Los nmeros inicial
y final en una lnea muestra el nmero de objetos de una clase
se asocia con el nmero de objetos de las otras (Figura 6.f7(b)f.
Objeto
Diagrama de objeto define la configuracin Consulte la figura 6.17(e).
Diagrama
esttica del sistema. Tambin le da a la relacin
entre los objetos consiguientes.
Secuencia
Diagrama

Diagrama de secuencia visualiza las interacciones Rectngulos redondeados para los estados y cajas rectangulares
entre los objetos. Los diagramas de secuencia con identidad de objeto y clase se conecta por flechas. Eje
tambin especifica las secuencias de estados.
vertical hacia abajo muestra progresivamente el tiempo
[Figura 6.18(a) y (b)'j.

Diagrama de colaboracin colaboracin visualiza el eje horizontal o vertical hacia la derecha o hacia abajo diagrama de secuencias
simultneas de estados o de objeto muestra progresivamente el tiempo y un conjunto paralelo de interacciones. Secuencias
muestran la simultaneidad. Condiciones o eventos pueden j
Ser etiquetados en la flecha [Figura 6.18(c)2).
Yo
La figura 6.18 muestra los diagramas de secuencia UML. La figura 6.18(a) muestra la secuencia de la interaccin entre los
estados, (b) Se muestra el diagrama de secuencia (e.g" de chocolate-mquina expendedora automtica de secuencias de
estados).
Figura 6.18(c) muestra el diagrama de colaboracin (Multiprocesamiento Simultneo).

Conceptos de modelado de programa

299

Clase Ethernetframe

Tarea 1
ejecutando
Estado
Preferencia de eventos

_____ / __ _____
_____ _____

OS
Start

Finalizar

Paquete de clase

\0) Proceso Final

Secuencia de bytes de clase

F Tarea 1 Aullad ; i tarea he estado inactivo

(FA)

(En

Fig. 6.17 Diagrama de Unified Modeling Language: diagrama de estado (a) (b) (c) diagrama de clases diagrama de objetos

Tarea 1 Crear
Caso 1
Procesador
arranca pa-

Caso 2
Tarea 1 Finalizar

Ejecutando Taskl

" --------

Tarea2.Girando

Procesador PB
Inicio

Finalizar tarea 2.
(a)

: Readport

: Puerto
Moneda de usuario
entradas (a.b.c.d)

I
El
Tiempo

Yo

(FA)

Nmero de Secuencia: Funcionamiento


Taskport:
Readport

' 3: Entrada 2

7
1: Entrada 1

peracin Nmero de
secuencia

TaskPW:
Contrasea

2: ID de usuario

TaskUser:
Usuario

TaskTransaction:
Transaccin

(c)

Fig. 6.18 Diagramas: lenguaje unificado de modelado (CR) secuencia de interaccin entre los Estados.
(b)

Diagrama de secuencia (por ejemplo, el chocolate-mquina expendedora automtica de

secuencias de estados
(c)

Diagrama de colaboracin (por ejemplo, el multiprocesamiento procesar concurrentemente

sistema)

Los sistemas integrados

1300!

Modelos importantes lor arc mltiples llamadas a la funcin de programacin, mesas para eventos, funcin queuing.
funciones sapiencial, grfico de flujo de datos. CDFG mquina de estado, procesamiento simultneo y OOP.
Un diseo estndar prctica es utilizando un modelo o conjunto de modelos durante el proceso de desarrollo de software.
Aplicacin de software se simplifica considerablemente gracias al uso de programacin porque DFGs ta-hs arc en l
reducido a la siguiente codificacin para cada proceso representado por un crculo usando los datos de entrada(s) atTow
entrantes y generar datos de salida para la flecha saliente(s).
" En un modelo DFG, existe un nico punto de entrada de datos y un solo punto de datos con un proceso o conjunto de procesos
que estn representados por circlets). Cuando la asignacin a una entrada es ll\ed en un DFG. tambin se llama ADFG.
Complejidad de programacin est minimizado en el modelado de un programa en trminos de tantos DFGs posible y el
uso de tantas ADFGs como sea posible.
Otro importante concepto del programa de modelacin es el CDFG lor de anlisis y diseo de programas. ('Del FGs
representan la decisin controlado en los nodos y las rutas de los programas (DFGs) que son atravesados por consiguiente
de los nodos alterar las decisiones.
" Programa modelado puede hacerse bv, el FSM y pizarra, modelos de mquina.
El FSM es el modelo adecuado para un proceso hasta una hora, por los flujos secuenciales de una pizarra con el siguiente
estado y lor un flujo controlado del programa. La FSM se encuentra fcilmente el modelo de los estados en los procesos
en los sistemas.
I l sistema multiprocesador utiliza dos o ms procesadores lor la ejecucin ms rpida de las siguientes: (i) las funciones
del programa, (las tareas o (iii) single instruction multiple data (o instrucciones ivy varias instrucciones de datos mltiples
instrucciones o i v) palabras de instruccin muy larga. La V| ,1 Ws en el DSP instrucciones pueden ser completados a alta
velocidad. Modelado del sistema multiprocesador SDFG HSDFG usos y representaciones en que ellas se desarrollaba de
la SDFG as que hay slo un token que retrasos a lo largo de su borde y/o la APEC! En que no hay retrasos.
Los modelos se utilizan para particionar, balanceo de carga, la programacin, la sincronizacin anil resynehronizaiioii
durante de

Ri&ri rTv-.-fg /(pGifiryr:e

M)FG
MJFG
El procesamiento
simultneo
CDFG
DFG
Mquina de estado finito

Acrylic DFG modelo cuando la asignacin a la entrada es fijo.


HSDFG nte sin demoras y vrtices dispuestos en el orden de precedencia.
Cuando varios procesos, ejecutar un conjunto de instrucciones de tal manera que cada
uno pueda continuar
Ms all pasando o intercambiar mensajes o seales o tokens.
En la representacin de los modelos de decisin controlados en los nodos y programa
Los trazados (DFGs) que son atravesados por consiguiente de los nodos despus de la
toma de decisiones.
El cdigo para cada proceso est representado por un crculo y las entradas de datos al
Proceso son,.por iny^ming flecha(s) y la generacin de datos es a travs de la salida
El saliente atTow(s).

Un modelo que arc estados finitos. Alterar un conjunto determinado de


insumos, un estado
Cambia segn la funcin de transicin de pizarra.

:;&aiii8&iiii&Wiii(^^

Conceptos de modelado de programa

HSDI-G
Comunicacin entre procesos :
Es equilibrio tad
Modelo
Sistema multiprocesador

Particionamiento
Costo de rendimiento
Resynclironization

Programaci
n
SDFC,

Transicin de estado UML


funcin

Costo de rendimiento total

301

Enlaiion Ropre-en la que no se desarrolla del modo SDFG thru hay slo un token,
que puede retrasar a lo largo de su borde.
Durante el procesamiento simultneo. El IPC es un mensaje o una seal o token a otro
proceso de espera o procesador para continuar.
Particionado y programacin de subprocesos (conjunto de instrucciones) e
instrucciones de tal manera que cada procesador comparte la carga de procesamiento
en un sistema multiprocesador.
Es una representacin por la cual problema, proceso, diseo o anlisis puede
entenderse fcilmente y se convierte en el problema despus de modelar simplificado.
Un sistema que utiliza dos o ms procesadores o que utiliza los ncleos dobles o
mltiples ncleos para acelerar la ejecucin de las funciones del programa (i), (ii) o
(iii) tareas single instruction multiple data instrucciones o (iv) varias instrucciones
instrucciones o datos mltiples (v) palabras de instruccin muy larga.
Los grficos de particionado en partes y cada parte programada en los procesadores
como por la estrategia de programacin.
Tiempo tomado en w aiting para ejecucin en un vrtice o en un sub-graph o microhilo. Sincronizacin de repeticin de anlisis matemtico adecuado, reduciendo el
nmero de IPCs y as las demoras debidas a los procesadores esperando la I PC's en
un sistema multiprocesador.
Asignacin de diferentes vrtices o sub-grficos en diferentes procesos.
Una representacin en la cual inputfsl DFG retrasos tambin se muestra. Los crculos
me vrtices) son los actores donde clculos toman lugar. Los nodos de un borde DFG
(arco o flecha) tiene puntos por los retrasos y las etiquetas del nmero de entradas y
salidas.
Un proceso o una lista de cdigos que llevan un programa de uno a otro estado.
El idioma utilizado para modelar el (i) software visualizacin, TII), diseos de datos
(diseo de algoritmos iiil, diseos de software (iv), (v) las especificaciones de
software y yo \ i i el proceso de desarrollo de software.
Total de todos los costos de rendimiento. Este ser el mnimo si la carga de trabajo
de los procesadores L equilibrado y no hay particin adecuada y planificacin.

Preguntas de repaso
1.

Por qu la complejidad del programa aumenta con un nmero reducido de nodos DFGs y aumentando la decisin?

2.

Explicar con un ejemplo de cada uno. APEG. Y SDFG HSDFG.

3.

Por qu desplegar SDFGs HSDFGs en tantas como sea posible y luego APEGs HSDFGs en tantas como sea posible?

4.

Cmo funciona el procesamiento concurrente ayuda en la ejecucin de instrucciones VLIW a alta velocidad?

5.

Cmo se puede programar una instruccin SIMD en dos procesadores?

6.

Cmo se programa una instruccin MIMD en dos procesadores?

7.

Cmo se programa una instruccin VLIW en dos procesadores?

8.

Qu entiende usted por completamente programacin dinmica y programacin totalmente esttico en un sistema

multiprocesador?
9. Qu entiende usted por equilibrio de carga? cmo puede conseguirlo por particin combinado?
10. Cmo es un objeto annimo denotada en UML?
11. Cules son las caractersticas de UML?

Los sistemas integrados

302

Ejercicios de prctica
12. Tabula diversos modelos de programa iwn applieaiion y dar ejemplos de cada uno de ellos.
13. Cmo ser la DFG lor Modificar filtro FIR como CDFGN?
14. Dibujar un CDFG para incorporar la decisin de nodos en el bucle de inicio y final del bucle para limitar la suma trminos
hasta n = 10 para la ecuacin como sigue: yn = a,.x. TN-b + I h,.y. TN-li utiliz en un filtro de HR.
15. Dibujar una FSM modelo de una mquina expendedora automtica de chocolate-programa. La mquina permite que slo
un tipo de moneda de ol. Rs I. un chocolate en una de cal y otra el chocolate es el costo es Rs <S.
16. Dar el programa modelo de maestro y esclavo robot robots en orquesta.
17. Dar el programa modelo de una cmara digital,
18. Dibujar sistema multiprocesador para los casos: (i) fuertemente acoplados a la memoria: (ii), Loosely coupled: (iii)
acoplados por malla; (iv) Anillo-acopladas; (v) acoplado trrido y (vi) el acoplamiento de rbol.
19. Cmo se puede solucionar los siguientes problemas: "Cmo puede ser dividida en un programa (pide o conjuntos de
instrucciones entre los diferentes procesadores? Cmo puede entonces las instrucciones y datos que se prev a lo largo de
los tiempos y recursos disponibles del procesador de manera que exista un ptimo rendimiento"?
20. Supongamos que cuatro procesos estn programadas para ejecutarse en dos procesadores, un programa est dividido de
tal manera que con cada 10.000 ns cada proceso programa 10 veces en cada procesador. Cul ser el nmero mnimo de
conmutacin/microseeond ol contextos?
21. Cmo crear y mostrar mensaje SMS kevpad T9 de un telfono mvil? 'Si c a los Estados Unidos. Modelo FSM y tablas
de estado para todas las claves 0. 1 a 9 con teclado T9. Ejemplos de utilizacin de 6,7 a 6,9 como plantillas.
22. Dibuje el diagrama de 'clase', 'State diagram', 'secuencia', 'DIAGRAMA diagrama de colaboracin" y "diagrama de objetos
para AVCM en Seccin 1.10,2.

Comunicacin entre
procesos y
sincronizacin de
procesos,
subprocesos y
tareas

E
C

Los siguientes puntos importantes han sido discutidas en


captulos anteriores.
1. Software incorporado en un sistema puede ser
altamente complejo como un programa de aplicacin
tiene un nmero de funciones, ISR, subprocesos
mltiples controladores de dispositivos fsicos y
virtuales, y varios objetos de programa que puede ser
secuencial o proces simultneamente en un solo
procesador o procesadores mltiples.
2. El sistema puede tener tareas funcionales muy
diferentes

Y
o
?
Y
o
\

J?

%
X.

Yo

X
Q

Discutiremos los siguientes ejemplos.


1. Los procesos o subprocesos o tareas son controlados por un sistema
operativo, lo que les permite ejecutar simultneamente en un sistema.
2. Las tareas y su stales.
J. Las tareas y los bloques de control, thread-stocks y bloques de control de
proceso.
4. El contexto y el cambio de contexto en el multiprocesamiento, multitarea y
multihilo.
5. La distincin entre las funciones. Los ISRs y tareas a fin de comprender el
temblor detalles de procesamiento de cada uno durante la ejecucin de un
Aprenderemos
los usos de los siguientes IPCs (funciones de comunicacin entre
programa.
procesos)
Y los dispositivos.
1. Semforo para comunicar la ocurrencia de un evento en un proceso a otro
Que espera para el evento para continuar.
2. Como Semaphore mutex o conteo semforo y comprensin del P y
V los semforos.
3. Problema y solucin de los datos que han de ser compartidos entre varias tareas.
4. Mutex en resolver el problema de los datos compartidos y la aplicacin en
ejecucin la crtica
La seccin de cdigos.
5. Solucin del problema de la inversin de prioridad y el estancamiento de la
situacin cuando se utiliza
Un semforo.
6. Seal mediante un proceso para forzar a un proceso en ejecucin para
interrumpir e iniciar una seal
Funcin de controlador (1SR) o proceso.
7. En la cola de mensajes que son insertados por un proceso y comunicada a
Otros que estn a la espera de mensajes.
8. Buzn para comunicar un mensaje de un proceso a otro que espera
Para el mensaje para continuar.
9. Dispositivo de tubo para comunicarse los bytes de mensajes desde un
proceso a otro
Que toma los mensajes.
10. Zcalo como un dispositivo bidireccional para comunicar los bytes como un
arroyo o como por
El protocolo desde una direccin de socket en un proceso a otra direccin de socket
en
Otro proceso que puede ser local o remoto.
J
11. Llamada a procedimiento remoto desde un proceso para llamar a una funcin o
mtodo en otro
'
Proceso que es remota segn el protocolo de una direccin en un proceso
YoYo
Otra direccin en otro proceso, que puede ser local o remoto.
!
OS proporciona un mecanismo del IPCs para activar los procesos para sincronizar y
J

Comunicacin entre procesos y sincronizacin de procesos. Subprocesos y tareas

1305:

" 7.1 procesos mltiples en una aplicacin.


7.1.1 Proceso
Programa de Aplicacin puede dijo que constan de una serie de procesos | La Figura 7.l(al| y cada proceso se
ejecuta bajo
El control de un sistema operativo (Seccin 1.4.6). Significado de azulejos y concepto bsico de proceso puede
entenderse como sigue:
1. Un proceso consta de secuencialmente programa ejecutable (cdigos) y .wn/c-control por un sistema
operativo.
2. La siutc durante la ejecucin de un proceso es representado por la informacin de estado del proceso
(creacin,
Ejecutando, bloqueado o terminado), proceso de estructura sus datos, objetos y recursos, y control de
proceso.
Bloque (PCI3) |Siguiente| posterior explicacin de PCB.
5. Se ejecuta un proceso de planificacin por sistema operativo (kernel), que otorga el control del IPC; el
proceso. Proceso
Ejecuta las instrucciones y los continuos cambios de su rancio lagos como el PC cambia. | PC es el
programa
Puntero de instrucciones o contador para que apunte a la instruccin actual del programa en ejecucin.|
Proceso es que la unidad de cmputo, el cual es controlado por algn proceso en el sistema operativo para la
programacin que permite
Se ejecuta en la CPU y por algn proceso en el sistema operativo para la gestin de los recursos que permita el
uso de sistemas
Memoria y otros recursos del sistema, tales como la red, archivo, pantalla o impresora.
Proceso se define como una unidad computacional que procesa en una CPU y cuyo estado cambia en el
Control del ncleo de un sistema operativo. Tiene una pizarra, que tit una instancia define el estado del
proceso (correr,
Bloqueado o terminado), la estructura de los procesos-sus datos, objetos y recursos y el bloque de control de
proceso.

Ejemplo 7.1.
Considere la posibilidad de un dispositivo de telefona mvil (seccin 1.5.5). El software incorporado del
dispositivo es sumamente complejo, ha
Una serie de funciones. Isr. threads mltiples controladores de dispositivos fsicos y virtuales y varios
Los objetos que deben ser procesadas simultneamente en un solo procesador. El SO se supone la aplicacinembedded
Software como compuesta de un nmero de procesos. Procesos ejemplar en el dispositivo son las siguientes: /
(i) Voz eneodinn y proceso de convolucin: el dispositivo capta las palabras habladas a travs de un altavoz.
Y genera las seales digitales despus de la conversin analgica a digital, y la codificacin de dgitos
Y convoluting u.cantar un cdec: fii) proceso de modulacin: (iii) el dis/ilas proceso: (iv)gui (graphic
Interfaces de usuario) y (v) Key-inpul proceso para aprovisionamiento de interrupciones de teclado del usuario.
Rf'jctss bloque tonirol PCB es una estructura de datos con la informacin con la que el sistema operativo controla
la
Proceso de la pizarra. El PCB se almacena en la memoria protegida del kernel en direcciones. La JCP consta de
los siguientes
Informacin sobre el estado del proceso.
1. ID de proceso. La prioridad de un proceso, proceso primario (si alguna), el proceso hijo (si hay alguno)
y la direccin (el orador siguiente

306

Los sistemas integrados

Unidades de clculo, la ejecucin de cdigos en el cual es controlado por el programador de SO,


inter- el proceso de comunicacin, los recursos, el administrador de memoria del sistema y otros
recursos del sistema (como red, archivo, pantalla o impresora) mecanismos de control de acceso y
se procesan simultneamente.
Proceso 1 proceso 2 |------------------------------Proceso de PCB 1 Proceso de PCB 2
j

Proceso n-1 | - - - - j n proceso ;


Proceso de PCB
Proceso de PCB
n-1
n

(a)
Proceso 1 _ | -

------

Yo _f _____

L
:''.
_____ I_ _r ___________:

Rosca

Rosca

Yo

Rosca
1
Pila

. J ____

Pila

Proceso i j

Pila ~~|
Proceso de PCB 1

J J Rosca

R~~i
_[ j

'

_k Yo
Pila __ J

Proceso de PCB i

Un subproceso es un proceso o subproceso dentro de un proceso que tiene su propio contador de programa, su
propio puntero de pila y pila, su propio parmetro de prioridad para su planificacin de un hilo-planificador, y sus
propias variables que carga en los registros del procesador en el cambio de contexto y se procese simultneamente
junto con otros subprocesos.

(b)
Tarea 2.

Tarea 1
TCB tarea 1 |

| TCB tarea 2.

-- taskn-1 -------------- -j taskn ]

| TCB -n de tareas 11

| tarea TCB

n|

Las tareas son unidades informticas programa incrustado que se ejecutan en una CPU
bajo el control del estado mediante un bloque de control de tareas. Las tareas son
procesadas de manera simultnea
(c)

Fig. 7.1.

(a) los procesos (6) Roscas (c) Tareas

7. Proceso de seal rancio |mscara mscara cuando se establece en 0 (activel el proceso se inhibe de
marcha y cuando se restablece a 1. El proceso est permitido ejecutar|.
8. Seales (y mensajes) tabla de envo (para el proceso CIP funciones).
LJ. OS-recursos asignados' |ej. archivos descriptores de descriptores de archivos abiertos. Descriptores Jevicc para abrir (accesible) dispositivos, direcciones de buffer y
estado, toma-descriptor para abrir el socket|.

10. Las restricciones de seguridad y permisos.


Los registros de la CPU actual, entre las que se incluyen PC Y SP se denomina contexto y guardar en la PCBseal pila de procesos y guardar un registro de las direcciones de memoria. A continuacin, el proceso de
ejecucin lavazas. Otro proceso de registros de CPU ahora y que se ejecuta el proceso de carga. Esto tambin
significa que el contexto ha cambiado a otro proceso.

"7.2 Los subprocesos mltiples en una aplicacin.


Programa de Aplicacin puede decirse que constan de una serie de hilos o una serie de procesos y subprocesos
Figura 7.1(b)]. El significado y el concepto bsico de subproceso puede entenderse como sigue:

Comunicacin y sincronizacin entre procesos procesos de ot. Subprocesos y tareas

307

1. Un subproceso CUIISIXIN uf secuencialmente programa ejecutable (Codex) y la yesca de control estatal


en un SO.
2. El estado inU > mat!' >n de un subproceso ix representado por thread-rancio (puesta en marcha,
funcionamiento, bloqueado o terminado ! Rosca slraeuin- sus datos, objetos ami un subconjunto de los recursos de
proceso anil thread-stack.

3. Un subproceso es una entidad ligero.


[Nota: Un proceso se considera como un proceso pesado y una entidad controlada a nivel de kernel. Un
proceso puede tener cdigos en la memoria secundaria a partir de la cual las pginas pueden alternaba en la fsicala memoria principal durante la marcha del proceso. El proceso puede tener por tanto la estructura de los procesos
con el mapa de la memoria virtual. descriptores de archivo, ID de usuario y as sucesivamente. Un subproceso
puede considerarse un proceso ligero y un proceso a nivel de la entidad controlada. |,Vwe: lo que la estructura es,
sin embargo, depende del sistema operativo.|
Un subproceso es un proceso o subproccss dentro de un proceso que tiene su propia PC. su propia SP y pila, su propio
parmetro de prioridad para su planificacin por thread-planificador, sus variables que carga en los registros del procesador
en el cambio de contexto. Tiene su propia mscara de seal en el kernel. La seal la mscara cuando desenmascarados permite
la rosca para activar y ejecutar. Cuando enmascarados, la rosca se coloca en una cola de espera de subprocesos. Una pila de
subprocesos est en un bloque de direcciones de memoria asignada por el sistema operativo. Cuando una funcin en un hilo en
SO se llama, la funcin de llamada rancio se coloca en la holgura superior. Cuando existe la funcin de llamada de retorno toma
la informacin de estado de la pila de LOP.

Un sistema operativo multiproceso se ejecuta ms de un proceso. Cuando un proceso se compone de varios


subprocesos, se denomina proceso multiproceso. Un subproceso puede considerarse su hija proceso. Un
subproceso define una unidad mnima de un proceso multiproceso que os horarios en la CPU y asigna los recursos
a otros recursos del sistema.
Una estructura de proceso consta de datos de asignacin de memoria, descripcin del archivo y el directorio.
Los distintos subprocesos de un proceso pueden compartir una estructura comn. Varios subprocesos pueden
compartir los datos del proceso.
El proceso se puede asignar bloques de direcciones de memoria de programa en la memoria fsica, as como
en la secundaria (memoria virtual) para los cdigos de proceso. La asignacin de memoria significa que la
asignacin de la ejecucin de la lgica del programa direcciones con las direcciones fsicas donde las pginas de
cdigos de proceso de carga. Un mapa llamado memoiy virtual map se utiliza para memoiy mapping. Un
subproceso no necesitan poseer estos datos.
Cmo una tarea difieren de un tema? Rosca es un concepto utilizado en Java o Unix. Un subproceso puede
ser un subproceso dentro de un proceso ora proceso dentro de un programa de aplicacin. Para programar los
mltiples procesos, existe el concepto de formar grupos de hilo de rosca y bibliotecas. Un colmillo es un proceso
Ejemplo
7.2
y el SO Docs de la multitarea. La tarea es una entidad controlada kernel mientras subproceso es una entidad
Considere
la
de un
dispositivo
de atelefona
mvil
(seccinde1.5.5).
Displayjtroces.s
puede no
tener
controlada delposibilidad
proceso. Una
tarea
es anloga
un hilo en
la mayora
los aspectos.
Un subproceso
llamar a
mltiples
subprocesos.
Visualizacin
de
un
subproceso.
La
hora
j)ate
puede
ser
para
mostrar
la
hora
fecha.
otro subproceso para ejecutar. Una tarea no puede llamar directamente a otra tarea a ejecutar. Ambosy la
necesitan
Un
thread Display_Barreiycan
ser para mostrar
la energa
de la batera. Un thread
Display_Sigtud
puede ser
un planificador
adecuado. Multithreading
necesita
un thread-programador.
Necesidades
de multitarea
de un
para
mostrar la
depuede,
la sealo no,
paraque
la comunicacin
con elyproveedor
Un
programador
depotencia
tareas. No
los grupos de tareas
bibliotecasdedeservicios
tareas enmviles.
un determinado
sistema
subproceso
operativo. puede ser DisplayJPmfile para mostrar en silencio o sonido-modo activo. Un
thread Display_Mensaje ean para mostrar los mensajes no ledos en la bandeja de entrada. Un
subproceso DisplayjCall estado puede ser para mostrar el estado de la llamada; si la marcacin o llamada en
espera. Display_men puede ser para mostrar u Tbenu. Estos subprocesos pueden compartir los bloques de
memoria comn y recursos asignados a la siDispiavJProatss. Una pantalla subproceso ahora es la mnima
unidad computacional controlado por el RTOS. Mlcada subproceso tiene parmetros independientes-ID,
prioridad, PC, SP, registros de la CPU y su estado actual. MU

308

Los sistemas integrados

Un subproceso es un proceso o subproceso dentro de un proceso que tiene su propia PC. su propia SP y pila, su
propio parmetro de prioridad para su planificacin por thread-programador. Rosca es un concepto en Java y
UNIX y es un proceso o subproceso ligero en un programa de aplicacin. El subproceso puede compartir una
estructura de proceso. Tiene una pila de subprocesos en la memoria. Tiene un identificador nico. Tiene
miembros en el sistema de la siguiente manera: arranque, funcionamiento, bloqueado y acabados.

" 7.3 tareas


Tarea es el trmino utilizado para designar el proceso en el RTOSes para los sistemas integrados. (por ejemplo.
VxWorks y uCOS-fl son RTOSes. que utilizan el trmino tarea.) Una tarea es similar a un proceso o subproceso en
un SO. Algunos sistemas operativos utilizan el trmino tarea y algunos utilizan el trmino proceso. La figura 7.1(c)
muestra el software de aplicacin que consta de una serie de tareas.
1. Una tarea consta de un programa ejecutable de forma secuencial (cdigos) bajo un control estatal por un
sistema operativo.
2. La informacin de estado de una tarea est representada por el estado de la tarea (en funcionamiento,
bloqueado o terminado), la tarea de estructura sus datos, objetos y recursos y el bloque de control de
tareas (TCB).
Un programa de aplicacin tambin puede ser definido como un programa consistente de las tareas y
comportamientos en el . arious estados. El grupo de estados son controlados por algn proceso en el sistema
operativo para la programacin que permite que se ejecute en la CPU y por algn proceso en el sistema operativo
para la gestin de recursos que permite utilizar la memoria del sistema y otros recursos, tales como la red, archivo,
pantalla o impresora.
( mbedded software para una aplicacin puede consistir en una serie de tareas y cada tarea Ejecutar necesita
un control del estado del sistema operativo. Supongamos que slo hay una CPU en un sistema. Cada tarea es
independiente en el sentido de que toma el control de la CPU cuando est programada por un programador en el
SO. El planificador controla y ejecuta las tareas. Una tarea es un proceso independiente. No hay ninguna tarea puede
llamar a otra tarea, fit es a diferencia de C++ (orC) funcin, que puede llamar a otra funcin. | La tarea puede enviar
la seal(s) o el(los) mensaje(s) que le permita ejecutar otra tarea esperando esa seal o mensaje. El SO puede
bloquear una tarea en ejecucin y deje anotherta.sk acceder de la CPU para ejecutar el serv guinda cdigos.
Tarea es definido como unidad computacional programa integrado que se ejecuta en una CPU bajo el control del
estado del ncleo de un sistema operativo. Ella tiene un estado, el cual en una instancia define por inclinada (en
ejecucin, bloqueado o terminado). Su estructura de datos, los objetos y los recursos, y el bloque de control.
Considere una ACVM (Seccin 1. 10.2). El ACVM-embedded software es altamente compleja y los horarios SO
Para ejecutar la aplicacin de software integrado que consta de una serie de tareas. Tareas ejemplar en el ACVM
Comimos como sigue: (i) la tarea de entrada del teclado del usuario-, el teclado obtiene la entrada del usuario,
(ii) la tarea Read-Amount:
Leer la cantidad de monedas insetted, (iii) la tarea de entrega de chocolate; ofrece el chocolate y las seales de
la
Mquina para prepararse para la siguiente entrada de las monedas, (iv) la pantalla Tarea, (v) GUI_Ta.sk (para
grficos de usuario
Interfaces), (vi) la tarea de comunicacin para el aprovisionamiento de la AVCM acceso de propietario a la
7.4 Los estados de tareas
mquina
El estado y la informacin.
La figura 7.2(a) muestra una tarea y sus miembros. Tarea ha caducado, que incluye su estado en un momento dado
en el sistema. Puede ser uno de los siguientes estados: Inactivo (crear), Listo, girando, bloqueado y eliminado
(terminado). Es

Ejemplo 7.3

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

; 309

En el estado listo de nuevo despus de finalizar cuando tiene bucle de espera infinito-una caracterstica importante
en el diseo de sistemas integrados. Operaciones multitarea son por el cambio de contexto entre las diversas
tareas.
Creado

Seal o mensaje

Tarea Enviar Info tarjeta

Mensaje de
autenticacin en
task_read_PORT_ln
put
1 bloqueado "fiEspere la seal
o mensaje

Task_Send_PORT_Output

(h).
Fig. 7.2 (a) Tarea y sus miembros (b) miembros de la tarea Task_SendJ3ard_lnfo en el ejemplo 7.4
Una tarea puede considerarse uno de los cinco estados. Lo que los Estados pueden ser, sin embargo,
depende del ROS. Cinco estados son como sigue.
1. Inactivo (CREA) Estado: La tarea lia ha creado y memoria asignada a su estructura. Sin embargo, no est preparado
y no est schcdulable por el kernel.

2. Listo (activo) Estado: La tarea creada est preparado y puede programarse por el ncleo, pero no funciona en la
actualidad como otra prioridad mayor tarea est programada para ejecutarse y tiene los recursos del sistema en este
ejemplo.
3. Estado de ejecucin: la ejecucin de los cdigos de mantenimiento y la obtencin de los recursos del sistema en esta
instancia. Se ejecutar hasta que se necesita algn IPC (entrada) o comienza a esperar para un evento o hasta que se
anticipe por otra tarea de mayor prioridad de esta tarea.
4. Bloqueado (espera) Estado: ejecucin de los cdigos de servicio se suspende tras guardar los parmetros necesarios
en su contexto. Se necesita algo de IPC (entrada) o a la espera de un evento o esperando a que la tarea de mayor
prioridad para el bloque. Por ejemplo, una tarea pendiente mientras lamentos para una entrada desde el teclado o el
archivo. A continuacin, el planificador se sita en el estado bloqueado.
5. Eliminados (terminado) Estado: La tarea creada tiene la memoria de-allotled a su estructura. Se libera la memoria. La
tarea tiene que ser re-creado.

Crea y activa una tarea ser en uno de los tres estados, listo, en ejecucin y bloqueado.

Ejemplo 7.4
Considere la posibilidad de una tarjeta inteligente (Seccin 1.10.3). jyhen^t est insertada en un lector de
tarjetas de la mquina host, obtiene la radiacin y los cargos.
Paso 1: Deje que el principal programa primero ejecutar un SO OSJnitiale function (). Esto permite el uso de
funciones RTOS.

Los sistemas integrados

Paso 2: El programa principal se ejecuta una funcin del SO SO_task_CTeate ( ) para crear una
tarea,Tarea_Send_.Card_lnfo. La tarea es para el envo de informacin de la tarjeta en el host. La
tarea se asigna memoria para la pila. La tarea tiene un TCB mediante los que el sistema operativo
controla la tarea. Estado de la tarea est en estado de inactividad. Deje esta tarea de alta prioridad.
Paso 3: OS_task_Create ( ) ejecuta dos limones para crear otras dos tareas, Task_Send_PORT_Output y
TASK_read_PORT_lnpul y ambos olTliem tambin estn en estado de inactividad. Estas tareas
permiten ser prioridades de media y baja, respectivamente.
Paso 4: Las funciones para iniciar OS_Start ( ) y para iniciar n el reloj del sistema interrumpe las
garrapatas_SO_Per_sec (). El sistema cambia desde el modo de usuario al modo de supervisin cada
1/60 segundos si n = 60. Los tres miembros se realizarn tareas en ready_estado por una funcin del
SO.
Paso 5: El sistema operativo ejecuta una funcin, lo que hace que la tarea_Send_CARD_Info estado mientras
se ejecuta. La tarea_Send_CARD_rnfo ejecuta una funcin del SO mailbox_post_request
(autenticacin), que enva la solicitud de identificacin del servidor a travs del puerto 10 para el host
utilizando la tarea Task_Send_PORT_Output.
Paso 6: La tarea_Send_CARD_hifo ejecuta una funcin mailbox_wait (), lo que hace que la tarea como
estado bloqueado y el SO cambia respecto a otra tarea Task_Send_PORT_Output y luego toi
Task_read_PORT_input para leer los datos de entrada de 10 puertos.
JJ
Paso 7: Cuando el buzn obtiene el mensaje de autenticacin del servidor host, el sistema operativo
cambia mi contexto para task_Send_Cy_Info y la tarea viene en el estado de ejecucin de nuevo.

Mi

Figura 7.2(b) muestra la tarea Task_Send_CARD_fnfo estados en diferentes pasos.

7.5

MM

Tareas y datos

La figura 7.3 muestra una tarea y sus datos, incluyendo su contexto y TCB. Una tarea tiene los siguientes datos
a una tarea especfica, que guarda en la TCB.
1. Cada tarea tiene un identificador igual que cada funcin tiene un nombre. El ID es de un byte y se
denomina ndice de la tarea si un tpico os asigna a cada ID un nmero entre 0 y 255.
2. Cada tarea puede tener un parmetro de prioridad. La prioridad, si entre (I y 255. Est representado por
un byte (normalmente, cuanto ms alto sea el valor, menor ser la prioridad de la tarea).
3. Cada tarea tiene su independientes (distintos de otras tareas) los valores de los siguientes en un instante:
(i) PC (direccin de memoria desde donde se ejecuta si se concede el acceso a la CPU) y (ii) SP (direccin
de memoria de donde se obtiene el guarda registros de CPU y parmetros, que incluye registros para la
tarea PC y el puntero a la parte superior de la pila de tareas despus de que el programador garantiza el
acceso a la CPU). Estos dos valores son parte de su contexto de una tarea.

Contexto Cada tarea tiene un contexto (registros de CPU y parmetros, que incluye
registros para la tarea PC tnd puntero a la funcin llamada pila-top). Esto refleja el estado
de la CPU justo antes de que el sistema operativo bloquea una tarea ind inicia otra tarea
en el estado de ejecucin. El contexto lo actualiza continuamente durante la ejecucin de
la tarea i y el contexto se guarda antes de conmutacin se produce a otra tarea.
Interruptor Zontext slo despus de guardar estos registros y punteros El interruptor de
control de la CPU a cualquier otro trocess o tarea. El contexto debe recuperar en la
transferencia del control del programa a la CPU para ejecutar la tarea de nuevo, ame en OS
desbloquear su estado y permitindole entrar en el estado de ejecucin de nuevo. El
contexto- witching accin debe ocurrir cada vez que el programador de tareas se ejecuta
bloques una y otra tarea.

Comunicacin entre procesos y sincronizacin de procesos. Subprocesos y tareas

311

J (i) puntero a una funcin de

inicio; puedo ejecutar una


funcin inicia una tarea ;
de esta direccin.
| (ii) un puntero a la estructura
de datos de contexto. La
estructura incluye los registros
del procesador y el estado
tokens.
(iii) Un puntero a un nuevo
objeto Task (funcin) que se
ejecutar a continuacin.
(iv)Un puntero a la pila de una
tarea anterior objeto (funcin).

ID de tarea
Tarea
contexto
----- PC
conuter)

(Programa

----- Puntero de pila (SP)


----- Registro de la CPU
----- Registro de estado del

procesador
Fig. 7.3Tarea
una tarea
tareay sus datos, incluyendo su contexto y el bloque de control de tareas

prioritaria
Cada tarea tiene tambin
un contexto inicial, contexto de la crcel. El contextjnit tiene los parmetros iniciales
de una tarea. Los parmetros
de contextjnit son como sigue: i) el puntero a una funcin de arranque: Ejecutar una
contextjnit
funcin inicia una tarea desde esta direccin, (ii) el puntero a la estructura de datos de contexto: la estructura
incluye los registros del procesador y el estado tokens, (iii) la tarea contexto puede tambin incluir un puntero a
un nuevo objeto Task (funcin) que se ejecutar a continuacin, (iv) tambin puede incluir un puntero a la pila de
una tarea anterior objeto (funcin).

Ejemplo 7.5
Considere una ACVM (Seccin 1.5.2). Despus de la tarea Read-Amount (para leer la cantidad deCUUUUIIlJ
monedas
insertadas)
Obtiene el costo del chocolate, enve un IPC (una seal o un mensaje) para dejar que el sistema operativo y
cambio de contexto
Iniciar la tarea entrega de chocolate.
Y vitch /
Tarea ofrece entrega de chocolate El chocolate, enva un IPC para mostrar tarea para mostrar 'gracias
Y visitar de nuevo' y enva otro IPC a la mquina preparada para la siguiente entrada de las monedas.
Hay conmutadores de contexto frente a Read-Amount tarea tarea entrega de chocolate, chocolate
delantero
Ilelivery tarea para mostrar la tarea y la tarea de mostrar al usuario de la tarea de entrada de teclado.
Cada tarea tiene un TCB. TCB es un mentor)" del bloque. Figura 7.3 mostr el TCB datos para una tarea. La TCB
7.5.1
Bloquedede
control
de tareas
es una estructura
datos
con la informacin
con la que el sistema operativo controla la tarea de la pizarra. La
TCB tiendas en el rea de la memoria protegida del kernel. La TCB consta de la siguiente informacin sobre la
tarea. Almacena la informacin de PC instantnea actual (para indicar la direccin de la siguiente instruccin que
se va a ejecutar para esta tarea), mapa de la memoria. la seal (mensaje) tabla de envo de seal, mscara, Id. de
tarea. Pizarra de CPU (registros, tareas y tareas de PC SP) y la pila del kernel (para la ejecucin de llamadas de
sistema y as sucesivamente). [Nota: (i) La TCB es similar al bloque de control de proceso (PCB) y (ii) el TCB
estructura de datos puede variar de un sistema operativo a otro.!

7.6

Una distincin clara entre las funciones, los ISRs Y TAREAS POR SUS
CARACTERSTICAS
- ,1*

7. 6. 1 La tarea de codificacin en la interminable bucle Event-Waiting


Cada tarea puede ser codificado, de tal manera que es en el caso de bucle de espera interminable para empezar.
Loop es un evento que sigue esperando que un evento ocurra. En el evento de inicio, el bucle comienza desde la
primera instruccin del bucle.

| 312

Los sistemas integrados

La ejecucin de los cdigos de servicio (o estableciendo un token que es un evento lor otro lask) entonces se
produce. Al final, la tarea devuelve al evento de inicio de bucle de espera.

Ejemplo 7.6
Considere una tarea entrega Chocolate ACVM. Puede ser codificado como sigue.
/* Los cdigos para el Chocolate__ entrega tarea */
\t<itic void tarea^Entregar (void *taskPointer) {
T* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
Mientras que (I) | I* iniciar un bucle while infinito. */
/' esperar un evento indicado por un IPC de la tarea Read-Amount */
- Cdigos para ofrecer un chocolate en un recipiente. */
.' Enviar mensaje a travs de un IPC para mostrar "Recoger el buen chocolate. Gracias, visite de nuevo "
a J La pantalla Tarea*/
Ji
Reanudar la tarea retrasada Read-Amount */
Mj
J; I* final del bucle while*/
Mi
Al final de la tarea_Ofrecer funciones */
Jjm

7. 6. 2 Distincin entre la funcin y la tarea de iSR

ella

'A
hay varios dispositivos, funciones, ISR y los objetos de programa, el software integrado puede ser
modelada co isisting de mltiples tareas y cada tarea est programada por el kernel y programacin utiliza IPCs
para
onization. Se usan hebras en embedded Linux- o las aplicaciones basadas en Unix. Se usan
hebras en Java, las funciones son subunidades de los procesos o tareas o ISR u otra funcin. Las funciones y los
ISRs no tienen anlogo de PCB orTCB. Slo tienen una pila. Funcin no tiene asociado ningn Scheduler
programador de subprocesos en el kernel. El ISR ha asociado
manejador de interrupcin en el kernel. El cuadro 7.1 resume las caractersticas de funciones. Los ISRs y tareas. 1

>;. neh

Planificador de tareas como

1. Funcin es usada en cualquier rutina para realizar un conjunto especfico de acciones como por los
argumentos que se pasan y que se ejecuta cuando se llama por una tarea o proceso o subproceso dr de
otra funcin. Ejecutar funciones de anidamiento. Se ejecuta despus de que la funcin de guardar el
contexto anterior y despus de recuperar el contexto de una pila comn.
2. Un iSR es una funcin que se ejecuta en las interrupciones. Un ISR se ejecuta en un caso y a la espera
de ISR se ejecutarn segn la programacin basada en prioridades. ISR pueden publicar los eventos o
seales o mensajes. Los ISRs se ejecutarn segn el hardware basado en el mecanismo de manejo de
interrupcin. Los ISRs puede o no ejecutar mediante la anidacin. ISR se ejecuta despus del contexto
guardar y despus recuperar el contexto de una pila comn en caso de anidamiento.
3. Una tarea es una funcin que se ejecuta en la programacin. Una tarea puede esperar, as como los
eventos o seales post ot mensajes. Las tareas se ejecutan despus de guardar el contexto anterior al SP
seal la direccin en la tarea TCB y el cambio de contexto al nuevo contexto en la nueva tarea SP seal
direccin en TCB. Las tareas se ejecutarn segn la programacin de las tareas de gestin de la IPC y el
mecanismo del sistema operativo.

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

313

Recuerde marcar la Seccin 5.4.6 explica la re-entrant funcin. Cada tarea deben ser reentrantes funcin o debe
har e a u ay a solev el problema de datos compartidos. La seccin 7.7 se explicar el problema de datos
compartidos y el uso de semforos.
Tabla 7.1 Caractersticas de las funciones, las rutinas de servicio de interrupcin (ISR) y tareas

Litiiclion
1.

Usos: se usa la funcin


en cualquier rutina o
proceso o tarea para
ejecutar el conjunto de
cdigos
especficos
para
realizar
un
conjunto especfico de
acciones como por los
argumentos que se
pasan.

ISR
[SR es usado para ejecutar un conjunto de
cdigos especficos para realizar un
conjunto especfico de acciones. ISR tiene
el cdigo que se ejecuta una sola vez y
para el mantenimiento de la llamada
interrupcin solamente.

Una interrupcin para ejecutar una


llamada [SR
Pueden ser de hardware o software en
cualquier instancia. Toda interrupcin de
2. Llamar fuente: una llamada para llamadas de origen para la ejecucin de
ejecutar un I unci ion es de otra los ISRs son independientes.
funcin.
Proceso o subproceso o tarea.
3. Contexto dolor: Cada funcin eotle Cada ISR es un cdigo de funcin
ejecutar hy cambios en el contador orientada a eventos. El cdigo ejecutado
del programa valor instantneo. Hay por cambios en el contador del programa
una pila. En la parte superior de que valor instantneo. ISR tiene una pila para
el valor del contador de programa I el contador de programa valor instantneo
de ei dc dej sin ejecutar) y otros y otros valores que deben guardar antes de
valores (denominadas funciones' permitir que otra ISR a ejecutar. La pila
contexto > deben guardar cuando se no necesita l en un bloque de memoria
llama a otra funcin o sobre la distinto cuando diferentes ISRs ejecutar y
interrupcin y el inicio de la ISR. la pila de ISR se encuentra en un bloque
Cuando hay retorno de una funcin de memoria comn cuando hay anidacin.
a la funcin, que lo llama. El (Esto es similar a la de la pila que se
contador
de
programa
de asocia con las funciones.) en el hardware
restauraciones de pila (o superior del procesador puede o no prov ision para
que el valor donde el cdigo anterior permitir el ISR para ejecutar en el modo
izquierda |Figura 7.-*(a)|. La pila de anidado.
las funciones de un proceso,
subproceso o tarea es comn en el
bloque de memoria al ejecutar las
diferentes funciones.
4. Respuesta y sincronizacin: Una
funcin llama a otra funcin y hay
anidacin de uno otro |figura 7.4(b)|.
Hay un disco

Hay un mecanismo de hardware para


responder a una interrupcin de la fuente
de interrupcin de llamadas y existe.
segn la funcin del kernel del sistema
operativo dada, un mecanismo de
sincronizacin para el ISR. (Consulte el
captulo siguiente; Las Figuras 8.1 a) a c)
y 8.4.

Tarea
Se utiliza para ejecutar tareas
especficas cdigos ol lor realizar un
conjunto especfico de acciones. Tarea
tiene cdigos en un interminable bucle
de espera.

Una llamada para ejecutar la tarea est


frente al sistema operativo (SO). Un OS
preemptive planificador puede permitir
que otra tarea de mayor prioridad que
se va a ejecutar despus de bloquear la
actual. Es el RTOS (kernel) que
controla la programacin de tareas.
Cada cdigo de tarea Ejecutar por
cambio en el contador del programa
valor instantneo. Cada tarea tiene una
pila de tareas distintas en el bloque de
memoria distintos para el contexto
(contador de programa instantane

Yo
Yo

Yo
Segn el kernel del sistema operativo
dada | caracterstica, hay una tarea de
responder y yo mecanismo de
sincronizacin. La ( kernel se utilizan
funciones de sincronizacin para la tarea
i j porque slo el kernel llama a una tarea
para que se ejecute en un momento. J
cuando una tarea se ejecuta y cuando
bloquea J lf'

Est completamente bajo el conlrol


del SO.1 j
(cont)

314!

Los sistemas integrados

L-'anctiou

5. Estructura: una serie de funciones o


lunciion cun l las subunidades de;i
proceso o subproceso o tarea o ISR
o subunidad de otra funcin o
funcin principal.

/SR

Tusk

Una tarea es independiente y puede ser


coiiiddered como una funcin, la cual
est llamada a ejecutar por el
programador de sistemas operativos
mediante un cambio de contexto y con
tareas schedu

Un ISR es independiente y puede ser


considerado como una funcin, que ains
en un evento debido a la interrupcin de
la fuente. Una interrupcin pendiente est
programada para que se ejecute con una
interrupcin en la manipulacin del
mecanismo en el sistema operativo. El Cuando se utiliza una variable global, ya
sistema, durante la ejecucin de un ISR, sea el arco interrupciones desactivadas y
puede dejar a otro mayor prioridad ISR despus de completar el uso de la
variable global las interrupciones estn
6. Uso de variables globales: funcin ejecutar.2
habilitadas o que el SEMA
puede cambiar las variables
Cuando se utiliza una variable global, las
globales. Las interrupciones debe
interrupciones debe estar inhabilitado y Tarea puede enviar (POST) los
estar inhabilitado y despus de
despus de completar el uso de la variable mensajes y seales y el Colmillo pueden
completar el uso de la variable
global
las
interrupciones
estn esperar las seales y mensajes utilizando
global las interrupciones estn
el IPC las funciones, por ejemplo.
habilitadas.
habilitadas (Seccin 7.8).
OSSemPend OSSemPost ( ) y ( )
ISR utilizando funciones de IPC para post
(Seccin 7.7). Tarea puede utilizar el
7. La publicacin y el envo de
(post) puede enviar las seales (Seccin
parmetros: Funcin puede obtener 7.7.1) y mensajes (apartados 7.10 a 7.16), mutex proteccin de las secciones de
cdigo. (Secciones 7.7.2. 7.7.4 y 7.8.3).
los parmetros y mensajes a travs
por ejemplo. OSSemPosi ( ). No puede
de los argumentos que se pasan o utilizar el ISR muiex proteccin de las
variables globales, al que se hace
secciones crticas. No ISR para seal o
referencia. Funcin devuelve los mensaje durante la marcha.
resultados de las operaciones a
travs de las referencias en los
argumentos y mediante el retorno
como por fecha de referencia tipo
definido para
-Dependiendo
de laella.
programacin del sistema operativo en tiempo real (RTOSi por el kernel los dos mtodos ms comunes son:
II", programacin cooperativa (ih anticipatoria scheduling (consulte las secciones 8.10.1 a 3).
El manejador de interrupcin o RTOS controlar las funciones de controlador de interrupcin de la programacin de ISR. Todo
depende de cmo el ncleo de interrupcin o manejar el hardware gestiona la ISR (Seccin 8.7).

-lustracin 7.4(a) muestra un rasgo caracterstico de las llamadas de funcin anidada en un programa..La figura
7.4(b) muestra la >0 asignaciones en diferentes momentos en las llamadas anidadas.

" 7.7 Concepto de semforos.


7.7.1 El uso de un semforo como una variable o notificar a Event-Signalling
Oponerse a que hay dos trenes. Asumir que utilizan una va identieal. Cuando el primer tren A es para iniciar en
el ack. Una seal o token tor es un conjunto (true/tomado) y la seal o token para el otro tren. B es reset (false
liberado).
OS ofrece para el uso de un semforo de sealizacin o la notificacin de una accin determinada y para
notificar a los cceptance del aviso o seal. Deje una variable booleana, binario .v. representan el semforo. Las
operaciones n la variable s seales o nrarifies.ffre operaciones para comunicar la ocurrencia del evento y para
ommunicating tomando nota del evento. Es como un token. Liberacin de un token es la ocurrencia de un evento
y te la aceptacin del token es tomar nota de ese evento.
Supongamos que el s incrementos de 0 a I para sealizacin o notificando a la ocurrencia de un evento de una

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

315

La seccin de cdigos en una .sk o hilo. Cuando el evento se ha tomado nota


de una seccin a otra tarea esperando lor ese evento, la s decrecimientos
de I a 0 y los cdigos de Tareas espera iniciar en otra accin.

Y Contexto
La funcin F
Llame a f1 -J o De F

Superior

de

la

pila

cuando f2 inicio - VOLVER


ARRIBA en la pila de F2 VOLVER ARRIBA en la pila

Guardar contexto de f! Yo

Pila

Runf2

Contexto de f1
Contexto de F

(a)

de f1
Una tarea

Ejecutar F1
Llame a f2

La tarea B I

Tareas

CO

Yo

CM

Demora de un~j

Un sealado en SP
-J Direccin en la TCB de

Contexto de carga B
desde
Pila en SP seal
Direccin en la TCB de
B

Holgura de B
Contexto de B

(b)

PCi
Cdigos
|
Llame a fl i
EN
Memoria ; ru
1
n utilizando
PC

Regreso
de f1 .
Llame a f2

Quiero vo
lver
Cdigo restante de f11 toF

_J

Yo
Tiempo

(c)
Fig. 7.4 (a) acciones en las llamadas a funciones en un programa (fa) Accin sobre el derecho preferente
de una tarea por B o cambiar a la tarea B durante la ejecucin del programa (c) contador de

programa las asignaciones a las diferentes funciones en un proceso sobre las llamadas a las funciones
anidadas
Un semforo es llamado semforo binario cuando su valor es 0. Se supone que se ha tomado (o aceptado), y
cuando su valor es I. Se supone que ha sido liberado (o enviado o publicado) y tareas no ha tomado todava.
Un ISR puede liberar el token. Una tarea puede liberar el token y aceptar el token o esperar para tomar el
token (fila 7, Tabla 7.1).
A continuacin se muestra un ejemplo de cmo utilizar un semforo binario para sealizar o notificacin de
sucesos (si un evento de una tarea o un subproceso y para sealizacin o notificar a otra tarea esperando ese
evento.

Ejemplo 7.7

Considere una ACVM (Seccin 1.10.2) entrega de Chocolate (Ejemplos de tareas 7.5 y 7.6). Despus de la
tarea proporciona el chocolate, tiene que notificar a la pantalla Esperando tarea para ejecutar una seccin del
cdigo para mostrar "Recopilar el buen chocolate. Gracias, visite de nuevo '. La seccin de espera para la
visualizacin del mensaje de agradecimiento toma este aviso y luego se inicia la pantalla de mensaje de
agradecimiento.

Los sistemas integrados

Asumir OSSemPost ( ) es un sistema operativo para PC funeiion I mediante la publicacin de un semforo y


asumir OSSemPend ( i es otra funcin de IPC para esperar el semforo. Deje sdispT es el semforo binario
publicado desde la tarea entrega de chocolate y adoptadas por una seccin de tareas Mostrar lor mostrando el
mensaje de agradecimiento. Deje sdispT Valor inicial = 0. Los siguientes sern los cdigos.
Task_static void *taskPointer Dcliver (void) {

Mientras que (1)1.


/' cdigos para ofrecer un chocolate en un recipiente. */
(sdispT OSSemPost) I* Post al semforo sdispT. Esto significa que la funcin del SO sdispT incrementos en el
bloque de control de evento correspondiente. SdispT pasa a ser 1 ahora. */

1.
Static void Task_Display (void *taskPointer) I, mientras que (1) (

1. Semforo proporciona un mecanismo para permitir que la seccin del cdigo de tarea esperar hasta otro
notifica a una accin (finalizar la ejecucin de una seccin de los cdigos en una tarea o ISR). Se prov ides
una manera de demostrar la ocurrencia de eventos. Proporciona una forma de sealizacin tomando nota
del evento. Semforo puede ser utilizado como una variable de sealizacin o notificantes (token).
2. Incrementos de semforo cuando publicado (enviado o publicado) por una tarea o una instruccin de ISR
y disminuye cuando aceptadas o adoptadas por la seccin de tareas en espera.
3. Esperando en la seccin tarea es notificado para iniciar el envo del semforo. Esperando en la seccin
tarea comienza en el semforo.

7.7.2 El uso de un semforo como recurso clave y de seccin crtica


OS ofrece para el uso de un nico semforo como un recurso clave y para la ejecucin de los cdigos en la seccin
crtica. Una tarea A. al obtener acceso a un recurso (por ejemplo, una impresora de red o archivo o seccin de
cdigos denominados seccin crtica o impresora) notifica al os que han tomado el semforo (tomen nota). |Una
funcin del SO, por ejemplo. OSSemPend () va a notificar. El sistema operativo devuelve el semforo ya adoptadas
(aceptado) por decremeijting tjje semforo de I a 0.| ahora, la tarea de un accede al recurso (por ejemplo, accede al
archivo, red o ejecuta la seccin de cdigos).
La tarea, despus de completar el acceso a un recurso (p. ej. el buffer de memoria o archivo, o red, o la seccin
crtica) notifica al os que han publicado que el semforo de aviso (post). [Una funcin, por ejemplo, SO OSSemPost
() va a notificar. El sistema operativo devuelve el semforo como liberada incrementando el semforo de 0 a l.|

MmM'

(sdispT OSSemPend) I* esperar el semforo sdispT. Esto significa que la tarea espera hasta sdispT publicado y
se convierte en I. Cuando sdispT se convierte en 1, la espera ha terminado, un SO funcione para
disminuir sdispT evento correspondiente en el bloque de control, pasa a ser de 0 sdispT ahora. y luego
ejecuta la tarea an ms el siguiente cdigo*/
./* Cdigo para mostrar ''Recopilar el buen chocolate. Gracias. visite de nuevo '' */

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

317

La tarea B pueden tener acceso al mismo recurso mediante OSSemPend ( ) si se est esperando que tor
semforo. La tarea B puestos utilizando el semforo OSSemPost ( i alter completando el acceso a ese recurso.
La figura 7.5(a) Se muestra el uso de un semforo entre /I y B. muestra las acciones secuenciales en vivo a
vivir momentos diferentes. A, TL, T2. T3 y T4. Figura 7.3(b) Se muestra el diagrama de distribucin de las tareas
en la ejecucin de los Estados como una funcin de tiempo. Marca el vivir acciones secuenciales en cinco ocasiones
diferentes, A, TL, T2. T3 y T4.

Fig. 7.5 (a) Uso de un semforo entre tareas, A y B. Se muestra las cinco acciones secuenciales en cinco

ocasiones diferentes, A, TL, T2, T3 y T4 (b) Diagrama de distribucin de las tareas en la ejecucin
de los Estados como una funcin de tiempo. Marca las cinco acciones secuenciales en cinco ocasiones
diferentes, A, TL, T2, T3 y T4, y se muestra el uso de un semforo entre tareas A y B por las funciones
del sistema operativo
Un ISR no puede utilizarse para esperar lor la clave de recurso desde una ISR puede soltar la tecla. Una tarea
de la otra mano puede soltar la tecla y aceptar la tecla o espere para tomar la llave. (fila 7, Tabla 7.1).

Ejemplo 7.8
Considere una (Seccin 1.5.5) UpdateJIime tarea. Cuando la tarea de actualizar el tiempo t en un reloj del
sistema tick interrupt /s se inicia, tiene que notificar que es escribir el tiempo t en un dispositivo y que la t est
cambiando. Despus de las actualizaciones de tareas UpdateJme t informacin al dispositivo en /s, tiene que
notificar al leer Jme esperando tarea para ejecutar una seccin del cdigo para leer desde el dispositivo t de
cal. Despus de la lectura Jme lee t, tiene que notificar a Updaie_Time tarea para tomar nota de ello.
Asumir OSSemPost ( ) es una funcin de la IPC en OS para publicar un semforo y asumir OSSemPend
() es otra funcin de IPC para esperar el semforo. Deje supdateT ser el semforo binario pendientes y enviados
a actualizar Jme y pendientes y publicado en la seccin de lectura Readjime t. Deje supdateT Valor inicial =
I. Los siguientes sern los cdigos.
..
Static void tarea_ Actualizacin Junio (void *taskPointer) {

Los sistemas integrados

Mientras que (1) {


(supdateT OSSemPend) /* ESPERE el semforo supdateT. Esto significa que cuando se espere ms, una funcin
del SO decrecimientos supdateT evento correspondiente en el bloque de control y supdateT pasa a ser de
0 a T2. */
/* Los cdigos para escribir la fecha y la hora en el dispositivo. */
(supdateT OSSemPost) /* Post al semforo supdateT. Esto significa que la funcin del SO supdateT
incrementos en el bloque de control de evento correspondiente y se convierte en 1 supdateT en T3. */
1:
Static void tarea_ _Tiempo de lectura (void *taskPointer) { while (1) {
OSSemPend (.supdateT) /* esperar el semforo supdateT. Esto significa que la tarea espera hasta supdateT es
publicado y pasa a ser 1. Cuando supdateT se convierte en I y la funcin del SO entonces
decrecimientos supdateT evento correspondiente en el bloque de control y supdateT pasa a ser de 0 a T4. A
continuacin, la tarea se ejecuta el siguiente cdigo adicional*/
I* Cdigo de lectura de la fecha y la hora en tiempo dispositivo */
.

(supdateT OSSemPost) /* Post al semforo supdateT. Esto significa que la funcin del
SO supdateT incrementos en el bloque de control de evento correspondiente. SupdateT se
convierte en 1. */
Vlutex cuando un semforo binario se utiliza al comienzo y al final de las secciones crticas en dos o ms tareas
que en cualquier instancia de la UCH slo una seccin se puede ejecutar cdigo. A continuacin, el semforo se
denomina mutex, (mutex palabra es lerived desde mutuamente excluyentes). Ejemplo 7.8 mostr que la
tarea_ UpdateJlime y tarea_ Read_Time usa la emaphore supdateT como mutex y en cualquier instancia o cdigo
seccin en Task_ UpdateJTime o seccin de cdigo en ask_ ReadJTime se ejecuta y tiene acceso exclusivo a la
vez que el dispositivo variables de fecha y hora. Mutex ayuda en la configuracin de acceso a una impresora de
red o de mosaico por varias tareas a instancias distintas porque en una instancia nica odas para una de las tareas
que se ejecutarn para enviar los datos a la impresora de red o de mosaico. La seccin 7.8.3 discutir s ayuda a
compartir datos entre las tareas.
En algunos SO, un semforo como un recurso clave se denomina mutex cuando el semforo se encarga de
prioridad desviacin problema tambin. Seccin 7.8.5 explica el problema de la inversin. En algunos SO, un
semforo como un recurso ey se denomina mutex incluso cuando el semforo no cuidar el problema de la inversin
de prioridad. En algunos )S, un semforo como un recurso clave se denomina mutex y la opcin es proporcionada
a programador para usar prioridad desviacin seguro o sin inversin segura mutex.
1. Semforo proporciona un mecanismo para que una seccin del cdigo de tarea o una tarea espere hasta
otra seccin tarea termina otro conjunto de cdigos que estas secciones se utiliza un recurso comn,
dispositivo o archivo o variable.
2. Cuando un semforo est en espera (para tomar o aceptar) por un cdigo de tarea, entonces esa tarea tiene
el acceso a los recursos necesarios al semforo es "dada" (enviado o publicado), los recursos que se
desbloquee.
3. Semforo puede ser utilizado como un recurso clave. Clave de recurso es el que permite el uso
ofresou'.des como la CPU, la memoria u otras funciones o cdigos de seccin crtica.
4. Semforo binario puede ser utilizado como un mutex, as como notificacin de eventos bandera.

Comunicacin entre procesos y sincronizacin de procesos. Subprocesos y tareas

319

7.7.3 Uso de varios semforos para sincronizar las tareas


OS semaphore funciones son proporcionadas para operaciones multitarea. La figura 7.6 muestra un ejemplo de la
utilizacin de dos semforos para sincronizar las tareas I. .1 y ,W y las tareas J y L. Ejemplo 7.9 proporciona otro
ejemplo en que /. J. K y L estn sincronizados para ejecutar secuencialmente.
Tarea /

Semforo para la notificacin de eventos


En una seccin crtica
Tareas activas en la tarea J y L
V>. :..zz] semforo para el
evento ; W
Notificacin de inicio
de la tarea

Tarea K bloquea cuando y es tomado


por l tarea J y M BLOQUE cuando X es
tomada por L

Fig. 7.6 Un ejemplo de la utilizacin de dos semforos -uno para sincronizar las tareas t, J y M y otro para
tareas J y L

Ejemplo 7.9
Un semforo puede permitir que una tarea se ejecute entre muchos de los iniciados en una lista con el estado =
'READY' o ' runt tilin' Run en una instancia, mientras que otros estn esperando. Lei la siguiente ser los cdigos.
Asumir OSSemPost () es un sistema operativo para la contabilizacin de funcin IPC un semforo y
asumir OSSemPend () es otra funcin IPC SO para esperar el semforo. Mstask permiten ser el semforo
binario pendientes y enviados a cada tarea para que otra carrera. Deje sTaskl inicialmente ser I y sTaskl
mstask3 y mstask4 inicialmente 0.
Los siguientes sern los cdigos y la primera tarea / Ejecutar y, a continuacin, J,
K, L, entonces yo cuando en esa instancia MSTASK I = I y mstask2 mstask3, mstask4 = 0.
Static void tarea_ *taskPointer / (void) {
while (I) {
(sTaskl OSSemPend) /* ESPERE sTaskl semaphore y cundo esperar entonces una funcin del SO
decrecimientos mstask 1 en el bloque de control de evento correspondiente y sTaskl pasa a ser 0 */
/* Los cdigos para tarea./ *1

320

Los sistemas integrados

(OSSemPost mstask2) /* Post sTaskl el semforo. Esto significa que la funcin del SO2 en
mstask incrementos de bloque de control de evento correspondiente. mstask2 pasa a ser I */
);
Static void tarea_ *taskPointer J (void) { while(l){
(OSSemPend mstask2) /* esperar el semforo mstask2. Esto significa que la tarea espera hasta mstask2es
publicado y pasa I. Cuando mstask2 se convierte en I y la funcin del SO es decrecimientos mstask2 en el
bloque de control de evento correspondiente. mstask2 pasa a ser 0. A continuacin, la tarea se ejecuta el
siguiente cdigo adicional*/
/* Cdigo de tarea J */

(OSSemPost mstask3) /* Post al semforo mstask3. Esto significa que la funcin del SO3 en mstask
incrementos de bloque de control de evento correspondiente. mstask3 se convierte en 1. */
I:
Void staiic tarea_ *taskPointer K (void)
{ wh:le (I) (
(OSSemPend mstask3) /* esperar el semforo mstask3. Esto significa que la tarea espera hasta mstask3 es
publicado y pasa a J. Cuando mstask3 se convierte en I y la funcin del SO es decrecimientos mstask3 en
el bloque de control de evento correspondiente. mstask3 se convierte en 0. A continuacin, la tarea se
ejecuta el siguiente cdigo adicional*/
/* ('ode para tarea K */
(OSSemPost mstask4) /* Post al semforo mstask4. Esto significa que la funcin del SO4 en mstask incrementos
de bloque de control de evento correspondiente. mstask4 pasa I. */
L.

)
Static void tarea_ *taskPointer L (void) {
while (1) {
(OSSemPend mstask4) /* esperar el semforo mstask4. Esto significa que la tarea espera hasta mstask4 es
publicado y pasa I. Cuando mstask4 pasa a ser 1 y la funcin del SO es decrecimientos mstask3 en el
bloque de control de evento correspondiente. mstask4 pasa a ser 0. A continuacin, la tarea se ejecuta el
siguiente cdigo adicional*/
/* Cdigo de tarea J */
(sTaskl OSSemPost) /* Post sTaskl el semforo. Esto significa que la funcin del SO sTaskl
incrementos en el bloque de control de evento correspondiente. sTaskl se convierte en 1. */
Por ejemplo, cuando una tarea K es para empezar a correr, tarda el semforo mstask3. El
sistema operativo bloquea las tareas /, J y L. L espera una tarea para la liberacin del
semforo por K.

Dumber de tareas en espera para el mismo semforo RTOS tiene la respuesta a lo


siguiente: cuando un nmero de tareas tiene el mismo semforo que espera entonces
que de ellas toma el semforo? En algunos 3S, un semforo es dado a la tarea de ms
alta prioridad entre las tareas en espera. En algunos SO, un semforo

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

Se da a la tarea de espera mximo en el modo FIFO. En algunos SO. Un semforo es dado para seleccionar una
opcin.
Y llie opcin es proporcionada por prioridad o modo FIFO. La tarea prioritaria que comenz, tiene un semforo
Llrst prioridad en caso de que la opcin est seleccionada. La tarea pendiente desde un largo perodo de lagos en
el primer semforo
Caso el FIFO opcin est seleccionada.
1. Se utilizan varios semforos y otro conjunto de semforos pueden compartir entre diferentes conjuntos
de tareas.
2. Semforo proporciona un mecanismo para sincronizar los cdigos de tareas. Pueden utilizarse varios
semforos.
En la multitarea del sistema.

7.7.4 Conteo de semforos.


Un sistema operativo puede proporcionar para el conteo de semforos. Un semforo de cuenta puede ser un signo
de 8 16 32Poco entero. El valor de recuento del semforo controla el bloqueo o el funcionamiento de los cdigos de una
tarea. El
Semforo de cuenta disminuye cada vez que se ha tomado. Se incrementa cuando se libera por una tarea.
El valor de recuento del semforo en una instancia refleja el valor inicializado menos el nmero de veces que
se
Tomar ms el nmero de veces que libera. El semforo de cuenta puede ser considerado como el nmero de fichas
Presente y espera la tarea no va a esperar y ms si al menos un testigo est presente. El uso de un semforo
Es tal que uno de la tarea as espera ejecutar los cdigos o espera un recurso hasta por lo menos un token es
encontrado.
Supongamos que una tarea puede enviar los paquetes en una red en ocho secuencialmente transmite los
bferes. Cada vez
La tarea se ejecuta lagos al semforo y enva la pila en un bfer, que est prxima a la anterior. Asumir
Que un semforo de cuenta enviado es inicializado = 8. Despus de enviar los datos de la pila, la tarea tarda y
enviados
Enviado decrecimientos. Cuando una tarea intenta tomar el enviado cuando es 0. A continuacin, el grupo de
bloques y no se puede enviar en la pila
Cualquier bfer.

Ejemplo 7.10
Considere una ACVM (Seccin 1.10.2). Considerar la entrega de Chocolate tarea. No puede entregar ms de
la
Nmero total de chocolates, total cargado en la mquina. Supongamos que un semCnt es inicializada igual a la
Total. Cada vez, el nuevo chocolates son cargados en la maquina. semCnt incrementos en el nmero de nuevos
Chocolates aadida. La tarea entrega de chocolate puede ser codificado como sigue.
Static void Task_Entregar (void) { TaskPointer
Semforo de cuenta se puede considerar como un entero sin signo semforo puede ser 'Tomados* hasta su valor
Mientras que (I) ( /* iniciar un bucle while infinito. */
=
/* Espere un evento indicado por un IPC de la tarea Read-Amount */
0 y se inicializa con un valor alto. Tambin puede ser "dado" un nmero de veces.
(semCnt OSSemPend) /* ff chocolate disponible es true entonces la tarea tarda el semforo si
Es semCnt I o > I (lo que significa que no es 0) y disminuir el semCnt y contine
Operaciones */
I;

1322;
I;

Los sistemas integrados

7.7.5 P y V de semforos.
Un sistema operativo puede prov ide para un eficiente mecanismo de sincronizacin, llamado P y V de semforos
en un estndar, llamado POSIX 1(1(13.1 b. un estndar IEEE (POSIX (Portable OS interfaces en Unix). OS
funciones semforo P y V representan el semforo por variables de nmeros enteros. Un semforo variable, aparte
de la inicializacin, slo se tiene acceso a travs de dos operaciones atmicas estndar; P y V. fP (para operacin
de espera) se deriva de una palabra neerlandesa Proberen.' que significa 'test'. V ( seal ) para notificar la operacin
se deriva de la palabra 'Verhogen' que significa 'incremento'.! (es una operacin atmica. que no puede ser en
partes).
1. P funcin semaphore seales que la tarea requiere un recurso y si no disponible esperan.
2. V funcin semaphore seales de la tarea para el SO que el recurso est ahora libre para los dems
usuarios.
Considerar P semforo. Se trata de una funcin. P (&sem_l) que, cuando se llama a un proceso, realiza las
siguientes operaciones con semforo. sein_l.
1. /* Disminuir la variable
semforo*/ sem sem__/-/-1:
2. /* Si enviarse_l es menor que 0. Enviar un mensaje a OS waitCallToOS llamando a una funcin. Control
del proceso de transferencias a os. porque menos de 0 significa que algn otro proceso ya ha ejecutado la funcin
P sobre sem_l. Siempre que hay volver al sistema operativo, ser en el paso 1. */
Si (sem_l < 0)(waitCallToOS (sem)\_/).
Considerar V .semforo. Se trata de una funcin, V(&sem_2) que, cuando se llama a un proceso, realiza las
siguientes operaciones con semforo, sem_2.
3. /* incrementar la variable
semforo*/ sttin_2 = sem_2 + I:
4. /* Si sem_2 es menor o igual a 0. Enviar un mensaje a OS signalCallToOS llamando a una funcin. Control
del proceso (l transfiere a os. Porque < o = 0 significa que algn otro proceso ya ha ejecutado la funcin P sobre
sem_2. Siempre que hay volver al SO. Ser en el paso 3. */
Si (semjl < - >{ signalCallToOS () (sem_2)\ \

Uso de P y V Funciones Semforo con una seal o una propiedad Notification P y V


Las funciones pueden representar una sealizacin o variable notificantes. sem_s cuando se utiliza como se muestra
en el ejemplo 7.11.

Ejemplo 7.11.
Let sem_s sea un semforo variable. Dejarlo funcionar como una seal o una notificacin de un evento usando
variable sem_s. P y V se utilizan funciones de semforo en dos procesos, la Tarea I y la tarea 2 como sigue.
Proceso 1 (Tarea 1)
While (true) {
Cdigos /* */

Proceso 2 (Tarea 2)
While (true) {
Cdigos /* *1
P (&sem_s);
/* Los siguientes cdigos slo se ejecutar
cuando el sem_s no es inferior a 0. */

V (&sem_s);

Comunicacin entre procesos y sincronizacin de procesos. Subprocesos y tareas

1323!

/* Continuar proceso I si sem_s no es igual a 0


O no menos de 0. Esto significa que no hay ningn proceso
Ejecutando en la actualidad. */
):

Uso de P y V Funciones Semforo con un mutex propiedad P y V puede representar funciones


Un semforo mutex variable, sem_m cuando se utiliza tal como se explica en el ejemplo 7.12.

Ejemplo 7.12
Let sem_ I y sem_2 sea la misma variable semjn. Esta ltima funciona como un mutex como sigue, cuando P
y V se utilizan funciones de semforo en dos procesos, la Tarea I y la tarea 2.
Proceso 1 (Tarea 1)
Mientras (true) (
/* Los cdigos antes de una regin crtica*/

Proceso 2 (Tarea 2)
While (true) {
I* los cdigos antes de una regin crtica*/

I* Escriba Process 1 cdigos de regin crtica*/


P (&sem_m);
/* Los siguientes cdigos slo se ejecutar cuando
sein_m no es inferior a 0. */

I* Entrar en proceso 2 cdigos de regin crtica*/


P (&enviarse_m);
/* Los siguientes cdigos slo se ejecutar
cuando el sem_nt no es inferior a 0. */

/* salga del proceso 1 cdigos de regin crtica */


V (&sem_m):
/* Continuar proceso I si sem_m no es igual
demasiado o no menos de 0. Esto significa que no
hay ningn proceso lamentos y ha ejecutado P
Funcin mediante sem_m en la actualidad. */

/* salir de proceso 2 cdigos de regin crtica */


V (&sem_m);
/* Continuar proceso 2 si sem_m no es igual a 0 o no
menos de 0. Esto significa que no hay ningn proceso
esperando y ejecutado P Funcin mediante scm_m en
la actualidad.
*/ /

La misma variable semjn, es compartida entre los procesos que yo y el proceso 2. Su uso es para hacer ambos
procesos ganar mutuamente acceso exclusivo a los recursos (CPU). Process I se ejecuta despus de la ejecucin
de P o proceso 2 se ejecuta despus de la ejecucin de P. tambin, Process 1 se ejecuta despus de la ejecucin de
V o proceso 2 se ejecuta despus de la ejecucin de V.
Figura 7.7(a) muestra la utilizacin de P y V de semforos y la tarea, tarea / J y el planificador. Cuando una
tarea requiere un semforo P, si semlm true' (=1) anteriormente entonces se convierte en 'false' (=0) y ejecute la
tarea contina como sem_m no es inferior a 0. Cuando una tarea se ejecuta V, si sem_m fue 'false' anteriormente
entonces se establece a 'true' y la tarea contina funcionando, de lo contrario, la tarea bloquea y espera para la
realizacin de otra tarea. Figura 7.7(b) muestra las asignaciones de PC a un proceso o una funcin cuando se usa
P y V de los semforos.

Los sistemas integrados

324

Uso de P-V Funciones Semforo con un escrutinio propiedad Semaphore Lei

all ;i proeess
(grupo c). La funcin P disminuye el recuento y la funcin incrementa la
cuenta. La funcin de I1.
Opera en un semforo de cuenta. scm.cl, como se mu estra en el ejemplo 7 .13.

Ejecucin de
P(& SEM.M)

Ejecutar V (&
SEM.M)

Ejecutand
o
Tarea 1

Ejecutando
OS

Ejecutand
o la tarea 2

(b)

Ig. 7.7 (a) Uso de P y V de semforos en la tarea 1 y la tarea 2 y la otra en un programador (b) El contador de
programa asignaciones a un proceso o cuando se utiliza la funcin P y V de semforos.

Ejemplo 7.13
Asumir un procesos utilizando P funciones semforo en la tarea, tarea_c. Deje que enviarse_cl ser variable y
un semforo de cuenta representan el nmero de lugares vacos creados por el proceso. c. P las funciones operan
en estos y reduce el nmero de lugares vacos como sigue:

Proceso c (Task_c)
While (true) {
/* Los cdigos sobre la introduccin de una regin productora*/

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

: 325!

/* Alter salir del proceso productor 3 cdigos de regin


*/ P (&sem_cl)',
I* Continuar proceso c si sem_cl no es inferior a 0. */

Uso de P y V Funciones Semforo semforo de cuenta con una propiedad para bfer enlazado
el problema de la solucin de dejar una tarea generar los productos para su uso en otra
tarea. Una tarea puede tener un recuento independiente semforo.
Considerar tres ejemplos:
(i) Una tarea transmite bytes a un flujo de E/S para llenar las plazas disponibles en la secuencia.
(ii) Un proceso "escribe" un flujo de E/S a un bfer de impresora y,
(iii) Una tarea de produccin de chocolates est siendo llevada a cabo.
En el ejemplo (i) otra tarea lee el flujo de E/S bytes desde los lugares llenos y crea lugares vacos.
En el ejemplo (ii), desde el bfer de impresin un I/O stream impresiones despus de un bfer de lectura y
despus de la impresin, ms lugares vacos que se crean.
En el ejemplo (iii) nuevamente, como consumidor consume los chocolates producidos ms lugares vacos
(para abastecer los chocolates producidos) son creados.
Una tarea bloqueo problema operativo es comnmente llamado problema productor-consumidor, una tarea
no puede transmitir el flujo de E/S si no hay lugares vacos en la secuencia. La tarea no se puede escribir en la
memoria del bfer de impresin si no hay lugares vacos en el bfer de impresin. El productor no puede producir
si no hay lugares vacos en el consumidor slock.
Un programa clsico de sincronizacin es llamado el programa problemtico entre productores y
consumidores. !l tambin se llama acosados buffer programa problemtico. Aqu, uno o ms productores (tareas
o procesos de rosca) Crear salidas de datos que luego son procesadas por uno o ms consumidores (tareas o
procesos). Los datos de salida de los productores pasaron de arco para su procesamiento por parte de los
consumidores utilizando algn tipo de IPC (Seccin 7.8) que utiliza una memoria compartida y semforos
(escrutinio o colas de mensajes o buzones).
Supongamos que se tienen dos procesos (tareas 3 y 4). La P y V las funciones operan en dos compartieron
contando semforos. sem_cl y sem_c2, como en el ejemplo 7.14.

Ejemplo 7.14
Supongamos que hay dos procesos utilizando P y V Funciones Semforo y dos tareas, las tareas 3 y 4.
Let sem_d y sem_c2 son dos variables semaphore escrutinio y representan el nmero de lleno los lugares
creados por el proceso 3 y un nmero de lugares vacos creados por el proceso 4, respectivamente. P y V
funciones operan en estos como sigue.
.
^

Proceso 3 (Tarea 3)

Proceso 4 (Tarea 4)

Mientras (true) (

While (true) {

Los sistemas integrados

/* Los cdigos antes una regin productora*/

/* Los cdigos antes una regin consumidora*/

/* Escriba Process 3 cdigos de regin


productora*/
P (&.sem_c2)\.
/* Los siguientes cdigos slo se ejecutar
cuando el sem_C2 (nmero de vaco placesjis no
menos de 0. */

/* Introduzca proceso consume 4 cdigos de


regin*/ P (&sem_cl):
/* Los siguientes cdigos slo se ejecutar
cuando el sem_cl (nmero de lugares llenos) no
es inferior a 0. */

Proceso de salida /* */ Cdigos de regin 3


V (&sem_cl);
/* Continuar proceso 3 si sem_cl no es igual a 0 o no
menos de 0. */

Proceso de salida /* */ Cdigos de regin 4


V (&sem_c2)\.
/* Continuar proceso 4 si sem_C2 no es igual a 0
O no menos de 0. Esto significa que llenan las plazas
son
Todava disponibles en la actualidad. */

Dos semforos. sem_c I y sem_c2 son compartidos entre los procesos 3 y 4. Cuando ejecuta el proceso 3,
primero se reduce el nmero de lugares vacos en el proceso 4. Cuando el proceso 3 completa la produccin,
aumenta el nmero de plazas llenas en el proceso 3. Cuando el proceso 4 consume, en primer lugar se reduce el
nmero de plazas llenas en el proceso 3. Cuando el proceso 4 completa el consumo, aumenta el nmero de
lugares vacos en el proceso 4. Process 3 produce salida despus de ejecutar P. o proceso consume 4 (usesi
entradas despus de ejecutar P. tambin proceso 3 producto despus de ejecutar V o proceso 4 producto despus
de ejecutar V.
P y V Funciones semforo est en POSIX IEEE 100.3b. un estndar aceptado para el IPCs. Pueden utilizarse
como una sealizacin de un evento, como una exclusin mutua, como un semforo de cuenta y los semforos
para el bfer enlazado la solucin de problemas.

7.8

Datos compartidos

7.8.1 Problema de compartir datos en mltiples tareas y rutinas de trabajo.


El problema de datos compartida puede explicarse de la siguiente manera: Suponga que varias funciones (o ISR o
tareas) compartir i variable. Supongamos que en un instante el valor de esa variable opera y durante sus operaciones,
slo que parte de la operacin se ha completado y una parte sigue siendo incompleta. En ese momento, supongamos
que hay :n interrumpir. Ahora, supongamos que hay otra funcin. Tambin comparte la misma variable. El valor
del 'anabit! Puede diferir de la que se esperaba si la operacin anterior haba sido completado. La operacin
incompleta una ocurren como sigue.
Supongamos que una variable es de 128 bits y el procesador es de 32 bits. Las operaciones sobre la variable ser
usando nuestras operaciones ALU de 32 bits para poder utilizar el ALU de 32 bits de este procesador. Es una
operacin atmica, que

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

I 327

No se puede subdividir en el suboperalions o ninguna de las suboperaciones puede quedar incompleto y ninguna
otra operacin puede empezar antes todos suboperalions estn completas ahora. Suponga que la operacin de 128
bits en la variable no es atmica. Esto significa que la operacin puede ser interrumpida antes de todas las cuatro
operaciones son completados. Una interrupcin puede ocurrir al final de cada uno de 32-bit de todos), no
necesariamente al final de la operacin de 128 bits. Por lo tanto, la denominada 1SR u otra funcin puede usar la
variable operado de forma incompleta o puede cambiar esa variable cuando se comparte con otra funcin. A la
vuelta, los nuevos valores de esa variable se encuentra incompleta y las operaciones se realizarn en esa nueva
variable de 128 bits en lugar de la antigua.

Ejemplo 7.15
(a) Considerar x, una variable de 128 bits, b[27 B0. Supongamos que la operacin PO| es Shift izquierda por 2
bits
Multiplique por 4 y encontrar y = 4 x x. Deje que la OSP, hecho no atmicamente en cuatro suboperaciones,
OPAS| OPBsl,
OPCS| y OPDs, para B3, ........ B0 , B63 ..... B12, B93 ....... Bw y bl27 ...........B96,
respectivamente.
Suponiendo
En una instancia que suboperaciones OPAd, OPBsl y OPCs,estn terminadas y OPDsl segua siendo
incompleta. Ahora me interrupcin ocurre en esa instancia. La / llamadas alguna funcin que utiliza x si
x es el mundial
Variable. Modifica x = b'|27..............B'0. A su regreso de la interrupcin, como OPDsi no est completa,
OPDs]
Opera sobre b"]27 ...... B'9(i no en b)bgfv 27...
Lb) considerar la fecha d y el tiempo t. Deje que d y t deben tomarse en el programa como variables globales.
Supongamos que un subproceso Update_Time_Date es la actualizacin de t y d informacin sobre
interrupcin de tics del reloj del sistema 7S. La rosca Display_Time_Dute en el ejemplo 7.2 muestra que
l y d informacin.
1. Asumir que cuando Update_Time_Daie corri t = 23:59:59 y d = de fecha 17 de julio de 2007.
2. La pantalla_Tune_Date se interrumpe y se supone que DISPLAY d y funcionamiento t no son
atmicas. Visualizacin de d fue terminado pero la pantalla de t fue incompleta cuando ocurri /s de
interrupcin.
7.8.23. Soluciones
problemas
compartidos
Despus de un de
tiempo,
los cambios de
de t datos
a t = 00:00:00
y d = 18 de julio de 2007 cuando el subproceso J
Una solucin
es el uso de la operacin
atmica
para resolver
el problema
de los
Necesitamos
Update_Time_date
se ejecuta.
La pantalla
mostrar
t = 00:00:00
y ladatos
fechacompartidos.
d = 17 de julio
de 2007
las operaciones
debido
al siguiente.
sobreatmicas
la volver
de la
interrupcin y el re-inicio del subproceso bloqueado Display_Time_fecha.
1. Una interrupcin puede ocurrir al final de un ciclo de instrucciones, no al final de unG!
alto nivel de
El usoinstruccin.
de variables brill d y t en dos subprocesos Actualizar _Time_Dute y l)Tiine_display_Dale
Mi
2. Una
puede producirse al final de un ciclo de la mquina y un compilador o un programa
Provoca
el operacin
error de laDMA
pantalla.
Sg
puede no tomar estos detalles a nivel atmico en cuenta operacin DMA (acceso directo a memoria,
significa un 10 dispositivo se carga en la memoria utilizando la direccin de sistema y los buses de datos
cuando la CPU no est realizando ninguna operacin de bus).
3. Una operacin de cambio de contexto puede ocurrir al final de una instruccin para llamar a una nueva
funcin, ciclo y un compilador o programa pueden no estar tomando en cuenta estos detalles a nivel
atmico.
Los siguientes son los pasos que, si se usan juntos, eliminar casi un probable error en el programa debido a
los datos compartidos problema:
,f*
1. Utilice el modificador volatile con una declaracin de una variable que regresa de la interrupcin. Esta
declaracin advierte al compilador que ciertas variables pueden modificar, porque el Se r no considera el
hecho de que la variable es compartida tambin con una funcin de llamada.

Jl

I 328

Los sistemas integrados

2. Utilice las funciones de reentrada con atomic instrucciones que parte de una funcin que requiere su
ejecucin completa antes de que pueda ser interrumpido. Esta pieza es sacrificado en la seccin crtica.
Por ejemplo, (l suboperaciones de desplazamiento de x en el ejemplo 7.15 arc en la seccin crtica.
3. Pul una variable compartida en una cola circular. Una funcin que requiere el valor de esta variable
siempre elimina (toma) desde la cola delante, y otra funcin, que inserta (escribe), el valor de esta
variable, siempre lo hace en la cola nuevamente. Ahora puede producirse un problema en caso de que hay
un gran nmero de funciones que publique los valores en el lago y los valores pero el mximo tamao de
cola necesaria no se proporciona.

Ejemplo 7.16
Ejemplo muestra cmo se soluciona el problema de datos compartidos mediante cola. Considere el ejemplo 7. i
5(b). Asumir que las variables de tiempo t y d para la fecha son variables compartidas y hay una cola QTD en
que un hilo inserta las variables compartidas y otro subproceso elimina estas variables. [Nota: la insercin en
una cola significa escribir un valor en la cola de cola y, a continuacin, cambiando el puntero a la cola cola para
la siguiente insercin. Eliminacin de una cola significa leer el valor
La FIOM la cola cabeza y, a continuacin, cambiando el puntero a la cabeza de la cola para la siguiente lectura.]
1. Asumir que cuando Update_Time_Date corre el t = 23:59:59 y la fecha d = 17 de julio de 2007 y se inserta
en una cola QTD.
2. La pantalla lee date_time_t y d de QVI) y pantallas. Cuando el hilo se interrumpe despus de leer d,
visualizacin de d, an se mantiene la t /s se produce cuando se interrumpe. Visualizacin de t se completa
al volver de la interrupcin.
3. Despus de un tiempo, los cambios de t a t=00:00:00 y la fecha d = 18 de julio de 2007 y el
hilo Update_Tune_Date
Se ejecuta y se inserta el nuevo valor de t y d en la parte posterior de los valores anteriores en QTD- La
pantalla J Mostrar d = 17 de julio de 2007 y T = 23:59:59 y al volver de la interrupcin y en el prximo
ciclo Jt ejecutar el subproceso mostrar d = IH Julio 2007 y ! = 00:00:00.
1
El uso de la cola para las variables compartidas d y t en dos subprocesos
cuando UpdateJ'imeJdate inserta Ml estas en la cola y mostrar Jime_Date elimina estos desde el QTD causas
sin mostrar error.
4. Deshabilitar las interrupciones antes de una seccin crtica comienza cxetininy mosaico y habilitar las
interrupciones en su terminacin. Es un potente pero drstica opcin. Una interrupcin, incluso en el caso de mayor
prioridad que la actual funcin crtica, gens desactivado. La ventaja de esto es que el semforo funciones tienen
mayor sobrecarga computacional de la desactivacin de la interrupcin. La dificultad de esta opcin es que aumenta
en el perodo de latencia de interrupcin para todas las tareas. La latencia aumenta por el tiempo empleado en la
ejecucin de los cdigos de la seccin. El plazo puede ser perdida de un servicio de interrupcin por esa tarea whielt
no comparte la seccin crtica o el recurso.
Como alternativa para deshabilitar las interrupciones. La seccin 7.7.2 se describe el uso de semforos para el
problema de los datos compartidos. Un diseador de software no debe utilizar la drstica opcin de deshabilitar
las interrupciones en todas las secciones crticas, en el sistema operativo para aplicaciones automovilsticas, la
deshabilitacin de interrupciones se utiliza antes de entrar en cualquier seccin crtica para evitar cualquier accin
inesperada debido a un uso inadecuado de los semforos. | Otra alternativa es el uso de bloqueo o spin-lock
funciones en un programador. (Seccin 7.11)
Deshabilitar el uso de la conmutacin de tarea de uno a otro y otros pasos y el uso de semforos (Seccin 7.7),
debe eliminar el problema completamente los datos compartidos desde una multitarea. nntlti-Isr y varios casos
variable compartida. Cada paso tiene sus propias ventajas inherentes en la solucin del problema. Un programador
debe utilizar los diversos pasos perfectamente adecuado para resolver el problema.
Los datos compartidos problema puede surgir en un sistema wheti'ano'.lYer prioridad mayor tarea finaliza una
operacin y modifica los datos o una variable. Utilizando las funciones de reentrada, deshabilitar el mecanismo de
interrupcin, utilizando semforos y IPCs como buzn y cola son las soluciones que se utilizan para el cuidado de
los problemas de datos compartidos.

Comunicacin y sincronizacin entre procesos procesos de ot. Subprocesos y tareas

329

7.8.3 Aplicaciones de semforos y Problema de datos compartidos


Utilizar t"l mutex facilita acceso mutuamente excluyentes por dos o ms procesos a los recursos (CPU). La misma
variable semjn, es compartida entre los diversos procesos. Proceso proceso Let I y 2 comparten sem_m y su valor
inicial = I.
1. Proceso me producto despus semjn disminuye y es igual a 0 y obtiene el acceso exclusivo a la CPU.
2. Proceso me termina alter semjn aumenta y es igual a I; proceso 2 ahora obtiene acceso exclusivo a la
CPU. V Proceso 2 producto despus semjn disminuye y es igual a 0 y obtiene acceso exclusivo a la CPU.
4. Proceso 2 termina despus semjn aumenta y es igual a I: proceso que yo ahora obtiene el acceso
exclusivo a la CPU. La semjn es como un recurso clave y datos compartidos dentro de los procesos I y 2 es el
recurso. Quienquiera lirst disminuye a 0 al comienzo obtiene el acceso y evita que las otras para ejecutar con
quien comparte esta clave.
Mutex es un semforo que proporciona una instancia dos tareas mutuamente excluyentes en el acceso a los
recursos y se utiliza en la solucin de problemas de datos compartidos.

7.8.4 Eliminacin del problema de datos compartidos


El uso de semforos no elimina el problema por completo de datos compartidos. Los diseadores de software no
puede tomar la drstica opcin de deshabilitar las interrupciones en todas las secciones crticas mediante el uso de
semforos. Cuando el uso de semforos, el SO no deshabilitar las interrupciones. Alternativamente, la conmutacin
de tareas- banderas puede utilizarse (Seccin 8.10.3). Los siguientes problemas que pueden surgir cuando el uso de
semforos.
1. El intercambio de dos semforos crea un problema de estancamiento (consulte Seccin 7.8.5).
2. Supongamos que el semforo tomado nunca es liberado? Por tanto, debe haber algn mecanismo de tiempo
de espera alterar que mueren se genera mensaje de error o tomar las medidas adecuadas. Hay un cierto
grado de similitud con el temporizador watchdog de accin sobre un time-out. Un temporizador en el
tiempo de espera se restablece el procesador. Aqu, despus de la hora de salida, die OS informa de un
error y se ejecuta una funcin de gestin de errores. Sin tiempo de espera. un ISR peor latencia pueden
exceder el plazo.
3. Un semforo no tomadas, y otra tarea usa una variable compartida.
4. Qu sucede cuando un tren lagos una seal por un camino equivocado? Cuando se utilizan varios
semforos, si involuntariamente una tarea tarda el semforo, crea un problema.
5. - Puede existir el problema de la inversin de prioridad (consulte Seccin 7.8.5).

7.8.5 El problema de la Inversin de prioridad y situaciones de interbloqueo


Deje que las prioridades de las tareas en un orden tal que la tarea / es de la ms alta prioridad, tarea./ es de inferior
y la tarea K del menor. Suponga que slo tareas / y compartir los datos K y J no comparte datos con K. tambin
dejar tareas / y K solo compartir un semforo y no / Por qu slo unas pocas tareas compartir un semforo? No
todos comparten un semforo? La razn es que el peor caso de latencia es demasiado elevada y podra exceder el
plazo si todas las tareas se bloquean cuando una tarea tarda un semforo. El peor caso de latencia ser pequeo slo
si el tiempo empleado por las tareas que comparten los recursos pertinentes. Ahora considere la siguiente situacin.
En un instante t0, suponga tarea K tiene un semforo, el SO no bloquee la tarea J y bloquea la tarea /. Esto
sucede porque slo las tareas I y K compartir los datos y J no. Considerar el problema que surge ahora en el
intercambio selectivo entre en y /. En la siguiente instantnea, deje la tarea T, K estn listos para ejecutarse en
primer lugar en una interrupcin. Ahora, supongamos que en el prximo instante t2, se convierte en tarea / aceite
preparado una interrupcin. En este instante, K est en la seccin crtica. Por lo tanto, tarea /no puede iniciar en este
instante debido a K est en la regin crtica. Ahora, si en el prximo instante t,. alguna accin (evento) provoca el
desbloqueo superior al K J para ejecutar tareas prioritarias. Despus instant,t3, la ejecucin de la tarea J no
permiten la mxima prioridad / tareas a ejecutar. Esto es porque aunque K no se est ejecutando y as

330 j

Los sistemas integrados

Yo
V ____

No se puede liberar el semforo de mosaico que comparte con /. Adems, el cdigo de tarea ./ pueden ser tales que,
incluso cuando el semforo es liberado por tarea K. no puede dejar / EJECUTAR U ejecuta los cdigos como si es
en la seccin crtica todo el tiempo). La accin es ahora J como si J tiene mayor prioridad que la /. Esto es porque
un", alter entrar en la seccin crtica y teniendo el semforo cuando el sistema operativo permite ejecutar J. pero
no comparte la prioridad informacin acerca de /-esa tarea / es de mayor prioridad que J. La informacin de
prioridad de otra tarea de mayor prioridad / tambin debera haber sido heredado por K temporalmente, si K espera
/ pero no j y J se ejecuta cuando K an no ha terminado la seccin crtica de cdigos. Esto no sucedi porque el
diseo del sistema operativo dada era tal que no prevea la herencia de prioridad temporal en tales situaciones.
Esta situacin se llama tambin el problema de la inversin de prioridad. Un sistema operativo debe
proporcionar una solucin para el problema de la inversin de prioridad. Algunos sistemas proporcionan la herencia
de prioridad en estas situaciones y, por lo tanto, la herencia de prioridad problema no ocurre al utilizarlos. Consulte
la Seccin 7.7.2 para el uso de un mutex para recursos compartidos. Una exclusin debera ser una funcin booleana
mutuamente excluyentes, mediante el cual la seccin crtica est protegida de la interrupcin de tal manera que el
problema de la inversin de la prioridad no se plantea. Mutex se proporciona automticamente en determinadas
rtos para que la prioridad no se plantea el problema de la inversin. Tambin se puede usar mutex slo anlogo a
un semforo se definen en la seccin 7.7.2 en otro RTOS y que no resuelve el problema de la inversin de prioridad.
Considerar otro problema. Imagine la siguiente situacin.
1. Deje que las prioridades de las tareas sern tales que la H es la tarea de mayor prioridad. A continuacin,
tarea / tiene menor prioridad y tarea J tiene el menor.
2. Hay dos semforos, y SemTokl SemTok2. Esto es debido a que las tareas / y H tienen un recurso
compartido a travs SemTokl solamente. Tareas / y J tienen dos recursos compartidos a travs de dos
semforos. Y SemTokl SemTok2.
3. Que J interrumpir a un instante t0 y tomar tanto los semforos y SemTokl SemTok2 y ejecutar.
Supongamos que en un instante t siguiente, siendo ahora una prioridad mayor, la tarea H interrumpe las tareas
/ J y despus
Toma el semforo SemTokl. y, por tanto, bloquea tanto / y J. en el intervalo de tiempo entre t y t, el fue liberado,
pero SemTok SemTokl2 no fue lanzado durante la ejecucin de la tarea J. pero ste no importa como tareas / y J no
comparten SemTok2. En un instante t->. Si H ahora libera el SemTokl. Permite la tarea / para tomarlo. Incluso
entonces no se puede ejecutar porque tambin est esperando tarea./ para liberar el SemTok2. La tarea ./ est
esperando al prximo instante t.. lor o H o / para liberar el SemTokl ii porque necesita este para volver a entrar en
una seccin crtica. Ni la tarea / comer) ejecutar despus del instante t, ni la tarea 7. Hay una dependencia circular
establecida entre / y ./.
Esta situacin tambin se llama una situacin de interbloqueo. En la interrupcin por H. la tarea ./. antes del
exilio desde el estado de ejecucin, debera haberse puesto en cola-frontal para que ms adelante. Primero debe
tomar SemTokl. y la tarea me pongo en cola siguiente por la misma razn, el estancamiento no hubiera ocurrido
(Consulte Seccin 7.12 para la cola de mensajes).
El uso de mutex solucion el problema de estancamiento en algunos sistemas operativos. Su uso puede l slo
anlogo a un semforo se define en la seccin 7.2.1. En otros sistemas operativos, el mutex uso no puede resolver
el estancamiento de la situacin.
La prioridad se invierte y estancamiento (dependencia circular) se desarrolla en ciertas situaciones cuando el uso
de semforos. Algunos sistemas operativos ofrecen la solucin a este problema del uso del semforo por
garantizar que estas situaciones no se produzcan durante el procesamiento concurrente de operaciones multitarea.

7.9

Comunicacin entre procesos

'.s- es posible enviar a travs del ncleo de una salida de datos (un mensaje de un tamao conocido con o sin
cabezal) o procesamiento por otra tarea! Una manera es el uso de variables globales. El uso de estos ahora crea
dos problemas.

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

331

Uno de ellos es morir .comparte la daia problema (Seccin 7.8). El otro problema es que las variables globales no
impedir cto (encapsular) un mensaje de ser aeeessed por otras tareas.
IPCs en un sistema multiprocesador se utilizan para generar informacin acerca de ciertos conjuntos de
clculos acabado en un procesador y dejar a los dems procesadores esperando terminar estos clculos toman
nota de la informacin.
IPC significa que un proceso (programador, tarea o ISR) genera informacin de seal o valor o genera una
salida para que otro proceso ii permite tomar nota o utilizarlo a travs de las funciones de kernel para [PCs. IPCs
en un sistema multitarea se utilizan para establecer o restablecer una seal o seal o marca o generar mensaje
delante el ciertos conjuntos de clculos acabado en una tarea y dejar las dems tareas, tomar nota de la seal o de
obtener el mensaje. Sistemas operativos proporcionan el software programador IPC las siguientes funciones, que
pueden ser utilizados.
1. Seales
2. Semaphores como testigo o mutex o conteo de semforos para el intertask comunicacin entre tareas que
comparten un comn u operaciones de bfer
3. Colas y buzones
4. Tubos y sockets
5. Llamadas a procedimiento remoto (RPC) para procesos distribuidos.
Seccin 7.7 describe dos funciones de IPC, OSSemPost OSSemPend () y () y el uso de semforos del
PIPPQ. El siguiente
Ejemplo
7.17 ejemplo muestra una aplicacin para el cebado del bfer por una tarea.
Considere el uso de un semforo inutex en las tareas, que necesita utilizar la impresin para el bfer de datos
de una tarea en una instancia. Una tarea se ejecuta una funcin de impresin, que se lee de un bfer de
impresin e imprime. El kernel debera dejar a las dems tareas compartir esta tarea. La tarea de impresin
pueden ser compartidas entre las mltiples tareas que utilice el semforo mutex IPCs en sus secciones crticas.
Cuando la imprimacin bfer se hace disponible para los nuevos datos, un IPC de la tarea de impresin se
genera y J el kernel lagos nota de ella. Otras tareas luego tome nota de ella. Una tarea toma nota de la
OSSemPend Jj( ) funcin del kernel utilizado al principio de la seccin crtica y el (Ask obtiene
mutuamente
acceso exclusivo a la seccin para enviar mensajes en el bfer de impresin mediante la
OSSemPost mj () funcin del kernel al final de la seccin (Secciones 7.7.2. 7.8.3 y 7.11.1).
J

Jj

Considerar ejemplo 7.18. que muestra el uso de las funciones de buzn y semforos IPCs (semforo y buzn
funciones IPC sern descritos en detalle en las secciones 7.11 y 7.13).

Ejemplo 7.18
Considere la posibilidad de un dispositivo de telefona mvil (seccin 1.10.5) Actualizar Jinte tarea (ejemplo
7.8). Suponga que hay una tarea, tarea_Display para mostrar varias lneas de productos que muestra la hora
actual en la ltima lnea. Cuando la pantalla multilnea tarea finaliza la presentacin de la penltima lnea, un
semforo IPC supdateTD desde la pantalla tarea se genera y el kernel toma nota de ello. La tarea de actualizar
continuamente el tiempo entonces puede tomar el'supdateTD y generan un IPC como el buzn de salida para
la fecha y hora actuales.
Cuando la tarea de actualizar el tiempo t en una seal publicado en el reloj del sistema-tick
interrupt se inicia, tomando la supdateTD publicado por la tarea_Display, puede escribir el TD en un buzn de
correo a travs de un IPC para publicar mensaje del buzn, timeDate.
Asumir OSSemPost () es un sistema operativo para la contabilizacin de funcin IPC un semforo y
asumir OSSemPend () es otra funcin IPC SO para esperar el semforo. Deje supdateTD ser el semforo binario
posted at TaskJDisplay y pendientes en la seccin TaskJDisplay para mostrar t y d. Deje supdateTD Valor
inicial = I.

332

Los sistemas integrados

Deje que el PC sea OSMboxPost [function () para publicar el buzn de mensajes IPC Actualizar J'ime y tareas
OSMboxPend () para lamentos para el buzn del IPC en task_ seccin de visualizacin. Deje timeDaie Valor
inicial = null. Los siguientes sern los cdigos:
Static void Task_Display (void *taskPointer) { while (1){

L* IPC por la espera de hora y fecha en el buzn */


(tiineDate OSMboxPend TimeDateMsg =) /* ESPERE para el buzn de mensajes. El limeDate timeDate pasa a
ser nula despus de que el buzn se registr la hora y la fecha por tarea_ Update_time y TimeDateMsg
equivale a la fecha y hora actualizada */
/* Cdigo para mostrar tiempo TimeDateMsg: RR.HH:mm:fecha fecha: mes */
/* IPC para solicitar TimeDate *1
(supdateTD OSScmPost) I* puesto por el semforo se convierte en I supdateTD supdateTD.
I-I*
Static void tarea_ *taskPointer UpdaleJTnne (void) {
Mientras que (1) { /* ESPERE por el reloj del sistema entre seal de interrupcin o notificacin de semforo de
ISR de /s */ OSScmPend (supdateTD) /* ESPERE el semforo supdateTD. Esto significa que la funcin del SO
decrecimientos supdateTD evento correspondiente en el bloque de control. SupdateT pasa a ser 0 */
Cdigos para actualizar la hora y la fecha como por el nmero de interrupciones de reloj recibidas hasta la
fecha */
/* Los cdigos para escribir en el buzn */
<
(timeDate OSMboxPost) /* para el buzn de correos y mensajes timeDate, que igualaba el valor null
Jj
Ahora iguala newupduted fecha y hora*/
1

La necesidad de comunicaciones intertask IPC y as tambin surge en una red cliente-servidor.


IPC significa que un proceso (o planificador de tareas o ISR) genera informacin al establecer o restablecer un
token o valor, o genera una salida para que otro proceso permite tomar nota o utilizarlo bajo el control de
OS.

"Funcin de seal 7.10


Una forma de mensajera es utilizar una funcin del SO seal (). Es proporcionada en Unix. Linux y varios RTOSes.
Los sistemas operativos Unix y Linux utilizar seales profusamente y tienen 31 diferentes tipos de seales para los
distintos eventos. La seccin 9.3 se describen en seal VxWorks RTOS. Slo un mecanismo hardware enva la
interrupcin en el SO, la tarea (o proceso) o el propio OS enva seal. La tarea o el proceso que enva la seal utiliza
una funcin de seal () habiendo un nmero entero n en el argumento. Una seal es funcin, que ejecuta una
instruccin de interrupcin de software int n o SWI n.

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

! 333 i

Una seal' proporciona la menor comunicacin. La seal ( ) enva una salida n tor, un proceso que permite al
sistema operativo para desenmascarar una mscara.La seal de un proceso o tarea segn el n. La tarea se llama
controlador de seal y codificacin tiene similares a las de un Router ISR El controlador funciona de una manera
similar a una mxima prioridad de ISR. Un ISR se ejecuta en una interrupcin de hardware siempre que la
interrupcin no est enmascarada. El controlador funciona en la seal siempre que la seal no est enmascarada.
La seal ( ) obliga al SO para la primera ejecucin de un proceso o tarea sealizado denominado controlador
de seal. Cuando hay retorno desde el sealado o forzados tarea o proceso, el proceso que enva la seal, ejecuta
los cdigos como sucede en un retorno de un ISR. Una mscara de seal es el software equivalente de la bandera
en un registro que establece sobre enmascarado una interrupcin de hardware. A menos enmascarados por
una mscara de seal, la seal que permite la ejecucin de la funcin de gestin de seal- y permite que el
controlador para ejecutar slo como una interrupcin de hardware permite la ejecucin de un ISR.
Un nmero entero (por ejemplo n) representa cada nmero de seal y que asocia una funcin (o proceso o
tarea) manejador de seal, un equivalente de la ISR. El manejador de seal tiene una funcin llamada cada vez que
un proceso se comunica ese nmero.
Un manejador de seal no es llamado directamente por un cdigo. Cuando se enva la seal desde un proceso,
OS interrumpe el proceso de ejecucin y llama a la funcin para el manejo de la seal. El retorno desde el
manejador de seal, el proceso contina como antes.
Por ejemplo, la seal (5). La mscara de seal de manejador de seal 5 se restablece. El manejador de seal y
la funcin connect asociar el nmero 5. La funcin representada por el nmero 5 se ve obligado ejecutar por el
manejador de seal.
Af utilizando una ventaja es que a diferencia de los semforos que tarda el menor tiempo de CPU passible para
forzar un controlador para ejecutar. Las seales son las interrupciones que pueden ser utilizados como el IPC
funciones de sincronizacin.
A diferencia de una seal al semforo. El semforo se utilice como un token o resouree clave para permitir
que otro proceso de tarea bloek o que bloquea un colmillo resouree a un determinado proceso para una
determinada seccin de cdigos. Una seal es slo una interrupcin que es compartido y utilizado por
otro interrupt-sen-hielo por proceso. Una seal generada por un proceso obliga por otro proceso (manejador de
seal) para interrumpir y atrapar esa seal en caso de que la seal no est enmascarada (uso de ese manejador de
seal no est desactivado). Las seales son para ser manejados nicamente para forzar la ejecucin de procesos de
prioridad muy alta, ya que pueden perturbar los horarios habituales y el mecanismo de herencia de prioridad.
Tambin puede causar problemas de reentrada.
Una aplicacin importante de las seales se lo manejar excepciones. (Una excepcin es un proceso que se
ejecuta en un determinado inform de condicin en tiempo de ejecucin.) Una seal informa de un error (llamado
"excepcin") durante la ejecucin de una tarea y, a continuacin, permite que el programador iniciar un proceso
de manejo de error o funcin o tarea. Un error de manipulacin de manejador de seal controla los diferentes
errores de inicio de sesin de cualquier otra tarea. Las funciones de controlador de dispositivo tambin utilizan las
seales para llamar a los controladores (ISR).
Las siguientes son las funciones relacionadas con la seal de IPC, que generalmente no son proporcionados
en el RTOS como uCOS-ll y se suministran en el RTOS como VxWorks u OS como Unix y Linux.
1. SigHandler () para crear un manejador de seal correspondiente una seal baja identificados por el
nmero de seal y definir un puntero al contexto de la seal. La seal contexto guarda los registros en la
seal.
2. Conectar un vector de interrupcin para un nmero de seal, sealizado con funcin de controlador y la
seal del controlador de argumentos. Los vectores de interrupcin del PC proporciona valor para el
manejador de seal direccin de funcin.
3. Una seal de la funcin () para enviar una seal identificada por un nmero en el argumento para una
tarea.
4. Enmascarar la seal.
5. Desenmascarar la seal.
6. Ignora la seal.
1. El IPC ms simple para mensajera de procesos que obliga a una funcin de controlador para ejecutar (siempre
desenmascarada)
Es el uso de 'seal'.

Los sistemas integrados

334

__ /

7.11 Funciones Semforo


El sistema operativo proporciona para el semforo de aviso o token para el estao de ocurrencia del evento.
Semforo facilita I PC para notificar (a travs de un planificador) una seccin de tareas espera cambiar a la marcha
rancio al evento en la seccin de cdigo de ejecucin actualmente en un ISR o tarea. Un semforo como semforo
binario es un token o clave de recurso (Secciones 7.7.1 y 7.7.2). El sistema operativo tambin proporciona mutex
acceso a un conjunto de cdigos en una tarea (o proceso o subproceso) (Secciones 7.7.2 y 7.8.3). El uso de mutex
es tal que la inversin de prioridad no se resuelve el problema, en algunos sistemas operativos, mientras se resuelve
en otros sistemas operativos. El sistema operativo tambin proporciona para el recuento de los semforos. El SO
puede proporcionar para el estndar POSIX P y V de semforos que pueden ser utilizados para la notificacin de
ocurrencia de eventos o como mutex o para contar. El tiempo de espera puede ser definido en el argumento con
funcin de espera por el semforo 1PC. El error puntero tambin pueden ser definidas en los argumentos de
funciones IPC semforo.
Las siguientes son las funciones que se ofrecen generalmente en un sistema operativo, por ejemplo, el sndrome
de ovario poliqustico-l! Para los semforos.
1. OSSemCreate. un semforo funcin para crear los semforos en un bloque de control de eventos (BCE).
Inicializar con un valor inicial.
2. OSSemPost. Una funcin que enva la notificacin.semaphore al BCE y su valor aumenta en la ocurrencia
de eventos (utilizado en ISR, as como las tareas).
3. OSSemPend. Una funcin, que espera al semforo de un acontecimiento, y su valor disminuye en tomar
nota de que la ocurrencia de eventos (utilizado en tareas no en ISR).
4. OSSemAccept, una funcin que lee y devuelve el actual valor del semforo y si muestra la ocurrencia de
un evento (un valor distinto de cero), entonces toma nota de ello y decrementa ese valor (sin esperar;
utilizado en ISR y nosotros colmillos).
5. OSSemQuerx. Una funcin, el cual consulta el semforo para un evento ocurrencia o no mediante la lectura
de su valor y devuelve el valor del semforo actual y devuelve el puntero a la estructura de datos
OSSemData. El valor del semforo no disminuye. La OSSemData seala el valor actual y la tabla de las
tareas en espera lor al semforo (utilizado en tareas).
Un sistema operativo proporciona el IPC funciones crear post. gaste, aceptar y consulta para el uso de
semforos. El tiempo de espera puede ser proveda con "gastar" los argumentos de la funcin. Un puntero a la
funcin de gestin de errores tambin puede ser especificado en los argumentos.

7.11.1

Mutex, bloqueo y bloqueo de giro

Un SO. utilizando un mutex bloquea una seccin crtica en una tarea en teniendo el mutex por otra tarea la seccin
crtica. Otra tarea se desbloquea al soltar el mutex. El mutex espere por tarea bloqueada puede ser por un tiempo de
espera especificado.
Hay una funcin en el kernel llamado bloqueo (). Bloquea un proceso a los recursos hasta que el proceso se
ejecuta desbloquear (). Crea un bucle de espera y cuando es esperar los otros procesos esperando que el bloqueo se
inicia. Uso de bloqueo () y desbloquear ( ) implica una sobrecarga mnima en comparacin con los usos de
OSSemPost OSSemPend ( ) y ( ) cuando se utiliza un mutex. Sobrecarga significa nmero de operaciones necesario
para bloquear el proceso y empezar otro. Sin embargo, un recurso de alta prioridad no debe bloquear los otros
procesos bloqueando cm ya ejecuta la tarea en la siguiente situacin. Supongamos que una tarea se est ejecutando
y queda poco tiempo para su realizacin. El tiempo de funcionamiento para la izquierda es menor comparado con
el tiempo que se adoptaran en el bloqueo y cambio de contexto. Hay un innovador concepto de bloqueo de giro en
ciertos OS planificadores. Un bloqueo de giro es una herramienta poderosa en la situacin antes descrita. [Consulte
'Multithreaded Programacin con Java" por

Comunicacin entre procesos y sincronizacin de procesos. Subprocesos y tareas

Bil Lewis y Daniel J. Berg. Sun Microsystems Inc.. 2000.| El planificador Proceso de bloqueo para una tarea /
espera en un bucle para provocar el bloqueo de la ejecucin de la tarea en primer lugar durante un intervalo de
tiempo t. A continuacin, tor (t - 5t). A continuacin, (t - 25t) y as sucesivamente. Cuando este intervalo de
tiempo spin-down hasta 0. La tarea que pidi el bloqueo del procesador ahora desbloquea la tarea en ejecucin l y
lo bloquea de seguir funcionando. La solicitud se ha concedido a la tarea J para desbloquear y comience a correr,
siempre que la tarea es de mayor prioridad. Un bloqueo de giro no lei una tarea en ejecucin para ser bloqueado
instantneamente, pero primero comprueba sucesivamente con o w ithout decreasiny, los perodos de prueba
antes de finalmente bloqueando una tarea. un spin-lock evita la necesidad de cambio de contexto por la
anticipacin y el uso de la funcin de exclusin de llamadas al sistema operativo.
Un sistema operativo proporciona el IPC funciones para crear y acceder al recurso mediante mutex para un
proceso y
Evitar el recurso a los otros procesos. Un sistema operativo puede tambin proporciona para bloquear o spinbloqueos
el planificador.
7.12 en
Las
funciones de la cola de mensajes
Sena sistemas operativos no distinguir, o no hacen distinciones entre el uso de colas, tubos y buzones de correo
durante el mensaje La comunicacin entre procesos, mientras que otros sistemas operativos respecto al uso de
colas como diferentes.
Una cola de mensajes es un IPC con las siguientes caractersticas.
1. Un os ofrece para insertar y eliminar el mensaje punteros o mensajes.
2. Cada cola para el mensaje o mensaje Necesita inicializacin punteros (creacin) antes de utilizar las
funciones de kernel para la cola.
3. Cada cola creada tiene un ID.
4. Cada cola tiene un tamao definible por el usuario (lmites superiores en nmero de bytes).
5. Cuando un sistema operativo llamada es insertar un mensaje en la cola, el hvtes sealado se aplican segn
el nmero de bytes. Por ejemplo, para un nmero entero o una variable float como puntero, habr 4 bytes
insertados por llamada. Si el puntero es un array de 8 enteros, despus de 32 bytes se insertar en la cola.
Cuando un mensaje- puntero se inserta en la cola, los insertos de 4 bytes, en el supuesto de direcciones
de 32 bits.
6. Cuando una cola se convierte en calma, no hay funcin de manipulacin de errores para manejar eso.
Figura 7.8(a) muestra las funciones para las colas en el SO. Figura /.8(b) muestra un mensaje de cola-bioek con
el mensaje o mensajes-punteros. Dos punteros, *QHEAD y QTAIL son cabeza y cola cola para ubicaciones de
memoria.
Las funciones del SO para una cola, por ejemplo, en ,uCOS-ll. Puede ser como sigue:
1. OSQCreate. Una funcin que crea una cola y se inicializa la cola.
2. OSQPost. Una funcin que enva un mensaje a la cola como por la cola cola puntero, puede ser utilizado
por tareas, as como el ISR.
3. La OSQPend espera un mensaje de la cola en la cola y lee y eliminaciones que cuando se reciban (espere,
utilizado por tareas slo, no usado por los ISRs).
4. OSQAccept elimina el presente mensaje en cola cabeza tras comprobar su presencia s o no y despus de
la eliminacin de la cola puntero de cabeza incrementos, (sin esperar: utilizado por ISR, as como tareas).
5. OSQFlush elimina la cola de mensajes desde la cabeza hasta la cola. Despus de enjuagar el IHE cola
cabeza y cola apunta a QTop, que es el puntero al comienzo de la cola, (utilizado por los ISRs y tareas).
6. Consulta la cola OSQQuery bloque de mensaje, pero el mensaje no se elimina. La funcin devuelve el
puntero a la cola de mensajes *Qhead si existen mensajes en la cola o, de lo contrario, devuelve NULL.
Se re.tKms un puntero a la estructura de los datos de la cola de estructura para *QHEAD, nmero de
mensajes en cola, tamao y tabla de tareas en espera para los mensajes de la cola, (consulta se utiliza en
tareas).
7. OSQPostFront enva un mensaje al puntero, *QHEAD delantero. El uso de esta funcin se realiza en las
siguientes situaciones. Un mensaje urgente o es de mayor prioridad que todos los mensajes publicados
anteriormente en la cola (utilizado en ISR y tareas).

336

Los sistemas integrados

Funciones RTOS
Una tarea

La tarea B |
QSQWait

QSQPost
Bloque
de
control
de
eventos
en
OS
Creado
para los
mensajes
en una cola
La
memoria
Bloquear

Funcin para
la
inicializacin
de la funcin
de cola de
mensajes de
la cola de
espera

OSQCreate

Aceptar un
mensaje de
la cola si
est
disponible
(sin
esperar).

OSQPend
OSQPost
OSQPost
Frente
Consulta OSQ

Funciones
para insertar
mensaje en
cola
Funcin
para
consultar un
Mensaje de
error funcin

Enjuagar
los
mensajes
de la cola
(sin
esperar).

Aceptar OSQ
OSQ RAS

Manejo QError

(a)
Qtop
En memoria de la cola de
mensajes para publicar
(insercin), aceptar (eliminacin
sin esperar) y esperar (eliminacin
despus de esperar).

Yo
Un mensaje
publicado en
espera para leer
(eliminacin) a
la cabeza

(b)

ltimo
Publicado
(insertar)
Mensaje
En la
(ail

L'

Q end

Fig. 7.8 (a) funciones del SO para la cola y el uso de correos y esperar las funciones por las
tareas A y B
(a)

Bloque de mensaje de cola en la memoria

Ejemplo 7.19
Considerar la orquesta tocando Robots (por ejemplo, 1.10.7). 7ask_Directar_Oiitput pone las notas musicales
en
T l cola en realizar y dirigir el robot. OSQEntries equivale al nmero de entradas de cola y OSQSize
Iguala el nmero mximo de notas que se pueden poner en la cola.
Static void 7AAK_Direaor_Oitt/ml (void *taskPointer)

Mientras que (I) (


/* Los cdigos para insertar notas musicales en la cola */
(OSQEntries = 0; OSQEntries < OSQSize; OSQEntries ++)
(, QDirector OSQPost ( nota)} /* puesto por la cola Mensajes QDirector hastael OSQSize /*
1.
Static void lask_Player_*taskPointer lnput (void) {

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

337

/* Los cdigos para eliminar notas de la cola */


(OSQEntries = OSQSize; OSQEntries >0 ; OSQEntries -j
Nota (i) = (QDirector OSQPcnd, G, err) /* Espere el mensaje */

En algunos RTOS. Una cola es seleccionar la opcin y la opcin es proporcionada por prioridad o FIFO. La
tarea prioritaria si elimina un mensaje de la cola comenz la primera prioridad en caso de que la opcin est
seleccionada. La tarea pendiente desde el perodo ms largo, se elimina un mensaje de la cola FIFO de primera en
caso de que la opcin est seleccionada.
Un sistema operativo proporciona el IPC funciones crear, publicar, postfront, gastar, aceptar, enjuagar y
consulta para el uso de colas de mensajes. El tiempo de espera puede ser proporcionado con "gastar" argumento
de funcin. El indicador de error tambin puede ser proporcionada en el argumento.

7.13

Las funciones de buzn

Un mensaje en el buzn de mensajes IPC es una que slo puede ser utilizada por un solo destino tarea. El mensaje
es un mensaje de buzn-puntero o puede ser un mensaje. (pCOSTI prev enviar mensaje-puntero en el cuadro).
Tlic origen (remitente) es la tarea a la que enva el mensaje puntero a un buzn creado (inicializado) (la caja tiene
inicialmente el puntero nulo antes del mensaje puestos en el cuadro). El destino es el lugar donde la funcin
OSMBoxPend espera el mensaje del buzn y lo lee cuando se reciben.
Una tarea de la pantalla LCD del telfono mvil es un ejemplo que usa el mensaje buzones como un IPC. En
el buzn, cuando el mensaje de fecha y hora de un reloj-proceso llega, la hora se muestra en el lateral comer en la
lnea superior. Cuando el mensaje de otra tarea para mostrar un nmero de telfono, se muestra el nmero en
oriente en una lnea. Cuando el mensaje de otra tarea para visualizar la intensidad de seal en antena, se muestran
en la barra vertical de la izquierda.
Otro ejemplo del uso de un buzn es el buzn para una tarea de control de errores, que se ocupa de los inicios
de sesin de error diferente de otras tareas.
Figura 7.9(a) muestra tres tipos de buzones en los diferentes RTOSes. Figura 7.9(b) muestra la inicializacin
y otras funciones para un buzn de un SO. Las siguientes pueden ser las disposiciones en un SO para IPC funciona
cuando se utiliza el buzn.
1. Una tarea puede poner en el buzn slo un puntero al bloque de mensajes o el nmero de bytes de los
mensajes segn el aprovisionamiento de sistema operativo.
2. Hay tres tipos de disposiciones del buzn.
Una cola (Seccin 7.12) puede considerarse un caso especial de un buzn con provisin para varios los
mensajes o punteros. Un sistema operativo puede proporcionar a la cola desde la que leer (eliminacin) puede ser
segn el mtodo FIFO o bien un sistema operativo puede proporcionar para los mltiples mensajes de buzn con
cada mensaje tiene un parmetro de prioridad. La lectura (eliminacin) slo puede ser sobre la base de prioridad
en caso de mensaje de buzn electrnico tiene varios mensajes con prioridad asignada a una alta prioridad. Incluso
si los mensajes se insertan en una prioridad distinta, la eliminacin es segn el parmetro de prioridad asignado.
Un sistema operativo puede abastecer de buzn y cola por separado. Un buzn permitir un mensaje puntero
por caja y la cola se permiten varios los mensajes o punteros. sop-II RTOS es un ejemplo de este tipo de SO.
El RTOS funciones de buzn para la~use'5iy las tareas pueden ser las siguientes:
1. OSMBoxCreate crea un cuadro e inicializa el contenido del buzn de correo con un puntero NULL.
2. OSMBoxPost (escrituras) enva un mensaje a la caja.

Los sistemas integrados

Tipo de buzn de
correo permitido
por un SO
Un mensaje por
buzn

Varios
Unlimited
Mensajes
Queueing
Arriba

(a)
Las funciones del SO para el
buzn

Crear
:ig. 7.9 [a)

Escribi
r
(Post).

Aceptar

Varios
Mensajes
Con
un
parmetro de
prioridad para
cada mensaje

Leer
Consulta
(Pendiente)

tipos de buzones en los diferentes sistemas operativos (SO) (b) y otras funciones de
inicializacin de un buzn en un SO

3. (pentl OSMBoxWait) espera un mensaje del buzn, el cual es ledo cuando se reciben.
4. Cuadro de OSM Aceptar lee el mensaje actual puntero despus de comprobar la presencia s o no (sin
esperar). Elimina el buzn cuando se leen.
5. Consultas OSMBoxQuery el buzn cuando leer y no es necesario ms tarde.
Un ISR cun post (pero no espere) en el buzn de una tarea.

Ejemplo 7.20
(a) Considere un AVCM (Seccin 1.10.2). Supongamos que un puntero de mensajes I PC puestos en el buzn,
la cantidad recaudada por tarea Read_Aitioaiil y el chocolate _deliveryjask seccin espera para tomar un mensaje
en el buzn para que la cantidad sea igual a NULL despus de distribuir el chocolate. Asumir mhoxAmt es un
puntero al buzn y fullAmount es una cadena cantidad total que debe ser NULL despus de entregar el chocolate.
(mboxAmt OSMboxPost. El importe total) es un SO funcin IPC para publicar un mensaje en el buzn de correo
del puntero y asumir OSSemPend ( ) .La madre OS funcin IPC para lamentos por el puntero del
mensaje. FullAmount.
(h) Tambin se asume que la OSMboxPost ( ) tambin se utiliza con el teclado para enviar al buzn de
mensajes IPC mhoxUser userlnpul en el buzn del usuario de la tarea de entrada de teclado y OSMboxPend ( )
para esperar userlnpttt para su visualizacin. Un buzn IPC "gastar" es para mboxUser mensaje en task_Display.
Los siguientes sern los cdigos para (a) y (/>).
(a) Static void tarea Read_Amounl *tuskPointer (void) {
Mientras que (I) {
/* para la lectura de los cdigos de monedas insertadas en la mquina */
/* Los cdigos para escribir en el buzn de mensajes total si el costo del chocolate es recibido*/ OSMboxPost
(mboxAmt, fullAmount) /* para el buzn de correos y mensajes fullAmount, que igualaba el valor NULL iguala
ahora fullAmount */
);
Static void *taskPointer Chocolatejleliveryjask (void) {
Mientras que (1) (

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

339

/* IPC para solicitar el importe completo mensaje *1


(mboxAmt OSMboxPend JullAnwunlMsg = 20, *err) /* ESPERE para el buzn de mensajes mboxAmt
durante 20 Reloj de garrapatas y de error si no se ha encontrado el mensaje. MboxAmt pasa a ser nula
despus de que se lea el mensaje.
(b) static void Taak_User_Keypad_lnput (void *taskPoinler) { while (I) (
/* para la lectura de cdigos de teclas presionadas por el usuario antes de que la tecla intro */
/* Los cdigos para escribir en el buzn */
(mboxUser OSMboxPost, userlnput) I* para el buzn de correos y mensajes tiserlnput, que igualaba el valor
NULL iguala ahora userlnput */

};
Static void Task_Display (void *taskPointer) {
Mientras que (1) (
/* IPC esperando una entrada del usuario mensaje */
(mboxUser OSMboxPend UserlnputMsg = 20, *err) /* ESPERE el buzn mboxUser
Mensaje para 20 Reloj garrapatas y error si no se ha encontrado el mensaje. mboxUser se vuelve nulo
despus
Se lea el mensaje.
/* para mostrar el cdigo de entrada de usuario */
= OSMboxPend timeDate TimeDateMsg (ERR), de 20 aos, I* Espere el mensaje del buzn limeDate.
I* Cdigo para mostrar tiempo TimeDateMsg: RR.HH:mm:fecha fecha: mes */
1:
Un sistema operativo proporciona el IPC funciones crear, publicar, gastar, aceptar y c/itery para utilizar el
buzn. El tiempoY ERROR-puntero puede ser proporcionado con el "gastar" los argumentos de la funcin.

7.14

Funciones del tubo

El tubo so funciones son a diferencia de las funciones de la cola de mensajes. La diferencia es que las funciones
del tubo son similares a las utilizadas para los dispositivos como archivo.
Un mensaje-pipe es un dispositivo para insertar (escritura) y la eliminacin (lectura) de que entre dos tareas
interconectadas o dos conjuntos de tareas. La lectura y la escritura de un tubo es como usar un comando fivrite
C con un nombre de archivo para escribir en un archivo, y fread con un nombre de archivo para leer desde un
archivo determinado. Los tubos son tambin como Java PipelnpiitOutputStreams.
1. Una tarea utilizando la funcin fivrite en un conjunto de tareas', pueden insertar (escribir) en un tubo en
la espalda, *pBACK direccin del puntero.
2. Otra tarea utilizando la funcin fread en un conjunto de tareas puede eliminar (lea) de un tubo en la
direccin del puntero frontal, *pFRONT.

340

Los sistemas integrados

3. En un tubo puede no haber fijado el nmero de bytes por mensaje pero hay final de puntero. Cun un tubo
insertado por tanto ser limitado el nmero de bytes y tener un nmero variable de bytes por mensaje entre
la inicial y final de los punteros.
4. Tubo es unidireccional. Un subproceso o tarea se inserta en ella y la otra se elimina de l.
Un ejemplo de la necesidad de mensajera y por lo tanto para PC (utilizando un tubo es una pila de red.
Las funciones del SO para tubo son los siguientes:
1. PipeDevCreme para crear un dispositivo que funciona como tubo.
2. Abierto () para abrir el dispositivo para permitir su uso desde el principio de su bfer asignado, su uso es
con opciones y restricciones (o permisos) definida en el momento de la apertura.
3. Conectar () para conectar un hilo o tarea insertando bytes a la rosca o la tarea Eliminar bytes desde el
tubo.
4. Escribir () funcin para insertar (escritura) de la parte inferior del espacio de memoria vaca en el bfer
asignado.
5. Leer () funcin para borrar (lectura) desde el tubo desde la parte inferior de los espacios de memoria no
ledos en el Bfer lleno despus de haber escrito en el tubo.
6. Close () para cerrar el dispositivo para permitir su uso desde el principio de su bfer asignado slo despus
de abrirlo de nuevo.
La figura 7.10(a) muestra las funciones en un sistema operativo. Es una funcin de inicializacin y la
creacin de una tubera. Define el ID del tubo. longitud, longitud mxima (no definido en algunos sistemas
operativos) y los valores iniciales de dos punteros. Estos son *pFRONT y 4pBACK para tubo destino de mensaje (cabeza) y tubo de
origen del mensaje (cola) Ubicaciones de memoria, respectivamente. Una funcin es para tubo de conexin y as definir ID origen y ID de destino. Una funcin es el error

La manipulacin. Figura 7.10(b) muestra mensajes de tubo en un bfer de mensaje.

Funcin para la
inicializacin de
un dispositivo
de tubo

OS funciones de
controlador
de
dispositivo para
Crear
tubo
pipedevice
()

Funcin para:
apertura de un
tubo para
mensajes (byte
streams)

Open(),

Funciones para:
insertar mensaje
(bytes)

caera

- funcin de
eliminacin
(leer)

(a)

write()

Conecte
un
dispositiv
o de tubo
entre
fuente y
sumidero

lee () la

Cerrar
connect() ()
Error
de
dispositivo
de tubo ()

Cerrar el
El tubo
Dispositiv
o
Error
Manejo
Funcin

Abrir el tubo
Mensajes (secuencia de bytes) en el
tubo del bfer de memoria del
dispositivo para la escritura (insercin)
y lectura (supresin sin esperar) como
FIFO (primero en entrar primero en
salir)
,fh

Fig. 7.10

(a)

pFRONT

Esperando
esperando bytes
ledos
(eliminacin)

La parte superior
de la tubera
ltimo escrito
(insertado) byte
en 'pBACK
Extremo del tubo

''

Las funciones en el sistema operativo (inicializacin, conectar, lectura, escritura y manejo de

errores.
Un
bfer deymensaje
Funciones)
el uso de las funciones de lectura y escritura por tareas A y B (b) mensajes de tubo

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

341 i
J

Ejemplo 7.21
Considere la posibilidad de una tarjeta inteligente. [Seccin 1.10.3 y ejemplo 7.4) cuando se insertan en un lector
de tarjetas de la mquina host.
Se obtiene de la radiacin y los cargos.
1. Supongamos que el programa principal se ejecuta una funcin del SO pipeDevCreate () para crear una
tarea.
2. Supongamos que un tubo es utilizada por la tarea, tarea_Send_CARD_Info para escribir la informacin
de la tarjeta al host usando el tubo.
Los cdigos de la tarjeta puede ser como sigue.
PipeDevCreate ("/tubo/pipeCardlnfo ", 4.32)/* Crear un tubo pipeCardlnfo, lo cual puede ahorrar cuatro
mensajes cada uno de 32 bytes como mximo */
Fd = abierto (("/tubo/pipeCardhtfo ", 0_WR. 0)/* abrir un dispositivo de slo escritura. El primer argumento es
el tubo tubo pipeCardlnfo /ID/, el segundo argumento es la opcin 0_WR para especificar slo
escritura y el tercer argumento es 0 para permiso irrestricto.*/
Static void Task_Send_CARD_lnfo *taskPointer (void) {
Mientras que (I) {
CardTransactionNum = 0; I* al inicio de las operaciones con la mquina*/ escritura (fd,
cardTransactionNum. I)/* escribir 1 byte para el nmero de la transaccin despus de la insercin de
la tarjeta */ escritura (fd. cardFabricationkey, 16) /* Escribir 16 bytes de clave de fabricacin */
escritura (fd. cardPersonalisationkey. 16) /* Escribir 16 bytes de clave de personalizacin */
escritura (fd. cardPIN, 16) /* Escribir 16 bytes para PIN. nmero de identificacin personal
concedida por el Banco autorice */

Un sistema operativo proporciona las funciones de PC (pipeDevcreate. abierto, conectar, escribir, leer y cerrar.
La ID del tubo. limitar el nmero total de mensajes y el tamao mximo por mensaje son tambin proporcion
al crear un tubo.

7.15 Funciones de Socket.


Ejemplo 7.21 mostr que una tubera podra ser utilizado para insertar el byte por un proceso de vapor y eliminar
los bytes de la secuencia por otro proceso. Sin embargo, el uso de tubo entre un proceso en la tarjeta y un proceso
en el host tendr los siguientes problemas.
1. Necesitamos la informacin de las tarjetas para ser transferidos de un proceso como una secuencia de
bytes para el proceso de la mquina host B y B enva mensajes como secuencia de bytes a A. No hay
necesidad de comunicacin bidireccional entre A y B.
2. Necesitamos una y 8's o ID de puerto, as como informacin de direccin cuando se comunica. Estos se
mstil' especificada para el destino solos o para el origen y el destino (es similar a enviar los mensajes
en una carta junto con la direccin de la especificacin).

342

Los sistemas integrados

X __ /
Proporciona un protocolo para la comunicacin a lo largo de la secuencia de bytes wiih informacin de la
direccin o puerto de destino solo o direcciones o puertos de origen y destino. Un protocolo puede proporcionar
lor las direcciones as como de los puertos de origen y destino en el caso de los procesos remotos (por ejemplo, en
el protocolo IP). Adems, hay dos tipos de protocolos.
1. Puede existir la necesidad de utilizar un protocolo no orientado a conexi n al enviar y recibir flujos de
mensajes. Un ejemplo de tal protocolo UDP (protocolo de datagrama de usuario). Protocolo UDP requiere
un encabezado UDP, que contiene el puerto de origen (opcional) y los nmeros de puerto de destino,
longitud del datagrama y checksum de la cabecera-bytes. Puerto significa un proceso o tarea para la
aplicacin especfica. El nmero especifica el proceso. Sin conexi n significa que no hay ningn
establecimiento de la conexin entre el origen y el destino antes de transferencia real de datos stream puede
tener lugar. Datagrama se entiende un conjunto de datos, que es independiente y no necesita ser en
secuencia con los datos enviados anteriormente. Suma de comprobacin es la suma de los bytes para
activar la comprobacin de la transferencia de datos errneos. Para comunicacin remota, la direccin, por
ejemplo, la direccin IP es necesaria tambin en el cabezal.
2. Puede existir la necesidad de utilizar un protocolo orientado a la conexin, por ejemplo, TCP. Protocolo
orientado a la conexin significa un protocolo, que establece que se debe primero establecer una conexin
entre el origen y el destino y, a continuacin, la transferencia real de datos stream puede tener lugar. En
fin, debe existir el cierre de la conexin.
Toma proporciona un dispositivo como mecanismo para una comunicacin bidireccional. Se establece
utilizando un protocolo entre el origen y el destino de los procesos de transferencia de los bytes; proporciona para
establecer y cerrar una conexin entre el origen y el destino de los procesos utilizando un protocolo para la
transferencia de bytes; puede proporcionar para escuchar o la multidifusin desde mltiples fuentes a mltiples
destinos. Dos tareas en dos lugares diferentes son localmente se interconectan a travs de las tomas. Mltiples
tareas en varios lugares diferentes interconectar ihrough las tomas a un socket en un servidor en el proceso. El
cliente y los sockets de servidor se puede ejecutar en la misma CPU o CPUs distantes en Internet.
Los sockets pueden estar utilizando un dominio diferente. Por ejemplo, un socket de dominio puede ser otro
socket TCP, UDP, se nay dominio la tarjeta y toma ejemplo host dominios son diferentes.
La utilizacin de un zcalo para el IPC es anlogo al uso de sockets para una conexin a Internet entre los
irowser y Webserver. Un zcalo proporciona una transferencia bidireccional de mensajes y tambin puede enviar
protocolo cadet: la transferencia es entre dos o entre varios clientes y el servidor de proceso. Cada toma puede
tener l tarea direccin de origen (similar a una red o una direccin IP) y un puerto (similar a un proceso o
subproceso) nmero, origen y destino de conjuntos de tareas (direcciones) puede estar en el mismo equipo o en
una red. La figura 7.11 muestra los zcalos inicializado entre el conjunto del cliente ol tareas y un servidor en el
conjunto de tareas en un sistema operativo.

Ejemplo 7.22

Asumir que el uso de las funciones de socket SO, un socket interconecta una secuencia de bytes entre el
conjunto de procesos de origen / destino y conjunto especfico de procesos J. no permitamos que los cuatro
procesos: a, b, c y d en el conjunto de procesos /. Hay dos subprocesos, x e y en un conjunto de
procesos, J. deje la toma se utiliza para enviar una secuencia de bytes (proceso , subproceso / c) a un
conjunto de procesos ( J, UN SUBPROCESO DEL PROCESO-). AHORA, la toma de la fuente (proceso 1 socket) se
especifica como el zcalo con (/), c) y zcalo en el proceso 2 como el zcalo en t J, x). Cuando los bytes
enviados o recibidos en el zcalo con (/), c) desde o hacia el zcalo en (J, x), el protocolo especifica (/ ), c) y
(/ x). El pnitocofibiay tambin especificar la longitud de los bytes que se comunican. [ rhe protocolo
puede especificar tambin el checksum de los bytes se comunica de manera que si algn bit es Miost en
comunicacin a peticin de retransmisin entonces remoto puede ser enviado.

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

OS funciones de controlador de dispositivo para el cliente y el servidor de sockets


Dispositivo de
Socket de servidor
Creado toma
socket
Crear.socket ()
Dispositivo
para
secuencias de
Desvincular ()
Crear.socket ()
bytes de los
Enlazar connect ()
mensajes en
()
Bind
escuchar
()
()
el servidor
Aceptar ()
Enviar ()
Recibir ()
Creado para
Recibir ()
el byte toma
Read(), write()
secuencias de
Escriba enviar () ()
mensajes al
Leer ()
Desvincular ()
cliente
Cliente utiliza bind, enviar, recibir, funciones y usos
del servidor BIND, recibir y enviar funciones en UDP
como protocolo sin conexin

Cerrar ()
Shutdown ()
Error de socket ()

Cliente utiliza connect, leer, escribir, y funciones de


servidor utiliza
Bind, escuchar, aceptar, leer y escribir funciones en TCP
como
Protocolo orientado a la conexin
El socket de cliente abierto
(a)
Mensajes (secuencia de bytes) en el
dispositivo de memoria de servidor de
socket para escribir (insercin) usando el
Un byte por escrito en el
socket de servidor y para lectura
socket de servidor
(eliminacin) como FIFO (primero en
esperando escuchar, leer,
entrar primero en salir) con memoria de
aceptar recibir al cliente
socket cliente
socket

Cerrar ()
Shutdown ()
Error de socket ()
Cliente

El ltimo
escrito
(insertado)
byte en el
socket de
servidor

(b)

Fig 7.11

(a) inicializa sockets virtuales entre el conjunto de tareas cliente y servidor de un conjunto de tareas y
El sistema operativo dispuesto para la toma de funciones [b) el flujo de bytes entre el cliente y el servidor

Ejemplo 7.23
Considerar la orquesta tocando robots (Ejemplo 1.5.7).
1. Un proceso. Task_Master en el director crea un robot toma mediante una declaracin como
sigue: sfdl = ("/hembra/hembra serversockeU", playStream, 0).
La sfdl es un entero sin signo para un descriptor de socket, "/toma/serversocketl" es la ruta y el archivo
a partir del cual la secuencia, playStream sern enviados o recibidos desde el juego de robots. 0 representa
el permiso irrestricto para utilizar el archivo.
2. Task_toma Master enlaza la sfdl y la estructura de datos en la direccin de socket, sockAddrby
utilizando la funcin como sigue:
Bind (sfdl, (struct sockaddr *)&IBytes local).
La IBytes es longitud de bytes en el flujo de juego.
3. Task_toma Master escucha a ocho orquesta tocando robots utilizando funcionan de la
siguiente manera; escuchar (sfdl, 8)
4. Task_Master toma acepta bytes (a partir de un robot que juega la toma de proceso) del descriptor de
socket con sfd2 utilizando la funcin como sigue: sfd2= aceptar (sfdl, &playRobotSockAddress,
&playRIBytes)

I /
|
Los sistemas integrados

La &playRIBytes se refiere a la direccin de la longitud mxima de bytes desde el robot que juega. El
PlayRobotSockAddres es la direccin de la estructura de datos del cliente (jugando robot) socket.
5. Task_toma Master enva los bytes utilizando la funcin como sigue:
Enviar'(sfd2 & playBuffer, playstreamlen, 0); /* Enviar el total de bytes desde playBuffer playstreamlen
utilizando
El zcalo sfd2.
6. Task_toma master recibe los bytes desde el juego de robots (por ejemplo, confirmacin) mediante
La funcin de la siguiente manera:
(streamlength whiie> 0 && streamlength < = = streamlength playRIBytes) (recv (sfd2, AackBuffer,
200,0); /* El recv () devuelve -1 si no hay ms bytes son para ser recibidos. Bytes recibidos en ackBuffer
*/
7. Task_toma master se cierra el socket mediante una funcin como la
siguiente:
Close ();
8. Un proceso, tarea_Client en el robot que juega crea un cliente me toma mediante una declaracin como
la siguiente:
El sfd2 = ("/hembra/hembra, sockStream clientsocketl". 0).
El sfd2 es un entero sin signo para un descriptor de socket, 'zcalo/serversocketl' es la ruta y el mosaico
A partir de la cual arroyo, socStream sern enviados o recibidos desde el juego de robots. El 0 representa
el irrestricto
Permiso para utilizar el archivo.
9. Task_socket cliente conecta la sfdl y la estructura de datos en la direccin de socket, sockCIientAddr
por
El uso de la funcin en el proceso de servidor como sigue:
Conectar (sfd2, (struct sockClientaddr *)&CUBytes remota).
La CUBytes es la longitud mxima de los bytes en el flujo de juego.
10. Task_socket cliente enva el reconocimiento bytes mediante la funcin como sigue:
Enviar (sfd2 & ackBuffer, playRIBytes, 0); /* Enviar el total de bytes desde ackBuffer ackstreamlen
Usar el zcalo sfd.
11. Task_socket cliente recibe los bytes de la reproduccin (por ejemplo, robots
Acuse de recibo) mediante la funcin de la siguiente manera:
Mientras (streamlength > 0 && streamlength < =) ( streamlength playstreamlen
= recv (sfd2, AplayBulfer, 200, 0)|; /* El recv () devuelve -1 si no hay ms bytes
Se recibi. Bytes recibidos en playBuffer V
Aplicacin de sockets son como sigue:
1. Una aplicacin de tomas de corriente para conectar las tareas en el entorno distribuido de sistemas
integrados. Por ejemplo, una red de interconexin o una tarjeta proceso conecta un host-proceso de la
mquina.
2. Un socket TCP/IP es otra aplicacin comn para Internet. Otra aplicacin ejemplar de socket es una tarea recibe
un flujo de bytes del protocolo TCP/IP en una conexin a Internet mvil.

3. Una aplicacin ejemplar cuando una tarea se escribe en un archivo en un ordenador o en una red
mediante el protocolo NFS (Network File System) de protocolo.
4. Otra aplicacin de la toma es la interconexin de una tarea o una seccin de un conjunto de tareas de origen
en un sistema integrado con otra tarea destinada a un conjunto de tareas. El kernel tiene el zcalo-connccti
ng funciones con los cdigos especificando el origen y el destino y conjuntos de tareas.
Las funciones del SO para el socket en Unix son las siguientes.
1. La toma () [en lugar de abierto () en el caso de tubo] da un descriptor de socket sfd. La toma () permite
su uso desde el principio de su bfer asignado a la direccin de socket, su wif ijse^i opcin y restricciones o
permisos definidos en el momento de la apertura. Un socket puede ser un STREAM, SOCK_STREAM o

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

345

3. El bind () para atar un hilo o tarea insertando bytes en el zcalo de la rosca o la tarea y eliminar bytes
desde el socket, Bind () el descriptor de socket a una direccin en el dominio Unix, bind (SFD, (struct
soekaddr *)&local, len); donde len es la longitud de la cadena, soekaddr es una estructura de datos con
un registro de 16 bits sin signo num y una ruta para el archivo y una estructura de datos struct
sockaddr_ONU (unsigned short path]; char num 108]; }
4. El listen (SFD, 16 ) la funcin de escucha 16 conexiones en la cola desde el socket de cliente.
5. El aceptar () acepta la conexin de cliente y da un segundo descriptor de socket.
6. El recv ( ) esta funcin para borrar (lectura) y recibiendo de la toma de la parte inferior de espacios de
memoria no ledos en el bfer. El bfer tiene mensajes despus de escribir en el socket.
7. La enviar ( ) esta funcin para insertar (escritura) y envo desde la toma de la parte inferior de los espacios
de memoria en el buffer lleno despus de escribir en el socket.
8. La close () para cerrar el dispositivo para permitir su uso desde el principio de su bfer asignado slo
despus de abrirlo de nuevo.
1. Un socket es un IPC para enviar una secuencia de bytes o datagrama de una o varias tomas de tareas a
otra tarea o proceso de servidor socket como bi-direccin FIFO-como el dispositivo utilizando un
protocolo para la transferencia de bytes. Proporcionar el protocolo de datagrama-bytes de encabezado
junto con la secuencia de bytes.
2. Las tomas pueden ser un conjunto de cliente-servidor de sockets (mltiples procesos y proceso de
servidor nico) o una red peer-to-peer sockets IPC. Un zcalo tiene una serie de aplicaciones. Socket es
una conexin a Internet para la conexin virtual entre dos puertos: un puerto en una direccin IP a otro
puerto en otra direccin IP.
3. Un sistema operativo proporciona el IPC funciones para crear socket, desvinculacin, encuadernacin,
escuchar, aceptar, recibir, enviar y cerrar.

7.16 RPC Functions


RPC' es un mtodo que se utiliza para conectar dos mtodos colocados de forma remota utilizando primero un
protocolo para la conexin de los procesos. Se utiliza en los casos de tareas distribuidas.
El sistema operativo puede proporcionar para el uso de llamadas a procedimientos remotos (RPC). Estas
permiten entorno distribuido para los sistemas integrados. La RPC proporciona el IPC cuando una tarea est en
system I y otra tarea es en el sistema 2. Ambos sistemas funcionan en el peer-to-peer el modo de comunicacin.
Cada sistema de peer-to-peer puede hacer RPCs. La SO funcin IPC permite una funcin o mtodo para ejecutar
en el espacio de direcciones .madre de red compartida o un equipo remoto. El proceso que realiza la llamada a la
funcin que es local o remoto y el proceso 2 respuesta es remota o local en el proceso de 1 a 2 llamada de mtodo.

Resumen
Un proceso es una unidad computacional que procesa en una CPU bajo el control del estado de un ncleo
en el sistema operativo.
Un proceso puede consistir de mltiples subprocesos que definir como unidad mnima de rosca para un
programador para programar a nin la CPU y ofrecer otros recursos del sistema. Unix proporciona para
sus procesos y subprocesos como procesos ligeros. Peso ligero significa funciones no dependen de
funciones como la memoria de gestin de funciones. Java utilizan las roscas.
Un sistema nico de CPU ejecuta un proceso (o un subproceso del proceso) a la vez. Un programador es
imprescindible para programar un sistema multitarea o multiproceso.

J 3461

Los sistemas integrados

Una tarea es una unidad computacional o conjunto de cdigos, acciones o funciones que los procesos en una CPU bajo el
control del estado de un ncleo en el sistema operativo.
Una tarea es similar a un proceso o subproceso. Cada tarea es un proceso independiente que toma el control de la CPU
cuando est programada por un programador en un SO. No hay ninguna tarea puede llamar a otra tarea. Cada tarea y su
estado es reconocido por su bloque de memoria (TCB) que contiene informacin de la PC, el mapa de la memoria, la seal
(mensaje) tabla de envo de seal, mscara, ID de tarea, el estado de la CPU (registros, etctera) y un kernel stack (pa ra la
ejecucin de llamadas de sistema y as sucesivamente). La tarea est en uno de los cuatro estados: inactivo, listo, bloqueado
y en ejecucin, que son controlados por el programador.
A menudo se utiliza los mismos datos en dos tareas diferentes (o procesos) y si otra tarea interrumpe antes sin completar la
operacin sobre los datos, entonces el problema surge de datos compartidos. Desactivacin de interrupciones hasta la
finalizacin de la operacin de la primera tarea y, a continuacin, vuelva a habilitar las interrupciones, es una solucin. El
uso de semforos (como tokens, mutex o conteo de semforos) es otra forma eficaz para resolver el problema de los datos
compartidos y ejecutar cdigos de seccin crtica. Uso de las funciones de bloqueo y spin-bloquea tambin se proporcionan
en el SO.
Un bfer es un bloque de memoria para una cola o secuencia de bytes entre una salida fuente y sumidero de entrada. [Por
ejemplo, entre las tareas, archivos, el ordenador y la impresora, dispositivos fsicos y red.] tiene que ser delimitado entre
dos lmites. No puede ser ilimitada o infinita. Por ejemplo, un bfer de impresin no puede aceptar un nmero ilimitado
de salida desde un ordenador. El bfer enlazado es problema de sincronizacin de la fuente y el receptor. Un productor no
puede seguir produciendo ms all de un lmite si los consumidores no consumen. Los consumidores no pueden seguir
consumiendo a menos que el productor sigue produciendo. Contando semforos dar solucin a este problema.
Ha habido IEEE POSIX la normalizacin del SO y las funciones de IPC, por ejemplo, el semforo de P y V Funciones
POSIX. Estos eventos son funcin de la notificacin, la clave de recurso, mutex y contando los semforos.
El problema de la inversin de prioridad y el estancamiento de la situacin puede surgir en determinadas situaciones cuando
se utiliza un semforo. Un sistema operativo debe ser tal que pueda cuidar de ella por tener las disposiciones adecuadas
para evitar estas situaciones. Algunos sistemas operativos ofrecen semforos mutex tal que el problema de la inversin de
prioridad docs no plantearse.
El So funciones controlan IPCs entre las mltiples tareas.
El sistema operativo proporciona las siguientes IPCs: seales, semforos, colas, buzones, tubos, sockets y RPC.
Un buzn puede proporcionar para un solo mensaje o varios mensajes en un RTOS.
Un tubo es una cola o secuencia de mensajes que conecta las dos tareas y que utiliza las funciones tal como se utiliza en un
dispositivo.
Los sockets se utilizan en redes o cliente-servidor-como la comunicacin entre las tareas mediante funciones como el
utilizado para los dispositivos. Los RPCs se utilizan para el caso de tareas distribuidas.

Palabras clave y sus definiciones


Buffer

Semforo de cuenta.

Seccin crtica

Un bloque de memoria para una cola o una pila de red o caera o secuencia de
bytes entre una salida fuente y sumidero de entrada, por ejemplo, entre las tareas,
archivos, el ordenador y la impresora, dispositivos fsicos y red.
Un semforo en el que el valor de lo que puede ser inicializado con un 8 o 16 o 32
bits y entero que disminuye y se incrementa. Una tarea no bloquear si su valor se
encuentra para ser >0 y los bloques de tareas si su valor es foiind tori: 0.
Una seccin en la ejecucin de una tarea que debe bloquear la ejecucin de otra
seccin en otra tarea, por ejemplo, cuando un bfer en la impresora est
compartida entre dos o ms tareas.

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

Situacin de estancamiento

Comunicacin entre procesos

Buzn
Message Queue
Mutex

P y V de semforos.

El tubo
La inversin de prioridades.

Proceso

Procedimiento remoto coll


Semforo
Problema de datos compartidos

Seal
Zcalo

! 347

Una tarea svailing para la liberacin de un semforo de una ia.sk y otra diferente para
otro semforo lask lamentos de liberacin para ejecutar. Ninguno de ihese pueda
proceder ms baja debido a la dependencia circular. Un sistema operativo puede cuidado
de este lago por las disposiciones adecuadas.
Un mecanismo de una tarea (o proceso) o la seal de envo de mensajes o notificacin
de eventos desde una tarea para el sistema y que el sistema operativo se comunica con
otro lask. Utilizando el mecanismo IPC y funciones una tarea utiliza seales,
excepciones, semforos, colas, buzones, tubos, sockets y RPC.
Un mensaje(s) de una tarea que se aborda en otra tarea.
Una tarea enviar varios mensajes en una cola para uso por otra(s) tarea(s) con la cola de
mensajes como una entrada.
La variable especial y el mecanismo utilizado para tomar nota de ciertas acciones para
impedir cualquier tarea o proceso de continuar y al mismo cal deje que otra tarea
exclusivamente a seguir adelante. Mutex contribuye a la exclusin mutua de una tarea
con respecto lo otro por un programador en las operaciones multitarea.
El semforo funciones definidas en el estndar IEEE POSIX para ser utilizado como la
notificacin de eventos o mutex o conteo semforo, o para resolver el clsico productorconsumidor problema cuando se utiliza un bfer enlazado.
Un dispositivo para su uso por el lask para enviar el mensaje" y otra lask usando el
dispositivo recibe los mensajes como stream. Un tubo es un dispositivo unidireccional.
Un problema en el que una tarea de baja prioridad no libera accidentalmente el proceso
para un colmillo de mayor prioridad. Un sistema operativo puede cuidado de este lago
por las disposiciones adecuadas.
Un cdigo que tiene su PC independiente y una pila de valores independientes. Un
sistema nico de CPU ejecuta un proceso (o un subproceso del proceso) a la vez.
Un proceso es un concepto (derecha). Define una secuencia ejecutando {girando)
Programa y su estado. .4 estado, durante la ejecucin de un proceso, est representada
por su estado (ejecutando, bloqueado o terminado), su bloque de control, denominado
bloque de control de proceso (PCB) o la estructura de los procesos, sus datos, objetos y
recursos.
Un mtodo que se utiliza para conectar dos mtodos colocados de forma remota
utilizando primero un protocolo para la conexin de los procesos. Se utiliza en los alivia
de tareas distribuidas.
Una variable especial operado por el SO funciones que se utilizan para tomar nota de
ciertas acciones para prevenir otra tarea o proceso de continuar.
Si se utiliza una variable en dos diferentes procesos (tareas) y si otra tarea se interrumpe
antes de la operacin en la que los datos se ha completado, entonces el problema surge
de datos compartidos.
Una funcin para llamar a un manejador de seal mediante la interrupcin de los
procesos. Se utiliza la instruccin INT n SWI n, donde n define el controlador, que se
debe ejecutar.
Proporciona el vnculo lgico utilizando un protocolo entre las tareas de un clienteservidor o peer-to-peer entorno. Permite un flujo bidireccional o datagrama o pila de red.

Synchronization

Dejar que cada seccin de cdigos, tareas y isr ejecutar y acceder a la CPU uno tras otro
de forma secuencial o simultneamente, siguiendo una estrategia de programacin, para
que exista un funcionamiento predecible en cualquier instancia.

Los sistemas integrados

Tarea

Tor es una tarea al servicio de acciones especficas y tambin puede corresponder a


los cdigos, que ejecutar para una interrupcin. Una tarea es un proceso independiente
que toma el control de la CPU cuando est programada por un programador en un SO.
Cada tarea tiene un TCB.

Bloque de control de tareas

Un bloque de memoria que contiene informacin de la PC. Mapa de la memoria. la


seal (mensaje) tabla de envo de seal, mscara, ID de tarea, el estado de la CPU
(registros, etctera), y una pila de kernel (para la ejecucin de llamadas de sistema y
as sucesivamente).
El estado de una tarea que los cambios en las direcciones del planificador. Una tarea
en una instancia puede estar en uno de los cuatro estados, desocupado, listo,
bloqueado y en ejecucin que estn controlados por el programador.

Estado de tareas

Rosca

Unidad mnima para un programador para programar la CPU y otros recursos del
sistema. Un proceso puede consistir de mltiples subprocesos. Un subproceso tiene un
bloque de control de proceso independiente como un TCB y un subproceso ejecuta
cdigos bajo el control de un programador. Es un proceso de peso ligero.

Preguntas de repaso
1. Cmo funciona una salida de datos generados por un proceso de transferencia de una a otra utilizando el IPC?
2. Cules son los parmetros en un TCB de una tarea? Por qu cada tarea tienen distintas TCB?
1 .Cules son los miembros de un grupo? Que es la entidad que controla (programacin) El delantero de transiciones de un
estado a otro en una tarea?
4. Definir la seccin crtica de una tarea. Cules son los medios por los cuales la seccin crtica ejecutar bv bloqueando otros
pmecsstes)? Fi. Cmo se comparten los datos (variables) protegidos en una seccin crtica de un proceso antes de ser operado
y cambiado por
Antera mayor prioridad que el proceso comience su ejecucin antes de que termine el proceso". h.
Cmo el uso de un semforo de cuenta difieren de un mutex? Cmo se utiliza un semforo de cuenta'.
". Dar un ejemplo de una situacin de estancamiento durante el multiprocesamiento (multitarea) ejecucin.
5. Cul es la ventaja y desventaja de deshabilitar las interrupciones durante la ejecucin de una seccin crtica de un proceso'.
d. Explicar el trmino Sistema operativo multitarea multitarea y planificador.
Fi). Cada proceso o tarea tiene un infinito (infinito) bucle en un programador de preventiva. Cmo funciona el control de los
recursos transfei de una tarea a otra?
; I. Qu es una excepcin y cmo es el tratamiento de errores de estao tarea ejecutada en lanzar la excepcin'.
! 2. Cmo funciones difieren de ISR. tareas, procesos y subprocesos? Por qu es el estao ISR no podrn utilizar el IPC
penden esperar funciones.
! 3. Enumerar las funciones de P y V de semforos y cmo estos son utilizados como un recurso clave. como un escrutinio y un
semforo mutex.
14. Cules son las situaciones que conducen a la inversin de prioridad los problemas? Cmo docs un SO resolver este
problema mediante un mecanismo de herencia de prioridad?
15. Qu se entiende por un tubo? Cmo funciona un tubo puede diferir de una cola?
16. Qu se entiende por giro de la cerradura? Explicar la situacin en la que el uso del mecanismo de bloqueo de giro Sera
Ser
Muy til para bloquear la transferencia de control a una tarea de mayor prioridad?
17. Qu es un buzn? Cmo funciona un buzn pasar un mensaje durante un IPC?
18. Cuando
Rosca. se la utiliza para tomas (PCs? Enumere cuatro ejemplos. Cuando se utilizan RPCs? Enumerar dos ejemplos.
19. Cules son las analogas entre los procesos, subprocesos y tareas? Tambin una lista de las diferencias entre el proceso,
Tarea
Y

Comunicacin entre procesos y sincronizacin de procesos, subprocesos y tareas

349 :

Ejercicios de prctica
20.

Disear una tabla para distinguir claramente la alivia cuando existe el procesamiento simultneo de los procesos,
cuando las tareas y cuando los subprocesos mediante un programador.
21. Haz una tabla similar a la tabla 7.1 para distinguir claramente los ISRs. Istas y tareas.
22.
Cul es la ventaja de utilizar una seal como seal de IPC'. Lista de las situaciones que justifican el uso de las
seales.
23.
Enumerar cinco aplicaciones ejemplares de soluciones para el problema de bfer enlazado con P y V semforos
mutex.
24. Cada dcimo segundo una rfaga de 64 kB llega a 512 kbps en un intervalo de 100 segundos. Es un bfer de entrada
requerida ." Si la respuesta es s, entonces cunto ." Si s. luego escribir un programa que utilice el bfer con P y V de
los semforos.
25. Utilice la bsqueda Web a entender un IEEE POSIX 1000.3b estndar aceptado en detalle.
26. Pueden utilizarse distintos IPCs? Dada la opcin, cmo se puede seleccionar una seal de IPC, semforo, cola o buzn
de correo?
27. La lista de tareas en la mquina expendedora automtica de chocolate (por ejemplo, 1.10.21. Enumerar las funciones
IPC compensado y sus usos en el ACVM.
28. Enumerar los procesos utilizados en la tarjeta inteligente (por ejemplo, 1.10.3). Cmo funciona la tarjeta comunicarse
con el host mediante las tomas de corriente? Enumerar las funciones necesarias de la IPC y sus usos en la tarjeta
inteligente.
29. La lista de tareas en la cmara digital (por ejemplo, 1.10.4). Enumerar las funciones necesarias de la IPC y sus usos en la
cmara.
30. Lista los procesos en el telfono mvil inteligente (por ejemplo, 1.10.5). El proceso de visualizacin de mltiples
subprocesos en el telfono. Lista de los subprocesos. Enumerar las funciones necesarias de la IPC y sus usos en el
telfono.
31. La lista de procesos en la PDA (por ejemplo, 1.10.6). Asumir que los eventos servicios de PDA por el ISR y
manejadores de seal utilizando una cola de eventos. Cmo puede hacerse esto? Mostrar en un diagrama.
32. La lista de procesos en el director del sistema OPRs (por ejemplo, 1.10.7). Lista los procesos en ocho jugando los robots
en el sistema OPRs.

Sistemas operativos
en tiempo real

3L
E

C
U
n

C
C

Los puntos siguientes se han discutido en el anterior


Captulo.
Programa de Aplicacin tiene funciones, ISR, roscas
Mltiples procesos (tareas) tanto fsica como virtual
Los controladores de dispositivo y varios objetos de
programa, que
Proceso simultneamente en uno o varios
Los procesadores.
OS funciones proporcionan un mecanismo para
crear
Varias tareas (procesos y subprocesos), controlar el
Tarea-estados y asignar recursos al sistema
Las tareas.
Control de funciones del SO el cambio de contexto en
El multiprocesamiento (m ult it a rea y m ult i Programa de threading).
El sistema operativo proporciona funciones para la
IPC
Permitir la comunicacin de las seales y semforos.
Y los mensajes de los ISRs y tareas a otros
Servicio de espera-thread o tareas.
El sistema operativo tambin proporciona funciones
de la IPC
Para los tubos, sockets y RPC.
El sistema operativo tambin proporciona mutex,
bloquear y spinLas funciones de bloqueo y de desactivacin de
interrupciones a

Aprenderemos las siguientes en este captulo.


1. Servicios del sistema operativo.
2. La estructura del programa, entre las capas de interfaces entre el sistema
operativo y software de aplicacin tap y el amanecer del sistema capas de
hardware.
3. OS funciones para el proceso (tarea), temporizador, evento, memoria,
dispositivo, sistema de archivos y de l/s-suhsystem management.
4. RTOS ofreciendo adems de los servicios del sistema operativo bsico, un
control sobre el cambio de contexto entre las tareas de tal manera que el
sistema satisface la reeptirements en tiempo real. Las limitaciones de tiempo
y los plazos de las tareas.
5. ISR-lumdling RTO en medio ambiente.
6. Principios bsicos de diseo cuando se utiliza un RTOS.
7. Soft y Hard consideraciones de programacin en tiempo real.
S. RTOS modelos de servicio de programacin de tareas y estrategias bsicas
para la programacin de las mltiples tareas-cooperativa, cclico, el reparto
del tiempo round robin y planificacin preventiva RTOS, seccin crtica y
manipulacin en la programacin de los casos prioritarios.
9. OS problemas de seguridad.
Los8.1
captulosServicios
9 a 12 se describen
con ejemplar
RTOSes y estudios de caso.
del sistema
operativo

8.1.1 Objetivo
El os objetivos son la perfeccin y correccin para lograr lo siguiente:
1. Facilitar el intercambio de recursos us por calendario y asignaciones
de recursos significa procesador(s). memoiy. I/Os. Devices, dispositivos
virtuales (por ejemplo, tubos, sockets), el temporizador del sistema, el teclado,
pantallas, impresoras y otros recursos, que tales procesos (tareas o
subprocesos) Solicitud del SO. Ninguna tarea de procesamiento o subproceso
usa cualquier recurso hasta que haya sido asignado por el sistema operativo en
una instancia dada.
2. Para facilitar la aplicacin del programa de la aplicacin con el hardware del
sistema. Un programador de aplicaciones para un sistema operativo pueden
utilizar las funciones que se incluyen en el sistema operativo determinado sin
tener que escribir los cdigos de los servicios (funciones) que le siguen.
3. De forma ptima los procesos de programacin en uno o ms CPU (si est
disponible) y proporcionar un adecuado mecanismo de cambio de contexto.
. Movilizar el rendimiento del sistema para permitir que diferentes procesos (tareas o
subprocesos) compartir los recursos de manera ms eficiente con proteccin
y sin cualquier violacin de la seguridad. Ejemplos de violacin de seguridad
son tareas obtener acceso ilegal a otras tareas de datos directamente sin sistema
de llamadas, desbordamiento de los paquetes en la memoria y superposicin
de PCB (Seccin 7.1) en la memoria.

Los sistemas integrados

5. Proporciona funciones de gestin de los procesos (tareas o subprocesos), memoria y dispositivos de I/Os
y otras funciones.
6. Proporcionar y tnanagement organizatum (unciones lor los dispositivos. Los archivos y dispositivos
virtuales y I/Os.
1. Facilitar la interconexin y el manejo de las funciones de los protocolos de red y redes.
S. Proporcionar portabilidad de aplicacin en diferentes configuraciones de hardware.
0. Proporcionar interoperabilidad de aplicacin en diferentes redes.
10. Proporcionar un conjunto comn de interfaces (hat integra diversos dispositivos y aplicaciones a travs
de la habitual y sistemas abiertos.
El os objetivos son la perfeccin, exactitud, portabilidad, interoperabilidad y proporcionar un conjunto comn
de inierfaces para el sistema y el acceso ordenado y control en la gestin de los procesos.

8.1.2 Estructura de modo de usuario y supervisor


Cuando se utiliza un sistema operativo, el procesador en el sistema se ejecuta en dos modos. No hay reloj, llamado
reloj del sistema. En cada pizca de el reloj, hay una interrupcin. En interrumpir el tiempo de sistema actualizaciones,
el sistema cambia de contexto io el modo de supervisin desde el modo de usuario. Despus de completar la
supervisora (kernel) funciona, el contexto del sistema vuelve al modo de usuario.
I . Modo usuario-. El proceso de usuario est autorizado para ejecutar y utilizar slo un subconjunto de
funciones e instrucciones en
OS. Esto se realiza en el modo de usuario, ya sea mediante el envo de un mensaje a esperar un proceso
asociado con el kernel del sistema operativo o iniciando un sistema call (llamada a una funcin del SO). El
uso de recursos de hardware, como memoria no est permitida sin hacer la llamada a las funciones del SO.
El os llama a los recursos mediante la llamada al sistema. Una llamada de funcin de usuario es distinta de
una llamada al sistema, y no est autorizado a leer y escribir en la memoria protegida asignado a las
funciones del SO, datos, pila y pila. Este espacio de memoria protegida es llamado tambin el espacio del
kernel. Por lo tanto la ejecucin de llamadas de funciones de usuario es ms lenta que la ejecucin de las
funciones del SO (que se ejecutan en el sistema llamada). Esto es porque el acceso protegido a memoiy por
las funciones que se ejecutan en el espacio de usuario.
2. Modo Sttpeirisoiy: El sistema operativo ejecuta las funciones privilegiadas e instrucciones en el modo
protegido y el SO (ms especficamente, el kernel) slo tiene acceso a los recursos de hardware y la
memoria en el rea protegida. [El trmino kernel significa ncleo. | En el modo de supervisin los cdigos
del kernel rein en modo protegido. Slo un sistema-llamada se permite leer y escribir en la memoria
protegida asignado a las funciones del SO, datos, pila y pila. El espacio del kernel funciones ejecutar ms
rpidamente que las funciones en el espacio de usuario.

Ejemplo 8.1.

RTOS Windows CE y varios RTOSes permite la ejecucin de todas las aplicaciones y programas de supervisin
los subprocesos Ji mode (modo kernel). Por lo tanto, los subprocesos se ejecutan rpidamente. Esto mejora
el rendimiento de mi sistema. Si las roscas se ejecute en el modo de usuario, al igual que en Unix o en non-SO en
tiempo real, mi entonces la ejecucin se ralentiza debido a comprobaciones en el cdigo protegido el acceso al
espacio del kernel. Mm

8.1.3 Estructura
Un sistema puede presumir de tener una estructura segn la Tabla 8.1.

Sistemas operativos en tiempo real

353;

Cuadro 8.1 Modelo de capas del sistema


Utycr desde
arriba
Yo
2

Estructura top-down de
capas
Software de aplicacin

Arliaus
Se ejecuta como por las aplicaciones, se ejecutan en el sistema
mediante las interfaces de hardware y software del sistema.

Proporciona el entrelazado ffor entradas y salidas) entre el


software de aplicacin y software del sistema de forma que
pueda ejecutarse en el procesador utilizando el software del
sistema.
Software del sistema
El sistema operativo no dispone de las funciones, por
distinta de la prevista en el
ejemplo, para la red especfica y algunos controladores de
SO (sistema operativo).
dispositivos, tales como un dispositivo multimedia. Esta
capa proporciona servicios de software el sistema
distintos de los proporcionados por el sistema operativo
las funciones
servicio.y salidas) entre el anterior y OS
OS interface
{entrelazado
paradeentradas

OS

El hardware de la interfaz
Interlaces a dejar las funciones que se ejecutan en el hardware
SO
(procesador, memoria, puertos y dispositivos del sistema.

Hardware

Interfaz de programacin
de aplicaciones (API)

Supervisin de servicios de modo Kernel (Tabla 8.2). La


administracin de archivos y otras funciones, tales como los
servicios de procesamiento en modo de usuario.

Procesador(s), los recuerdos, los autobuses, los circuitos de


interconexin, puertos, dispositivos fsicos, temporizadores y
autobuses para dispositivos de redes.

La estructura consta de kernel de sistema operativo y otras funciones de servicio. El sistema operativo permite
que una aplicacin se ejecute en el hardware del sistema.

8.1.4 Kernel
El SO es la capa intermedia entre las aplicaciones de software y hardware del sistema. Un sistema operativo
incluye algunas o todas de las siguientes unidades estructurales.
1. Ncleo con la gestin de archivos y administracin de dispositivos como parte del ncleo en el sistema
operativo.
2. Kernel sin la gestin de archivos y administracin de dispositivos como parte del ncleo en el sistema
operativo y cualquier otro necesario funciones no previstas en el kernel.
El kernel es la unidad estructural bsica de cualquier sistema operativo en el que el espacio de memoria de la
pila y funciones, los datos estn protegidos contra el acceso de cualquier otra llamada a la llamada del sistema.
Puede ser definido como una unidad asegurada de un SO que funciona en el modo de supervisin mientras que la
parte restante y el software de aplicacin que funciona en el modo de usuario. El cuadro 8.2 da las funciones
(servicios) en el kernel, son segn el diseo del SO.
El kernel tiene funciones de gestin de procesos, recursos, ISR, ISTs, archivos, controladores de dispositivo
y 10 de subsistemas y los subsistemas de red. La memoria o dispositivo y file-ma^gersfh.it funciones pueden
estar fuera del ncleo en un determinado sistema operativo, especialmente en un sistema integrado.

354,
Yo :

Los sistemas integrados

Cuadro 8.2 Kernel Services en un sistema operativo (SO)


F'linclion
Proceso de gestin: creacin de la
eliminacin

Proceso: proceso de mantenimiento


slruclure ituinagemcni
La gestin del proceso: el proceso de
solicitudes de recursos
Gestin de procesos: programacin
Proceso de gestin: la comunicacin
entre procesos (IPC) (comunicacin
entre tareas, ISR, OS funciones).
Servicios de gestin de memoria de
asignacin y de-allocatioir
Gestin de archivo-'

Gestin de dispositivos-4

Controladores de dispositivo

Gestin de E/S.

Mecanismo de control de interrupciones


(ISR) para la manipulacin

Acciones
Permite que el proceso de creacin, activacin, girando, bloqueando
la reanudacin, desactivacin y eliminacin y mantiene la estructura
de los procesos en una PCB (process control block! (Seccin 7.I ll
Permite que la estructura de los procesos de mantenimiento y su
informacin en el PCB
Procesar las solicitudes de recursos por parte de los procesos
realizados por hacer llamadas que se conoce como sistema de
llamadas o enviando un mensaje(s)
Programacin de procesos. Por ejemplo, en la planificacin cclica o
prioridad del modo de programacin (Seccin 8.10)
Sincronizacin de procesos mediante el envo de datos como mensajes
de una tarea a otra. El sistema operativo gestiona eficazmente el
acceso a memoria compartida mediante el IPC seales, excepcin
(error) manejo de seales, semforos, colas, buzones, tubos y
conectores (Seccin 7.9)
La asignacin de memoria, de asignacin y gestin. Tambin restringe
la regin de acceso a memoria para una tarea (Seccin 8.5)
Gestin de archivos proporciona gestin de la creacin, supresin,
read, write () () a los archivos en el disco de memoria secundaria
(Seccin 8.6). Un archivo en el disco (Sistema integrado sistema
gratuito) puede estar en la RAM. donde las operaciones se realizan en
la memoria RAM de una manera idntica a la del archivo en disco
Gestin de un dispositivo fsico es tal que resulta accesible a una tarea
o proceso slo en un instante. Los componentes del administrador de
dispositivos son:
(i) Los controladores de dispositivo y el dispositivo ISR (dispositivo
interrupt handlers):
(ii) Los administradores de recursos para los dispositivos (Seccin
8.6). Adems de los dispositivos fsicos, la gestin del dispositivo
virtual como un tubo tambin es proporcionada (apartados 7.14 y
7.15). Los dispositivos virtuales emular un dispositivo de hardware y
Facilitar
el uso de
del dispositivo
nmero de dispositivos
fsicos
como
el teclado,
la
el controlador
virtual enviar
seales
(Seccin
7.10)
pantalla,
de disco,por
puerto
paralelo, tarjetas
similar a los sistemas
ISR de llamadas
el dispositivo
fsico de interfaz de
red, dispositivos de red y dispositivos virtuales (Seccin 8.6)
Carcter o bloque I/Os de gestin. Por ejemplo, para asegurar que las
acciones de tal modo que un puerto serie o puerto paralelo slo es
accesible para una tarea a la vez (Seccin 8.6)
Facilitar el funcionamiento de la ISR y ISTAS (Seccin 8.7)

' a la hora de considerar el IHE procesos controlados por un sistema operativo, un proceso tambin significa
tarea os multitarea, y el hilo de * cl&ltithreading OS (consulte las secciones 7.1 a 7.3).
2,1
Memoria, archivo y las funciones de gestin del dispositivo forma parte de kernel en un determinado sistema
operativo. Sin embargo, estas funciones pueden estar fuera del ncleo en un determinado sistema operativo,
especialmente en un sistema integrado utilizando slo el microncleo de un SO. Esta exclusin hace que el
cdigo del ncleo pequeo.

Sistemas operativos en tiempo real

8.2

355

La gestin del proceso

8.2.1 La creacin de procesos.


En reset del procesador en un sistema informtico, un sistema operativo es inicializado primero y, a continuacin,
un proceso que puede ser llamado initial
Proceso, se crea (inicializacin de os medios que permiten el uso de las funciones del SO, que incluye la funcin
de
Crear los procesos). A continuacin, el sistema operativo se haya iniciado y de que ejecuta un proceso inicial
(arranque el SO significa llamar el SO
Funciones, que incluye la llamada a todos los procesos creados antes de que el sistema operativo inicie, pero
despus de la inicializacin del SO).
Los procesos pueden ser creados de manera jerrquica. El proceso inicial crea procesos posteriores. OS planifica
los procesos
Y contempla el cambio de contexto entre procesos y subprocesos (Secciones 7.1 a 7.3).

Ejemplo 8.2.
(a) Recordar Ejemplo 7.4. RTOS demostr una funcin para crear una tarea de proceso_Send_CARD_Info
mediante
OS_task_Create ( ) en la funcin main. Task_Send_CARD_Info tarea crea otras dos tareas,
Task_Send_PORT_Output y TASK_read_PORT_Input. El sistema operativo controla entonces el cambio de
contexto entre
Las tareas.
(b) Considerar Ejemplo 7.2 para un dispositivo de telefona mvil (seccin 1.10.5).
Un SO funcin crea primero el Display_proceso. El proceso de presentacin, a continuacin, crea los siguientes
temas:
1. Display_Time_DateThread
2. Display_BatteryThread
3. Display_SignalThread
4. Display_ProfileThread
5. Display_MessageThread
6. Display_Call StatusThread
7. Display_MenuThread.
Creacin de un proceso significa especificar los recursos para el proceso y espacios de direcciones de memoria
(bloques).
Durante el proceso creado, pila, pila y datos, y colocando el proceso informacin inicial en un PCB. El proceso
Manager asigna una PCB (o TCB en caso tarea representa un proceso) cuando se crea el proceso y posterior
La maneja. Las dems unidades de sistema operativo puede enviar el administrador las consultas durante el
proceso cuando sea necesario. Es un PCB
Descriptor ptvcesx utilizado por el administrador de procesos.
PCB o TCB (Secciones 7.1 y 7.3) describe las siguientes.
1. Concurso-. Estado del procesador de palabra, PC. SP y otros registros de la CPU en el instante de la
ltima instruccin
Ejecutar ejecuta cuando el proceso fue izquierda y el procesador cambia a otro proceso.
2. Puntero de pila de proceso.
3. Estado actual: se crea, activado o engendrado? Se ejecuta? Est bloqueado? (desovar significa crear
Y activar)
4. Las direcciones que se asignan y que estn actualmente en uso.
5. Puntero para el proceso principal en caso de que exista una jerarqua de los procesos.
6. Puntero a una lista de procesos (procesos de secundaria inferior en la jerarqua).
7. Puntero a una lista de recursos que son utilizables (consumidos) slo una vez. Por ejemplo, .inpuf^ata,

356!

Los sistemas integrados

9. Puntero a la cola de mensajes. Es considerado como un caso especial de recursos que se pueden
utilizar una vez. Es porque los mensajes desde el sistema operativo tambin cola para ser llevado por
un proceso de control.
Si). Puntero para el permiso de acceso.'; descriptor para compartir un conjunto de recursos a nivel
mundial, y con otro proceso.
II. ID por lo que la identificacin es hecha por el administrador de procesos.

8.2.2 La gestin de los procesos creados


Recordar los procesos, los subprocesos y las definiciones de tarea en las secciones 7.1 a 7.3. Un proceso o
subproceso o tarea) es considerada como una unidad en la que ejecuta secuencial slo es viable bajo el control de
un sistema operativo. con cada proceso tiene un bloque de control independiente (descriptor del proceso en un
instante). (Recordar el PCB y TCB se describe en las secciones 7.1 y 7.3).
Process Manager es una unidad del sistema operativo, que es la entidad encargada de controlar un proceso
de ejecucin. Permite la gestin del proceso de creacin de procesos, activacin ejecutando, las burlas,
reanudacin, desactivacin y eliminacin. Un proceso Manager facilita la siguiente. Cada proceso de un proceso
mltiple (o multitarea o multiproceso) sistema es ejecutado de manera que un proceso se puede pasar de un estado
a otro. Un proceso realiza la siguiente ejecucin secuencial de los estados: 'Creado', 'ready o activar', 'spawn'
(significa crear y activar), 'Running', bloqueado' o 'suspendido', 'resumed' y 'Terminado' y 'ready' despus de
'Finish' (cuando hay un bucle infinito en el proceso) y, por ltimo, 'Eliminado'. Bloqueo y reanudar puede tener
lugar varias veces en un largo proceso. Los diferentes sistemas operativos, hacer las provisiones para posibles
miembros entre creacin y eliminacin de forma diferente.
El administrador de procesos se ejecuta un proceso de solicitud de un recurso o servicio de sistema operativo
y a continuacin, concede esa peticin en dejar que los procesos comparten los recursos. Por ejemplo, una pantalla
LCD es un recurso compartido. La pantalla LCD slo puede ser utilizada por una tarea o hilo a una instancia. Un
proceso en ejecucin peticiones por dos mtodos, los cuales se enumeran m Cuadro 8.3.
El administrador de procesos (i) hace que sea factible para un proceso secuencial (o simultneamente)
Ejecutar o bloquear cuando necesitan un recurso y reanudar cuando est disponible: (ii) implementa el vnculo
lgico para el gestor de recursos para la gestin de los recursos (incluida la programacin de procesos de la CPU);
(iii) permite compartir recursos especficos entre los procesos especificados slo: (iv) asigna los recursos segn
el mecanismo de asignacin de recursos del sistema y (v) gestiona los procesos y los recursos del sistema.
Un proceso manager crea los procesos, asigna a cada uno una PCB, administra el acceso a los recursos y facilita
el proceso de pasar de un estado a otro. La JCP define la estructura de proceso para un proceso-estado.

8.B Funciones de temporizador


Un reloj de tiempo real (temporizador de hardware timeout) en el sistema interrumpe el sistema con cada
garrapata, que se produce un nmero de veces en 1 segundo. Una interrupcin en una garrapata puede llamarse
SysClklntr (reloj de tiempo real del sistema timer interrupt). Un sistema operativo proporciona una serie de
funciones de temporizador de SO. Estas funciones utilizan SysClklntr interrupciones en el reloj.
El peridico SysClklntr interrumpe en esta garrapata es utilizada por el sistema para cambiar al modo de
supervisin desde el modo de usuario en cada garrapata. Los siguientes son los pasos.
1. Antes de realizar el mantenimiento de SysClklntr actualmente, el contexto de ejecucin de la tarea o
subproceso guarda en la estructura de datos de TCB.
2. Servicio SysClklntr rutina llama el SO.
3. El sistema operativo encuentra los mensajes nuevos o IPCs (Sec'iones 7.9 a 7.15), que se recibi la
llamada de sistema frontal.por el evento de sistema operativo"forlPC bloques de control de funciones.
4. El sistema operativo selecciona la misma tarea o selecciona una tarea nueva o subproceso [por
preferencia (Seccin 8.10.3) en el caso de planificacin preventiva] y cambia el contexto de la nueva.
5. Despus de devolver la delantera, interrumpir, la nueva tarea se ejecuta desde el cdigo, que fue
bloqueada desde la ejecucin anterior.

Sistemas operativos en tiempo real

357

Cuadro 8.3 Solicitud de un recurso o un sistema operativo (SO) Servicio mediante un proceso en ejecucin
Mtodo de solicitud
Mensaje! S)

Explicacin
Un proceso que se ejecuta en modo usuario genera y pone (enva) un mensaje para
que el sistema operativo permite el recurso solicitado (e.g" la entrada de un
dispositivo o de una cola) utilizar o ejecutar un SO de la funcin de servicio (por
ejemplo, para definir un perodo de demora que alteran el proceso necesita ser tun
nuevamente). Un mensaje puede ser enviado por el sistema operativo para permitir
que la pantalla LCD se utiliza por una tarea o un subproceso para enviar la salida.
Un ISR enva un mensaje a un subproceso en espera para iniciar el retorno del ISR
Llamada de sistema
Una
llamada
(Seccin
8.7). a una funcin definida en el sistema operativo. Por ejemplo,
OSTaskCreate ( ) es una llamada al sistema para crear una tarea. Primero, una
instruccin de SW1 se emite para atrapar el procesador y cambiar a modo de
supervisin. A continuacin, el sistema operativo ejecuta una funcin como una
funcin de biblioteca . Al terminar las instrucciones de la funcin llamada, el
procesador cambia del modo de control para el modo de usuario y permite que el
proceso de llamada ms.
Cada sistema operativo tiene una funcin para definir el sistema operativo ticks por segundo, lo que define la
generacin del SysClklntr interrupciones y que, a su vez, proporciona las funciones ahora son ms finos del SO.
La funcin define as la interrupcin SysClklntr intervalos despus de la iniciacin de las garrapatas. Las
funciones as tambin definir el periodo tras el cual el sistema exige la ISR en la SysClklntr interrumpe y cambia
al modo de supervisin OS funciones enumeradas anteriormente.

Ejemplo 8.3
(a; # Definir OS_tick_PER_SEC 100 /yiCOS-II funcin para definir el nmero de pulsos por segundo, 100
antes del comienzo de los principales ( | e inicio del SO por OSInit funcin ()*/.
(b) OSTicklnit () /*(tCOS-II para iniciar la funcin de determinado nmero de pulsos por segundo despus
del comienzo de la primera tarea y la creacin de todas las tareas a las que el contexto se cambiar por el SO
de la garrapata. Inicia SysClklntr interrumpe cada 10 ms como OS tics/s = 100 */.
53
El nmero de garrapatas si se hace grande, entonces la frecuencia de funcionamiento del OS cdigos que se
ejecutan en interrumpir SysClklntr tiene lugar porque el cambio de contexto al modo de supervisin se lleva a
cabo con demasiada frecuencia. El nmero de garrapatas, si se hacen pequeos, el tiempo total de interrupciones
por segundo SysClklntr reduce, Bill entonces la precisin de la hora del sistema para el sistema operativo
funciones de temporizador se hace pequeo.

Ejemplo 8.4
Deje que os garrapatas perodo sea de 10 ms. Asumir que el tiempo invertido en el mantenimiento SysClklntr
interrupcin es 10 (es. J 10 (es x 100 -=-10 ms = 0.1% del tiempo se gasta en SysClklntr iniciada por
interrupcin de ISR. Deje que el SO garrapatas M perodo se establece en 100 (is. Asumir que el tiempo
invertido en el mantenimiento SysClklntr interrupcin es 10 (es. ! 0 (ts x rt 100 -S-100 (ES = 10% del tiempo
se gasta en SysClklntr intemipt isr iniciado, aunque el tiempo de resolucin de mi tiempo OS funciones
mejorar a 100 (en lugar de 10 ms con anterioridad.
Mi
El cuadro 8.4 da el ejemplo de RTOS funciones de temporizador y las acciones de llamar a estas funciones.
Hay RTOS funciones de temporizador de la demora, demora reanudar, tiempo, tiempo llegar y para el tiempo de
espera para el ajuste [PC eventos (por ejemplo, el semforo, buzn de mensajes de la cola de mensajes).

Los sistemas integrados .

Cuadro 8.4 Funciones de temporizador ejemplar


Funcin
OS_tick_PER_SEC
OSTicklnit ()
OSTimeDelay ( )
OSTimeDelayResume ()
OSTimeSet ()

OSTimeGet ()
OSSemPend
(semVal, twait,
*semErr)

OSMboxPend
(semVal, twait.
EmboxErr)

Accin sobre la invocacin de la funcin


Define el nmero de pulsos del reloj del sistema por segundo, que es tambin el
nmero de interrupciones por segundo SysClkJntr.
Iniciar el reloj del sistema y SysClklntr interrumpe
Retrasar la tarea ejecutar esta funcin
Reanudar la tarea retrasada
Configurar el reloj del sistema marca valor de recuento. OSTimeSet (1000)
establece el recuento = 1000. OSTimeSet (0) establece el Count = 0. Despus de
cada pulso de reloj y SysClklntr incrementa el recuento de ME
Obtener el reloj del sistema marca el valor de recuento.
Esperar el semforo y liberacin semVal convirtiendo en 1 para el perodo segn
Si suelta twait. semforo en este perodo, a continuacin, tomar y tarea contina
ms
Tras decrecer la semVal a 0, ms una vez twait perodo definido, el cdigo de
tarea se lleva a cabo sin esperar ms. Si twait = 100. A continuacin, espere
durante 100 tics del reloj del sistema. Los puntos semErr al error.
Espere a que el mensaje del buzn para el perodo segn twait buzn, si se
contabilizay,la a continuacin, tomar la tarea contina, an ms despus
Mensaje
de
twait definido
Perodo,
el cdigo de tarea siga avanzando. Si twait = 100, luego espere a 100
pulsaciones de reloj el sistema. Los puntos mboxErr al error.

Ejemplo 8.5
(a) OSTimeDelay (n) por perodo de tiempo igual al perodo de n tics del reloj.
(b) Asumir que el uso de las funciones del temporizador, OS_TICKS_PER_SEC 100 y OSTicklnit (); el
sistema de reloj garrapatas cada 10 ms. Supongamos que ACVM (Seccin 1.10.2), la tarea_ReadCoins para
la lectura de la moneda se est ejecutando. Consideramos que los siguientes cdigos en el bucle while de una
tarea, tarea Read-Amount AVCM (ejemplo 7.3) espera por i minuto para el importe de moneda:
Y:):

5j: i'. :jc :jj jj: * $ $ J*S sfr * :*8 sft :|:

:>s

=0; OSTimeSet count (recuento):


Mientras (count < = 6000) /* bucle mientras espera por la cantidad de monedas hasta 60000 ms = I minuto */
{Count = OSTimeDelay OSTimeGet (): (100);
/* Cdigo para encontrar las monedas cantidad despus de cada 100 tics del reloj, lo que significa que cada i s'1'/
;) ,
(c) Llamar OSTimeGet ( ), encontrando el recuento, countL ejecuta una seccin de cdigos y luego
llamando JJ
OSTimeGet ( ), encontrando el nuevo recuento, conde2 define el intervalo, T pasaron por el
sistema- Ml entre las dos llamadas de funcin de OSTimeGet ( ). T = {(count2 - recuento 1) intervalo
x
entre dos tics del reloj | es el intervalo entre dos llamadas a OSTimeGet.
Jjg

ms

8.4

Las funciones del evento

En el caso del IPC (Seccin 7.9), hay esperar slo un semforo despus de un suceso o evento de contabilizacin
de mensajes de buzn (apartados 7.10 a 7.15). Aprovisionamiento de evento funciona en un sistema operativo
ofrece una ventaja que no se puede esperar ms de un evento y los eventos pueden ser tambin de las diferentes
tareas o ISR.

Sistemas operativos en tiempo real

359

Los mensajes de la cola pueden ser de diferentes tareas o ISR. Las colas pueden ofrecer la misma ventaja que
no se puede esperar ms de uno de los mensajes. Yo lowevcr. El sistema operativo para ejecutar funciones de cola
ms tiempo que en el caso de funciones. Algunos os apoya y algunos no admiten las funciones del evento. La
activacin de las funciones de eventos OS acciones despus de que un grupo de eventos. Las funciones de eventos
del sistema operativo puede entenderse como sigue:
Existe un registro de eventos. Se dispone de 8 o 16 o 32 event-nags, que forman los grupos. Cada bit del grupo
en el registro corresponde a un evento en un pabelln conjunto de Hags.
Registrar un evento se crea utilizando una funcin del SO. OSEventCreate (). Un registro de eventos pueden
ser divididos en grupos, cada uno asignado a tareas diferentes. Por ejemplo, un registro de 16 bits pueden ser
divididos en cuatro grupos. El crup es de 0 bit 0 al bit 3, Grupo I del bit 4 al bit 7. Grupo 2 es de 8 bit a bit 11 y
grupo 3 es de 12 bits a 15 bits. Una funcin del SO, OSEventQuery () consulta de un registro de eventos para
encontrar el evento registra la existencia y su contenido. Registrar un evento, se elimina mediante una funcin del
SO, OSEventDelete ().
Cada evento se establece uno de los bits en el caso de registrarse usando la funcin SET (eventFlag). Evento
de abanderamiento en el registro puede ser establecida por un ISR o tarea. CLEAR (eventFlag) borra la bandera
en el registro de eventos. Un evento distintivo puede ser borrado por un ISR o tarea.
Una tarea puede utilizar el WA1T_todos funcionan para las apariciones de establecer todas las banderas de
evento en un grupo. [Espere hasta y operacin entre todas las marcas del grupo es igual a Verdadero.J La tarea
puede utilizar WA1T_cualquier funcin de una ocurrencia de ajuste de ninguno de los indicadores del evento en
el grupo. IWait hasta u operacin entre todas las marcas del grupo es igual a Verdadero.|
8.5
Gestin de memoria

8.5.1 Asignacin de memoria


Cuando se crea un proceso, el administrador de memoria asigna las direcciones de memoria (bloques) por la
asignacin del espacio de direcciones del proceso (Seccin 7.1). Los subprocesos de un proceso comparten el
espacio de memoria del proceso (Seccin 7.2).

8.5.2 Gestin de la memoria despus de la asignacin inicial


El gestor de memoria del sistema operativo tiene que ser segura, robusta y bien protegidos. Debe haber control
neumtico tal que no hay fugas de memoria y desbordamientos de pila. Fugas de memoria significa que intenta
escribir en el bloque de memoria al no encuentra a un proceso o estructura de datos. Desbordamiento de pila
significa que la pila excede el bloque de memoria asignada(s) cuando no hay ninguna disposicin para obtener
ms espacio de inactividad. El cuadro 8.5 da una estrategia de gestin de memoria.

Ejemplo 8.6
Un sistema operativo proporciona para la asignacin dinmica de memoria y la asignacin de funciones. La
asignacin dinmica de la memoria se utiliza para crear el espacio de direcciones de memoria de bfer o una
cola de mensajes o algn otro propsito durante la ejecucin de una tarea. Asignacin dinmica de memoria se
utiliza para liberar la memoria ocupada por el bfer durante la ejecucin de la tarea.
Considerar fragmentada asignaciones de memoria fsica. Significa que las direcciones de memoria
fragmentada en dos bloques de tamao variable de un proceso continuo. Cuando un bloque de direcciones de
memoria asignada, el tiempo empleado en buscar primero el siguiente libre antes de asignar direcciones de
memoria que el proceso. Un esquema de asignacin de memoria estndar escanea una lista vinculada de
longitud indeterminada para encontrar un bloque de memoria libre adecuado. Cuando un bloque de memoria
asignado es asignada, el tiempo empleado en buscar primero el siguiente bloque de memoria asignada antes de
asignar al proceso. El tiempo de asignacin y desasignacin de memoria y los bloques son variables (no
determinista) cuando los tamaos de bloque son variables y cuando la memoria est fragmentada. En RTOS,
esto lleva a la tarea imprevisible rendimiento (tiempo de ejecucin).

360

Los sistemas integrados

RTOS fiCOS-II se proporciona para particiones de memoria. Una tarea debe crear una particin de
memoria o varias particiones de memoria utilizando la funcin OSMernCreate ( ). A continuacin, la tarea
est autorizada a utilizar la particin o particiones. Una particin tiene varios bloques de memoria. Una tarea
obtiene un bloque o bloques de memoria desde la particin / mediante OSMemGet function (). Una tarea
libera un bloque de memoria o bloques a la particin utilizando Ji OSMeniPut function (). Por lo tanto, la
tarea consiste en varios bloques de memoria de tamao fijo. Mjlos bloques de memoria de tamao fijo,
asignacin y desasignacin tarda tiempo fijo (deterministas), ML , por lo tanto, conduce a una tarea
rendimiento predecible.
Mm

Tabla 8.5 Estrategia de administracin de memoria para un sistema


Estrategia de gestin

Explicacin

Asignacin de bloques fijos

Asignacin de bloques
dinmicos1

El espacio de direcciones de memoria se dividen en bloques con procesos tener pequeos


espacios de direcciones obteniendo un menor nmero de bloques y procesos con grandes
espacios de direcciones obteniendo un mayor nmero de bloques.
El espacio de direcciones de memoria se divide en bloques fijos como anteriormente y luego
ms tarde el administrador de memoria asigna bloques de tamao variable (en unidades de
decir 64 o 256 bytes) asignan dinmicamente desde un libre (sin usar) lista de bloques de
memoria la tabla de descripcin en las diferentes fases de un proceso de clculo.

Asignacin dinmica de
pginas1

Memoria tiene bloques de tamao fijo llamados pginas y el administrador de memoria de la


unidad de administracin de memoria (MMU) asigna dinmicamente las pginas con una tabla
de descriptores de la pgina.
La asignacin de memoria de El administrador asigna memoria dinmicamente a diferentes estructuras de datos como los
datos dinmicos
nodos de una lista, colas y pilas.
Reubicacin de direcciones
El administrador asigna dinmicamente las direcciones inicialmente con destino a las
dinmicas1
direcciones relativas. Agrega la direccin relativa a la direccin de registro de reubicacin. El
administrador de memoria ahora slo cambia dinmicamente el contenido del registro de
reubicacin. Tambin tiene en cuenta un lmite-definicin de registro, para que las direcciones
son reubicados dentro del lmite de las direcciones disponibles. Esto tambin es cal led
direccin dinmica en tiempo de ejecucin obligatoria.
Refirase a la seccin 63. La memoria adopta una estrategia de asignacin sea compartida con
Asignacin de memoria
estrecho acoplamiento entre dos o ms procesadores o compartida con acoplamiento
multiprocesador
multisegmentcd ioose o asignaciones.
1
La proteccin de memoria para La proteccin de memoria para el sistema operativo, significa que el sistema de llamada (call
funciones de SO2
a un SO ''uncin) y la llamada a la funcin en el espacio de usuario arc distinct. La funcin
del SO de cdigo, datos y pila estn en el rea de memoria protegida. Esto significa que cuando
una llamada de funcin de usuario intenta leer o escribir en el espacio de memoria exclusivo
asignado a funciones del sistema operativo, se bloquea y el sistema genera un error. La
memoria de las funciones del ncleo es distinta y slo puede ser abordado por los sistemas de
llamadas. El espacio de la memoria se denomina espacio de ncleo.
Proteccin de memoria entre La proteccin de memoria para las tareas significa que una tarea llamada de funcin no puede
las tareas2
intentar leer o escribir en la exclusiva zona de espacio de memoria asignado a otra tarea. La
proteccin aumenta el requisito de memoria para cada tarea y tambin la ejecucin de cal el
cdigo de la tarea.
1

RTOS pueden deshabilitar el soporte para la asignacin de bloques dinmicos. Soporte de MMU para la asignacin dinmica de
pginas y enlaces dinmicos como este neumtico aumenta la latencia de las tareas de mantenimiento y de ISR.

2RTOS pueden no ser compatibles con la proteccin de la memoria del sistema operativo las funciones de usuario (uncin de llamadas, ya que esto aumenta la latencia de las tareas de mantenimiento y
de ISR. Las funciones de usuario son entonces runnable en el espacio del kernel y ejecute como funciones de kernel.
2

RTOS pueden proporcionar para desactivar el soporte para proteccin de memoria entre las tareas ya que esto aumenta el
requisito de memoria para cada tarea.

Sistemas operativos en tiempo real

361

El administrador de memoria administra los siguientes: (uso del espacio de direcciones de memoria de un proceso, (ii)
mecanismos especficos para compartir el espacio de memoria, (iii) mecanismos especficos para restringir ofagiven compartir
espacio de memoria y (iv) la optimizacin de los periodos de acceso a memoria mediante una jerarqua de memorias (cachs,
primario y secundario externo memorias magntica y ptica). Recuerde que los perodos de acceso estn en el siguiente orden
creciente: cachs, primario y secundario externo y luego ptico magntico.
El administrador de memoria asigna memoria a los procesos y las administra con la proteccin adecuada. Puede haber
asignaciones estticas y dinmicas de la memoria. El manager optimiza la memoria de las necesidades y la utilizacin de la
memoria. Un RTOS pueden deshabilitar el soporte para la asignacin de bloques dinmicos, soporte de MMU para la
asignacin dinmica de pginas y enlaces dinmicos ya que esto aumenta la latencia de las tareas y srvicing ISR. Un RTOS
pueden admitir o no la proteccin de memoria para reducir la latencia y las necesidades de los procesos de memoria.

8.6

Dispositivo, ARCHIVO Y GESTIN DE SUBSISTEMAS 10

8.6.1 Gestin de dispositivos


Recordar la seccin 4.2. Hay nmero de unidad del dispositivo isr para cada dispositivo en un sistema, cada conductor-funcin
de un dispositivo (por ejemplo, abrir, cerrar, leer) pide otro 1SR. Dispositivo managr (dentro o fuera del espacio del kernel) es el
software que gestiona estos para todos. Cuando las funciones de controlador de dispositivo son una parte del SO (dentro o fuera
del espacio del kernel), el Device Manager funciona eficazmente y adopta una estrategia adecuada para la obtencin de un
rendimiento ptimo para los dispositivos. El director coordina entre el proceso de aplicacin, el controlador y el dispositivo
controlador. Un proceso enva una solicitud al controlador de funciones por una interrupcin utilizando SWI: y el controlador
proporciona las acciones en llamar y ejecutar la ISR. El Device Manager sondea las peticiones a los dispositivos y las acciones se
suceden segn sus prioridades. El device manager gestiona 10 peticiones de interrupcin (colas). El device manager crea una
interfaz de kernel apropiado y API, y que activa el control de registro acciones especficas del dispositivo. El controlador del
dispositivo se activa a travs de la API y kernel interlace (recordar la seccin 1.4.6). Device Manager proporciona un SO y ejecuta
los mdulos para la gestin de los dispositivos y de su conductor, ISR.
1. Gestiona la integridad fsica as como dispositivos virtuales como tubos y tomas de corriente a travs de una estrategia
comn.
2. Gestin de dispositivos tiene tres enfoques estndar para tres tipos de controladores de dispositivo: (i) programadas I/Os
por el sondeo de la necesidad de servicio de cada dispositivo: (ii) interrumpir(s) desde el controlador de dispositivo ISR
y (iii) operacin DMA utilizados por los dispositivos de acceso a la memoria. Es ms comn el uso de driver de
dispositivo ISR.
3. Un administrador de dispositivos tiene las funciones dadas en la Tabla 8.6.

Cuadro 8.6 Funciones de un administrador de dispositivos

Funcin
Deteccin de dispositivos y adems

Borrado del dispositivo


La asignacin de dispositivos y registro

Action(s)
Proporciona los cdigos para detectar la presencia de diferentes dispositivos y, a
continuacin, aadiendo (inicializacin, configuracin y prueba) para el uso de OS
funciones de controlador de dispositivo. Un administrador puede proporcionar para el
seguimiento del inventario de hardware (lista de dispositivos presentes en el sistema
y se conecta al sistema).
Proporciona los cdigos para negar los recursos del dispositivo.
Asigna y registra el puerto (puede ser un registro o memoria) las direcciones
de los distintos dispositivos en diferentes direcciones y tambin incluye cdigos para
detectar posibles colisiones entre ellos.

(Omul)

Los sistemas integrados

Funcin

Aclion(s)

Desacople y deregistration
Desasocia y deregisters Lhe puerto (puede ser un registro o memoria) las direcciones
de los distintos dispositivos en diferentes direcciones y tambin incluye cdigos para
detectar cualquier colisin entre las direcciones existentes en el caso de direcciones
la reasignacin a los restantes dispositivos conectados (registrado).
Dispositivo que limite a un proceso
especfico.
Compartir dispositivos

Restringe el acceso a un dispositivo de un proceso (tarea) slo en un instante.

Control de dispositivos

Permite compartir el acceso de un dispositivo para el seL de procesos, sino a un


proceso (tarea) en un instante.
Un administrador tambin puede proporcionar para el control remoto de los
dispositivos desde el servidor remoto en el proveedor de servicios. (Por ejemplo,
dispositivos mviles con el servidor del proveedor de servicios)

Device Access Management


Acceso secuencial (i), (ii) el acceso aleatorio, (iii) semi-random access, (iv) puede
ser por comunicacin serial o USB UART. rido (v) 4 (o ms) de bits en serie en
paralelo durante el IOs (por ejemplo. S DIO) (captulo 3). El device manager
proporciona la interfaz necesaria.
La gestin de buffer del dispositivo

Dispositivo circular de cola-cola o


Los bloques de gestin de cola

Dispositivo hardware puede simplemente tener un buffer de un byte o de doble buffer


o bfer de 8 bytes. Un buffer device manager utiliza un administrador de memoria
de buffer de E/S de los flujos de datos desde el dispositivo que enva los datos y
administra clculos sin esperar mientras el Buffer recibe los datos a una velocidad
lenta.1 Tambin se usa la varios buffers y productor-consumidor-tipo delimitado
buffers (Seccin 7.7.6).
El dispositivo 10 flujos de datos desde el dispositivo puede ser organizada como las
colas.
Colas circulares y bloques de colas (Seccin 5.4.3).

Controlador de dispositivo

Actualizacin de los controladores de


dispositivo y
Cargar de nuevo las funciones del
dispositivo
Copia de seguridad y restauracin

Un Manager gestiona los controladores de dispositivo. Un controlador de dispositivo


o un controlador de software es el software de interfaz con el hardware del
dispositivo a travs de los autobuses, por un lado, y para la interfaz con el sistema
operativo y aplicacin en otro lado. Los comandos de software para leer y escribir
permite las funciones de lectura y escritura a travs de las JSR tailed utilizando el
suizas.: La interfaz de software OS permite la creacin, conexin, enlace, apertura y
cierre del dispositivo' (Seccin 4.1).
Un administrador tambin puede proporcionar para actualizar el controlador soft
ware desde Internet
Y la carga de las nuevas funciones del dispositivo, que estarn disponibles en una
fecha posterior.
Un administrador tambin puede proporcionar la copia de seguridad y restauracin
de controladores.

Por ejemplo, cuando los clculos para descifrar los datos de entrada es ms lento que el de morir recibiendo datos en el
mayordomo, el buffcr(s) pronto se ahogue. Cuando los clculos para descifrar los datos de entrada es el lustre de la recepcin
de datos en el bfer, los clculos esperar los datos en el bfer.
2
Para los dispositivos de hardware, un dispositivo ISR tambin puede ser llamado un sistema 1SR o un manejador de
interrupcin del sistema.
'Porejemplo, componentes del controlador de dispositivo de Unix son: (i) un dispositivo ISR. (ii) la inicializacin del
dispositivo codes (Cdigos para configurar registros de control del dispositivo) y (iii) la inicializacin del sistema, cdigos, que
ejecute slo despus de que el sistema se restablece (bootstrapping).

El cuadro 8.7 da al conjunto de funciones de comando del sistema operativo de un dispositivo.

Sistemas operativos en tiempo real

363

Tabla 8.7 Set de comandos de funciones para la administracin de dispositivos


Comandos

Crear y <>|)cn

Accin! S)
Crear es para crear y abrir es para crear til no creado anteriormente) y configurar e

inicializar el dispositivo.1
Escribir

Escribir en el buffer del dispositivo o enviar la salida del dispositivo y avanzar el puntero
(cursor).

Leer

Leer (l dispositivo tampn o leer la entrada de dispositivo mueren y avanzar el puntero


(cursor).

Ioctl-

Configurado para el dispositivo especificado (unciones especficas y teniendo en cuenta


los parmetros especficos.

Cerrar y eliminar

Cerrar es para des-registrar el dispositivo del sistema y eliminar es para cerrar (si no

antes) cerrado y desconexin del dispositivo.


1

Existen iwo lypes de dispositivos: dispositivos de caracteres y dispositivos de bloque. (Rcl'cr a la tabla 4.2 para
definiiions.i ' en un sistema die pulgada ( ) se utiliza lor los siguientes: (i) accediendo a la informacin de particin
especfica: iii) Definir comandos y funciones de control de dispositivo se registra; (iii) el control del canal 10.

Los ioctl ( ) tiene tres argumentos tor parmetros especficos del dispositivo.
1. Primer argumento: Define el dispositivo elegido y su functionc pasando como argumento el descriptor

del dispositivo (un nmero), por ejemplo, fd o fsd en las secciones 7.14 y 7.15 para un dispositivo de
control. Ejemplo de ello es el fd = I para el dispositivo de lectura, fd = 2 para dispositivo de escritura.
2. Segundo argumento: define la opcin control o use la opcin para el dispositivo 10. Control de
dispositivos de red mediante la definicin de baudio rale u otros parmetros. Su uso es segn la funcin
definida, como segundo argumento. Dispositivo controlado ser de acuerdo al primer argumento.
3. Tercer argumento: los valores requeridos por la funcin definida en el tercer argumento.

Ejemplo 8.7

Jj

Estado = ioctl (fd. FIOBAUDRATE. 19.200) es una instruccin en el RTOS Vx Works. La fd es dispositivo ihe descriptor
(un entero devuelto cuando se abre el dispositivo) y FIOBAUDRATE es un puntero a funcin IO Jj en baudios que lagos
valor de baudios rale = I9.2IX) del tercer argumento. Esto configura el dev Ml hielo para operacin a 19.200-alcahueta rale.
Jj

Un controlador de dispositivo ISR utiliza varias funciones del SO. A continuacin se presentan algunos ejemplos:
desactivar el sistema de interrupciones, intUnlock ( ) para habilitar las interrupciones. imConneci

imlock ( ) para

( ) para conectar una funcin C a un vector de interrupcin

(la direccin del vector de interrupcin foros ISR dispositivo apunta a una determinada funcin C). Funcin imContexi ( ) considera
si la interrupcin es llamada cuando un ISR estaba en ejecucin.
Sistema operativo UNIX hace factible para dispositivos y archivos para tener una aplicacin anloga en la medida de lo
posible. Un dispositivo tiene abierto ( ), cerrar ( ), leer , escribir
leer

( )

( ) funciones anlogas a las de un archivo abrir,

y escribir funciones (Seccin 7.14). Api y las interfaces del kernel BSD (Berkeley Sockets UNIX para dispositivos) estn

cerrar,
abiertos,

y escribir. Los siguientes son los comandos del ncleo: (i) seleccionar, que es primero'verificar si la lectura o la escritura tendr
xito, (ii) ioctl para transferir informacin especfica del controlador para el controlador de dispositivo. (Por ejemplo, la tasa de
.sdose.pvmd

baudios en el Ejemplo 8.7.] (iii) parada para cancelar la actividad de salida desde el dispositivo, (iv)
bloque leer o escribir o leer o escribir caracteres.

estrategia

para permitir un

Los sistemas integrados

El administrador de dispositivos se inicializa, controles e impulsa los dispositivos fsicos y virtuales del sistema.
Las clases principales de <Jc' neumtico ciem char dispositivos y dispositivos de bloque. Funciones de
controlador de dispositivo puede ser similar a archivo functiuris. abierto. leer. Iseek, escribir y cerrar.

8.6.2 Organizacin y ejecucin del sistema de archivos


Un mosaico es una entidad con nombre en un disco magntico, disco ptico o la memoria del sistema. Un archivo
contiene los datos de caracteres ..ml pruebas. Tambin puede haber una mezcla dela.se. Cada sistema operativo
puede tener diferentes abstracciones de un archivo, (i) Un archivo puede ser .1 denominada entidad que es un
registro estructurado como en un disco que tiene en el sistema de acceso aleatorio, (ii) Un archivo puede ser un
archivo .tinctured grabar en un carnero anlogas a las de un disco y tambin puede ser por separado
denominado disco RAM o 'iinplv. un 'archivo' (dispositivo virtual), (iii) un archivo puede ser un registro
estructurado de bits o bytes, (iv) un dispositivo de archivo puede ser un tubo-como el dispositivo.
Es necesario organizar los archivos de forma sistemtica y con un conjunto de funciones de mando. Cuadro
8.8 .!\es estas funciones para el sistema de archivo POSIX.
Cuadro 8.8 del conjunto de funciones de comando en la interfaz de sistema operativo Portable
(POSIX) Sistema de archivos
('oinnuiml en HOSIX

Aaion(s)

Abrir
Escribir

Funcin para crear el archivo


Al escribir el archivo

Conducir
Iseek fl.iNi) nr buscan
establecer el puntero del
archivo
V perder

La lectura del archivo.

"h: \.

Ajuste el puntero en el lugar apropiado en el


archivo para la siguiente lectura o escritura
Cerrar el archivo

Archivo dispositivos son dispositivos de Flock en Unix. Linux permite el uso de un dispositivo de bloque nosotros u dutr
dispositivo tambin. Esto es porque entre hlnik i/evur y o i m r dn - i \ r . Li nu x t i e ne u na i nt e r f az a di c i on al . E n ot r as p al a br as , e l k e r ne l El
e nt r e l az ad o e s i d nt i c o l or e l c har y di s p os i t i v os d e bl o qu e m Li nu x pe r o no e n U ni x .

2. El archivo [l RAM que est organizado jerrquicamente se conoce como disco RAM. La memoria RAM es anlogo

al almacenamiento en el disco y acceder tambin es similar a un disco. Por ejemplo, la ruta de acceso a un archivo
es un directorio, entonces subdirectorio, (Antigua y ihen subcarpeta. No hay rbol jerrquico, como la organizacin
de la presentacin.
.V Unix tiene un 11 stmciured le .El sistema con un hardware inierface no estructurados. Linux soporta diferentes
sistemas de mosaico estndar lor el sistema.

Debera haber enteros ;t archivo difieren de un archivo tener bytes? Debe haber un archivo bytes difieren de un
archivo laving caracteres'.' debido a morir enfoques diferentes en el dispositivo y el archivo interfaces de gestin,
el desarrollo >f de un conjunto de interfaces estndar se convierte en imprescindible. Slo entonces pueden ser
sistemas porttiles. Un conjunto estndar de interfaces POSIX. Cola de IEEE. POSIX (Portable interfaz de sistema
operativo estndar para los programas de codificacin vhen utilizando los subprocesos mltiples. Despus de la X
I es porque las interfaces son similares a los de Unix. Es iccording a las definiciones en el AT&T UNIX System V
Interface. Define las funciones POSIX: abrir, cerrar, cad. escribir. Iseek y fcntl. Funcin Iseek es mover la posicin
del puntero en la secuencia de bytes. La funcin fcntl es mentira para control. El estndar POSIX para fiie
operaciones son como las operaciones en una secuencia lineal de bytes.

365

Sistemas operativos en tiempo real

Window NT asumir' ;i archivo como la entidad nombrada registro foros de bytes se colocan de forma
secuencial y los S.O tiene las funciones de mando. ereaicFile. Leer el archivo. Y WrileFilc lor CloscHandle
SetFilePoinicr. y crear un archivo, leer un archivo, escribir un archivo y establecer el puntero de archivo desde el
presente hasta una nueva ubicacin.
En Unix tiene un archivo abierto ( ), cerrar ( ). Leer (), write () funciones anlogas a las de un dev
hielo. Abrir, cerrar, leer y escribir funciones. La interfaz de BSD Unix difiere ligeramente de Unix.
Existen dos tipos de sistemas de archivos.
1. Bloquear archivo sistema. Su aplicacin genera registros que se guardan en la memoria. Estos son los
primeros estructurado en un formato adecuado y, a continuacin, se traduce en flujos de bloque. Un
apuntador de archivo (record) apunta a un bloque desde el comienzo hasta el final del archivo.
2. Archivo continuo sistema. Su aplicacin genera grabar secuencias. Estos flujos se guardan en la memoria.
Estos son los primeros estructurado en un formato adecuado y, a continuacin, se traduce en secuencias
de bytes. Un apuntador de archivo (ndice de bytes) apunta a un byte desde el inicio ndice = 0 para N-l
en un archivo de N bytes.
Al igual que cada proceso tiene un descriptor de procesador (PCB); un sistema de ficheros tiene una estructura
de datos, llamado descriptor de archivo (Tabla 8.9). La estructura difiere de uno a otro gestor de archivos.
Descriptor de fichero fd. para un archivo es un nmero entero, que vuelve a abrir un archivo, fd apunta a la
Tabla 8.9 Estructura de datos del descriptor de archivos en un sistema de archivos tpico
estructura de datos del archivo, fd es utilizable hasta el cierre del archivo.
Descriptor de archivo

Significado(s)

Nombre por el que un archivo est identificado en


Identidad
el proceso de aplicacin o programa por el cual fue
Creador o
creado
propietario estado Un estado puede ser cerrada", archivados' (Guardado),
Los campos de
0_RDWR
el archivo
con permisoso deabrir
lectura
y
abra
el abre
archivo
de ejecucin"
archivo
proteccin y
escritura,
0_RDONLY
abre
el
archivo
con
permisos
de
foradditions'
bloqueos
slo
lectura.
0_WR0lo
abre
el archivo
con
permisos
Longitud
actual,
cuando
se
crean,
cuando
se
modific
File info
de slo
escritura
por
ltima
vez, cuando
accedi
ellos
por
ltima
Puede
comparti
la ejecucin
deaTor,
las
mquinas
Permiso compartir
vez
expendedoras o satisfaciendo
Contar
Nmero de directorios refirindose a ella
Los detalles de
Bloques transferibles por acceso
los medios de
_______________________________________________ !
almacenamiento
Manager crea un archivo, se abre, lee, busca un registro, escribe y cierra un archivo. Un archivo tiene un descriptor de fichero.

8.6.3 Los subsistemas de E/S.


Los puertos de E/S son los subsistemas de os sistemas de administracin de dispositivos. Los controladores se
comunican con muchos dispositivos que los utilizan. Instrucciones de E/S depende de la plataforma de hardware.
Los sistemas de E/S diferentes en distintos sistemas operativos. Los subsistemas de un sistema tpico de 10 son
las que aparecen en la Tabla 8.10.
Hay dos tipos de 10 operaciones sincrnicas y asincrnicas. Puede haber funciones separadas para
operaciones sincrnicas y asincrnicas en un RTOS. En el caso de los sistemas operativos tradicionales. Slo
IOs puede sincrnica apoya.
10 operaciones sincrnicas son:'fixedtWata certaip velocidades de transferencia. Por lo tanto, una tarea
(proceso) bloques cajas hasta la finalizacin de la 10. Por ejemplo, una funcin de escritura, escriba I kB () para
la transferencia de datos en un bfer. 10 Funcionamiento sncrono sncrono significa una vez 10 inicia la
transferencia de datos se bloquear la tarea hasta que me kB de datos se transfiere al buffer. Asimismo, lea ( )
una vez iniciado bloquea la tarea hasta que me kB es leer.

366

Los sistemas integrados

Tabla 8.10 de entrada/salida (I/O) Subsistema en un tpico sistema de E/S en un sistema


operativo (SO)
Jerarqua de subsistemas

Actionis) y capas entre los subsistemas

Una aplicacin con un sistema de E/S. Tambin puede


Aplicacin
haber una subcapa entre la aplicacin y las funciones
bsicas de E/S.
10 funciones
Estos son independientes del dispositivo, el sistema
bsicas
operativo, por ejemplo, las funciones del sistema de
archivos para leer y escribir, buffer 10 o archivo
(bloque) funciones de lectura y escritura. Tambin
puede haber una subcapa entre las funciones bsicas
Funciones de
Estos dependen del dispositivo OS funciones. Un
de E/S y E/S funciones de controlador de dispositivo
controlador de
conductor puede interactuar con un conjunto de
dispositivo de
bibliotecas
de funciones,
por ejemplo, para la
Red o dispositivo
serie
Dispositivo
E/S.
hardware o tarjeta comunicacin serial
de interfaz de
puerto
o 10asincrnicas se encuentran en la variable las tasas de transferencia de datos. Disposiciones
10 operaciones
para un proceso de alta prioridad, no bloqueado durante la estancia.

Ejemplo 8.8
POSIX posee las siguientes funciones asincrnicas: aio_read ( ) y aio_write para la lectura y escritura
asincrnica en un sistema de E/S. Por lo tanto, una aio_read () y aio_write () no bloquee la tarea hasta la
finalizacin > de la 10. Uiojist () va a iniciar una lista de mximo determinado puerto de E/S asncrona
peticiones, aiojrrmr JJ ( )> aiojcancel. aio_suspend son funciones de asncrono de 10 estado de error y
recuperacin para ft cancelar y suspender las operaciones de E/S, respectivamente. La suspensin es hasta el
siguiente puerto de dispositivo de interrupcin o ml hasta un timed out aio_return devuelve el estado de las
operaciones realizadas.
Sr
Los subsistemas de E/S son una parte importante de los servicios del sistema operativo. Algunos ejemplos
son el acceso UART y el acceso al puerto paralelo. Hay sncronas y asncronas de IOs. Una tarea se bloquean
durante el 10s sincrnica. Por ejemplo, fread () o escribir () (Seccin 7.14). Soporte RTOSes IOs asincrnica.
.Por ejemplo, aiojread () y aio_write tambin para no bloquear una tarea durante el IOs.
8.7

Las rutinas de interrupcin en el RTOS MEDIO AMBIENTE Y


MANEJO DE FUENTE DE INTERRUPCIN DE LLAMADAS

En un sistema, el ISR debe funcionar de la siguiente manera. .


1. Los ISRs tienen prioridades ms importantes a lo largo de (l os las funciones y las tareas de aplicacin.
Una [SR no esperar un semforo, buzn de mensajes mensaje o cola (Secciones 7. II a 7,13).
2. Un ISR no esperar tambin mutex (Secciones 7.7.3 y 7.8.3), de lo contrario, tiene que esperar a que otro
cdigo de la seccin crtica para finalizar antes de la crtica cdigos en el ISR puede ejecutar. Slo la
funcin accept para estos eventos pueden ser utilizados (fila 7 de la Tabla 7.1 y la seccin 7.11).
Hay tres sistemas alternativos para los sistemas operativos para responder a las llamadas de origen de
hardware las interrupciones. Figura 8.1 (a-c) muestran los tres sistemas. Las siguientes secciones explican los tres
sistemas alternativos en tres sistemas operativos para responder a una llamada en origen de hardware
interrupciones.

"367

Sistemas operativos en tiempo real

8.7.1 Llamada directa a un ISR por una fuente de interrupcin e ISR enviando
un mensaje Enter ISR
Figura 8.1 (a) muestra los pasos. En una interrupcin, el proceso que se ejecuta en la CPU se interrumpe y el ISR
correspondiente a ese origen inicia la ejecucin (paso 1). Una fuente de hardware requiere un ISR directamente.
El ISR simplemente enva un mensaje al entrar ISR OS (paso 2).
OS es simplemente envi un mensaje enter ISR (ISM) del ISR en el paso 2. Posteriormente el cdigo ISR
puede enviar a un buzn de mensajes o Message Queue (paso 3), pero la tarea esperando el buzn o Message
Queue no comienza antes de la devolucin del ISR (paso 4). El ISR escriba el mensaje en el paso 2 es informar al
sistema operativo que un Router ISR ha tomado ontrol de la CPU. El ISR contina la ejecucin de los cdigos
necesarios para el servicio de interrupcin hasta el ISR se enva un mensaje de salida justo antes de la vuelta (paso
4).
Fuentes de interrupcin /
1

Cdigos para
ISR/
Volver OS,
ISR / inicio /
Eventos Mensaje
Mensaje

Qodes para
ISR.
Volver

4
5

OS;
Tarea k

_
-----------

Caso/ ...Mensaje

(a)

Cdigos par
a ISR,

volver OS;

-i 1

Evento / Mensaje ------------ -- ___ G

Interrumpir
| fuente/
Puedo
Contexto k
2 guardar
Llame a
3
ISR,
1

(0

Llame a
ISR,
- Interrumpir la
fuente /
Guardar
contexto k

Recuper
ar el
U, _ 1 Llamada
8
contexto
1ST.
ky
1st para /
6
Volver
ejecute
7
A OS
la tarea
(c)
de nuev
ok
Fig. 8.1 (a) - (c) tres sistemas alternativos en tres sistemas operativos en tiempo real para responder a una llamada
Fuente de interrupciones de hardware

Hay dos funciones, ISR y os funciona, en dos bloques de memoria. Un r-th fuente de interrupcin causas /th ISR, ISR_/. Para ejecutar. La rutina enva un ISR Escribir mensaje para el SO. El mensaje se almacena en la
memoria asignada para OS mensajes. Cuando termina, el ISR ISR enva la salida al SO y no hay retorno y se
interrumpe la ejecucin del proceso (tarea) o la reprogramacin de los procesos (tareas). OS accin depende de
los mensajes de eventos, si la tarea esperando mucho th^/vent es una tarea de mayor prioridad que la tarea
interrumpida por la interrupcin.
En algunos sistemas operativos, puede haber una funcin OSISRSemPost (). El ISR semaphore :s un
Semaphore especial, que OSISRSemPost () puestos y volver desde el SO para ser tomado por la vocacin de
ISR. OS asegura que la ejecucin OSISRSemPost ISR es devuelto despus de cualquier llamada del sistema del
ISR.

1368!
! Yo

Los sistemas integrados

Ejemplo 8.9
Considerar el RTOS |iCOS-II. Supongamos que un microcontrolador dispone de un temporizador de hardware,
que est programado para interrumpir cada 10 ms. El microcontrolador de interrumpir de temporizador de
llamadas y el PC cambia a un ISR direccin vectorial. ISR_timer_ADDR. En ISR_timer_ADDR. (Aqu est una
rutina ISR_TIMER temporizador para el servicio de la interrupcin. ISR_Timer ejecuta primero OSIntEnter ( ),
justo despus del inicio de la ISR_Timer es llamado.
ISR_Timer ejecuta entonces OSIntExit ( ) antes de que el cdigo de retorno.
La OSIntEnter () enva el mensaje a los RTOS que debera existir contexto-interruptor y volver a Jj el ISR slo
despus de cualquier llamada del sistema es hecha por el ISR o hasta la OSIntExit () se ejecuta en el
ISR Jj cdigo. Cualquier tarea esperando el post de semforos o mensaje del buzn o cola de mensaje no
debera M! Inicio de la ejecucin de la post funcin dentro del ISR o en cualquier otra tarea o ISR. RTOS
horarios Ml que posteriormente en la devolucin de ISR.
Mm
Los ISRs mltiples pueden estar anidadas y cada ISR de baja prioridad alta prioridad enva mensajes de
interrupcin ISR yo ISM) con el SO para facilitar el retorno a la finalizacin y regreso desde la interrupcin de
mayor prioridad. Medios de anidacin cuando una llamada fuente de interrupcin de mayor prioridad, por ejemplo,
sistema de interrupcin del reloj de tiempo real 1 SysClklntr) ocurre, entonces se pasa el control a mayor prioridad
SysClklntr y al retorno de la mayor prioridad que el ISR o tareas de menor prioridad inicia la ejecucin. El nmero
de ISR pueden anidarse con orden de ejecucin en secuencia a sus prioridades. Cada ISR en permitir una mayor
prioridad de interrupcin enva la llamada ISM (paso 4) para el RTOS.
Titere es comn para los ISR de pila de llamadas anidadas, similar a la funcin anidada llamadas (Tabla 7.1).

8.7.2 Rto primero Interrumpir en una interrupcin, entonces os llama el ISR


correspondiente
F igura S. 1 (b) muestra los pasos. En la interrupcin de una tarea. decir. K-tit tarea, el SO obtiene primero la fuente
de hardware llamada 'top I) e inicia el ISR correspondiente despus de guardar el actual estado del proceso (o
contexto) (paso 2). La llamada ISR (paso 3) durante la ejecucin entonces puede publicar una o ms salidas (paso
4) para los eventos y mensajes a los buzones o colas.
Supongamos que existen la rutina (/-th ISR) y dos procesos (OS Y / 4 tarea) en tres bloques de memoria >iher
que interrumpe la tarea de Ar-th. Un / 4 fuente de interrupcin hace que el SO para obtener el aviso de que, despus
-tep I finaliza el cdigo crtico hasta el punto de tanteo y llama la /-th ISR. ISR_/ ejecuta (paso 3) despus de "uving
el contexto (paso 2) en una pila. El punto de preferencia es la ltima instruccin de la parte crtica de la funcin del
sistema operativo actualmente en funcionamiento, despus de lo cual el ISR de mxima prioridad es llamado. El
ISR en el paso 4 puede publicar el evento o el buzn mensaje(s) en el sistema operativo para iniciar la tarea /-th o
k-simo tarea tras el retorno (paso 5) del ISR y tras recuperar la /-th o k-simo contexto de tareas.
Los eventos o mensajes del buzn se almacenan en la memoria asignada para OS mensajes. El sistema operativo
inicia la /-th tusk (si es de mayor prioridad que la tarea interrumpida k) o ejecuta la tarea interrumpida k.
El ISR debe ser breve y simplemente debe publicar los mensajes en otra tarea. Esta tarea ejecuta los cdigos
restantes cuando est programada (de acuerdo a las prioridades). OS Schedules nicamente las tareas (procesos) y
cambia el contexto entre las tareas. ISR slo se ejecuta durante una suspensin temporal de una tarea.
OS pueden proporcionar para anidar o un sistema operativo puede proporcionar para el ISR de manera que el
sistema operativo inicia el funcionamiento de la ISR llamadas desde un'prioridad orden FIFO (Tabla 7.1).
El sistema de prioridades son los ISRs y tareas (o ISTs). 1st es simplemente una tarea iniciada en seal o mensaje
de un ISR (por ejemplo, tarea j en el ejemplo anterior).

Sistemas operativos en tiempo real

I 3691

Ejemplo 8.10
Cada dispositivo tiene los cdigos de evento para un ISR, que slo se ejecuta sobre la programacin por el
RTOS y proporcion una interrupcin pendiente para su servicio. Considere ejemplo de dispositivo PDA
mvil (seccin 1.10.6). Los 5 pasos para la interrupcin del servicio por primera interrumpiendo el RTOS
proceso son como sigue:
Asumir que el uso de RTOS. PANTALLA TCTIL ISR. Pantalla tctil_ISR ha sido creado utilizando una
funcin OS_ISR_Create (). La ISR puede compartir el montn de memoria con otros ISRs. Una funcin,
pantalla tctil IntConnect conecta el evento con el identificador de evento en un manejador de interrupcin,
ISR_handler.
Deje que un evento ocurra de pantalla tctil, lo que significa que el usuario del dispositivo mvil que
aprovecha la pantalla al seleccionar un icono o men (paso I). Despus de guardar el contexto del actual
proceso (paso 2) el sistema operativo enva la seal en nombre del ISR_handler para iniciar ISR_Pantalla
tctil (paso 3). Una interrupcin del servicio o un subproceso Task_con la entrada tctil IST_Pantalla tctil
espera usar una funcin de OS_eventPend ( ) para el mensaje (un objeto, tales como semforos, buzones o
mensajes de cola) (4) de la stpe ISR_pantalla tctil. La 1 se ejecuta como por su tarea prioritaria o
IST_TouchScreenPriority entre los dems istas o tareas pendientes J antes de que comience la ejecucin. Jj
Antes del regreso de los ISR_pantalla tctil, enva un mensaje al kernel mediante un ISR_SO_exit
() gj justo antes del final de los cdigos en el ISR_Pantalla tctil (paso 5). El ISR_pantalla tctil puede
ser Ml se reinici en el prximo evento de interrupcin y se prepara para el prximo evento de hardware de
toque en la pantalla, g!

8.7.3 Rto primero Interrumpir en una interrupcin, entonces RTO iniciando el


ISR y luego un ISR

Un RTOS pueden proporcionar para dos niveles de ISR. Un ltimo nivel de ISR. FLISR y un nivel lento ISR
(SLISR). La FLISR tambin pueden ser llamados de interrupcin de hardware y el ISR SLISR como ISR de
interrupcin de software. Se llama FLISR slo el ISR en RTOS Windows CE. La SLISR se denomina hilo de
servicio de interrupcin (1) en Windows CE. El uso de FLISR reduce la latencia de interrupciones (lamentos)
por un perodo de servicio de interrupcin y el jitter (peor caso y el mejor diferencia de latencias) para una
interrupcin de servicio.
Una 1 funciona como una llamada a procedimiento diferido (DPC) del ISR. Una 4 / 1 es un subproceso
para prestar servicio a un / 4 fuente de interrupcin de llamada.
La figura 8.1(c) muestra siete pasos sobre la interrupcin. En Interrumpir, el RTOS obtiene primero la fuente
de hardware llamada (paso I) e inicia el ISR correspondiente despus de terminar la seccin crtica y alcanzando
el pre
Hay el ISR y el nmero de especialistas, RTOS y tareas en los bloques de memoria distinta de la tarea
interrumpida. Cualquier fuente de interrupcin provoca el RTOS para obtener el anuncio de que, a continuacin,
complete el cdigo crtico hasta el punto de tanteo y llama a la ISR. ISR se ejecuta despus de guardar el contexto
en una pila. La ISR puede enviar mensaje(s) en el FIFO para el IST(s) despus de reconocer la fuente de
interrupcin y su prioridad. Los ISTs hi el FIFO,* que han recibido los mensajes del ISR(s) ejecuta (paso 6) segn
sus prioridades sobre retorno (paso 5) del ISR. El ISR tiene la mxima prioridad y se anticipe todos ISTs y tareas
pendientes.
Cuando no ISR o 1st est pendiente de ejecucin en el FIFO, interrumpe la tarea se ejecuta en el retorno (paso
7).

1370
j

Los sistemas integrados

I ho isr inusi l corta, ejecutar cdigos fundamentales y necesarios nicamente y, a continuacin, deben
simplemente enviar los mensajes al iniciar todos o ISTs en el FIFO. Es la 1. que ejecuta los cdigos restantes
segn el ehedule basada en prioridades. El sistema de prioridades estn en orden de ISR. Istas y tareas. Los
periodistas son SI.ISR ejecutando cdigos ndependent deviee- como por el dispositivo prioridades sobre las
seales (SWIst del ISR.
Los ISTs ejecutar en el espacio del kernel. El tas no conducen a la inversin de la prioridad y la herencia de
prioridad leehanism.
"
RTOS planifica el ISTs y tareas (procesos) y cambia los contextos entre ISTs y tareas.

Ejemplo 8.11
Considere la posibilidad de Mac OS X. del Mac OS X es RTO para el dispositivo mvil, por ejemplo. iPod.
Un manejador de interrupcin recibe por primera vez la interrupcin principal y, a continuacin, genera una
interrupcin de software conocido como una interrupcin secundaria. La interrupcin de software secundario
es enviado a iniciar una 1ST.
El SO no recibe la interrupcin real pero el bajo nivel intercepta el proceso de interrupcin. Se llama a un
hardware de bajo nivel (Level) ISR, L1SR. Restablece el bit de interrupcin pendiente en el dispositivo
controlador de interrupciones y llama a un dispositivo especfico, digamos, ISR DISR;. La DISR, enva un
mensaje a una 1; especficas para el dispositivo. El mensaje notifica a la 1, que se ha producido una
interrupcin y, a continuacin, el DISR; vuelve a la LISR. LISR restablece otro bit de interrupcin pendiente
en el dispositivo controlador de interrupciones y llama al otro dispositivo especfico ISR. decir, DISR,,
J
Cuando no hay ms interrupciones estn pendientes, el sistema operativo devuelve el control al subproceso
actualmente en ejecucin, ij que fue interrumpido, y cuando el sistema operativo pasa el control a la LISR.
Mi
1ST, son programados por el sistema operativo. 1ST, considera que se ha producido el Swi, inicia y
ejecuta
JfiLises
l cdigos.
ejecute
como si
se est
ejecutando
un subproceso.
3r ISR
\n
RTOS
uno deIstas
las se
tres
estrategias
sobre
la fuente
de interrupcin
de llamadas: (i) un servicio
directamente despus nerely informando el RTOS al inicio de ISR: f ii) kernel interceptar la llamada y la
correspondiente llamada SRs y tareas. RTOS kernel slo las programaciones de tareas (procesos) e ISR slo
se ejecuta durante una suspensin temporal de la tarea en el RTOS; (iii) kernel interceptar la llamada y la
llamada al ISR. que inicia nd i|ucues ISR pone en una prioridad FIFO. Las seales de ISR la SWJs para ISTs.
El RTOS kernel planificaciones la ISTs como cola de prioridad de procesos y luego las tareas segn la prioridad
de las colas.

8.8

Sistemas operativos en tiempo real

Yo RTOS es so multitarea para las aplicaciones que necesiten reunin de los plazos de tiempo y el
funcionamiento en real- le limitaciones. Restriccin en tiempo real significa restriccin en el intervalo de
tiempo entre la ocurrencia de un evento y AEM-respuesta esperada para el evento.
RTOS-software tiene el SO servicios enumerados en la Tabla 8.11. Estos permiten el diseo de software para
una gran liber de sistemas integrados.
N RTOS es un sistema operativo de respuesta^tiempo jontrolled de eventos y procesos controlados. Los
procesos tienen edictabie latencias. Un RTOS es un sistema operativo para sistemas con los verdaderos
problemas de tiempo y plazos 1 las tareas, ISTs y ISR.

Sistemas operativos en tiempo real

371

Tabla 8.11 Sistema operativo en tiempo real (RTOS) Servicios


I'unamn
OS funciones bsicas

Las prioridades de los procesos de gestin:


asignacin prioritaria

Gestin del proceso de preferencia:

Prioridades de procesos: gestin de


herencia de prioridad.

La previsibilidad del proceso

'Memoria de gestin: proteccin

Gestin de memoria: MMU

Actividades
La gestin de procesos, gestin de recursos, gestin de dispositivos,
dispositivos de I/O subsistemas y dispositivos de red y subsistemas de
gestin.

La asignacin de prioridades a nivel de usuario, denominada asignacin de


prioridad esttica o real
El RTOS kernel emplea un proceso de menor prioridad cuando un mensaje
o evento para el que est a la espera de ejecutar un proceso de mayor
prioridad se lleva a cabo. El RTOS kernel tiene los puntos de preferencia al
final del cdigo crtico y, por lo tanto, el RTOS se pueden anticipar en
aquellos puntos en tiempo real por una tarea de alta prioridad. Slo
pequeas
en permite
el RTOSafunciones
soncompartido
no preferente.
La herencia
de secciones
prioridades
un recurso
en la tarea de baja
prioridad, por ejemplo, pantalla LCD, ser utilizado por tarea de alta prioridad en
primer lugar. Una tarea de prioridad intermedia no adelantarse a la tarea de baja
prioridad cuando est bloqueado para ejecutar los recursos compartidos crticos o
cdigo para la tarea de alta prioridad (Seccin 7.8). Sellado de prioridad en lugar
de la herencia de prioridad opcin tambin se puede utilizar para un sistema
especfico.
Una distribucin predecible el comportamiento del sistema y una previsible la
sincronizacin de las tareas con el mnimo de jitter (diferencia entre el mejor y el
peor latencia).
En RTOS roscas de programa de aplicacin puede ejecutarse en el espacio del
kernel. El rendimiento en tiempo real pasa a nivel alto. Sin embargo, luego un
subproceso puede acceder al cdigo del kernel, pila y memoria de datos- el espacio,
y que esto podra conducir a cdigo de kernel desprotegidos.
Gestin de la memoria es por desactivar el uso de MMU y memoria virtual o
mediante bloqueos de memoria. El bloqueo de memoria slops el intercambio de
pginas entre la memoria fsica y el disco cuando la MMU est desactivada. Esto
hace que la tarea de RTOS latencias predecible y reduce el jitter (tiempo entre el
peor y el mejor caso latencias de una tarea o un hilo).

Asignacin de memoria

En RTOS. La asignacin de memoria es rpido cuando hay asignaciones de bloques


de memoria de longitud fija. En primer lugar, la velocidad de la asignacin es
importante (por ejemplo, 8.6).
Programacin de tareas en tiempo real y control de latencia de interrupcin
RTOS y programacin de latencia por
(Seccin 4.6) y el uso de temporizadores (Secciones 3.6, 3.7 y 3.8) y de los
interrupcin del temporizador de funciones
relojes del sistema.
de control y funciones de gestin de cal
Proporciona funciones de temporizador. Hay tiempo de asignacin y
10 funciones asincrnicas IPC funciones de
desasignacin de alcanzar eficiencia en dado tinting limitaciones.
sincronizacin.
Permite asncrona, lo que significa que IOs IOs sin bloquear una tarea.

Los bloqueos de giro el reparto del tiempo

Sincronizacin de tareas con IPCs (semforos, buzones, colas de mensajes,


tubos, sockets y RPC).
Los bloqueos de giro para el manejo de la seccin crtica (Seccin 8.10.4).

Duros y blandos operabilidad en tiempo

El reparto del tiempo de la ejecucin de procesos que tienen la misma

real

prioridad. Duros y blandos en tiempo real de las operaciones en tiempo real


(Seccin 8.9.3)

372!

8.9

Los sistemas integrados

Diseo bsico con un RTOS

Un sistema integrado con una nica CPU slo puede ejecutar un proceso en una instancia. El proceso en cualquier
instancia puede ser un ncleo de ISR, funcin o tarea (Secciones 8.1.2 y 8.7). Un RTOS usar en sistemas
embebidos facilita la siguiente.
1. Un RTOS proporciona al usuario ejecutar subprocesos en espacio de ncleo para que se ejecute
rpidamente (Ejemplo 8. i).
2. Un RTOS proporciona un manejo efectivo de los lSRs, controladores de dispositivo. IST.s. tareas o
subprocesos (Seccin 8.7) y la activacin y desactivacin de interrupciones en el modo de usuario cdigos
de seccin crtica. Una seccin crtica significa una seccin de cdigos ora recurso o cdigos que deben
ejecutarse sin bloqueo. Una situacin crtica es cuando hay un recurso o datos compartidos con otras
rutinas o tareas. RTOS proporciona para el manejo eficaz de dicha situacin.
3. Un RTOS proporciona la asignacin de memoria y la asignacin de funciones en tiempo fijo y bloques de
memoria (por ejemplo, 8.6) y la restriccin de los accesos a la memoria slo para la pila de bloques de
memoria y otros crticos (Seccin 8.5).
4. Un RTOS prev efectivamente la programacin y ejecucin de las tareas y el bloqueo en casos o muchas
tareas (Seccin 8.10).
5. Gestin de E/S con dispositivos, archivos, buzones, tubos y sockets se vuelve simple utilizando un RTOS.
(Secciones 7.9 y 8.6) RTO prev el uso de colas de mensajes y buzn, canalizaciones, tomas de corriente
y otros 1PC funciones (Secciones 7.9 a 7.15). RTOS prev el uso de semaphored) bv tareas o para los
recursos compartidos (secciones crticas) en una tarea u OS funciones (Seccin 7.7.2).
6. Gestin eficaz de los mltiples estados de la CPU interna y externa y dispositivos virtuales o fsicos.
Asumir que las siguientes acciones se encuentran simultneamente necesaria en una aplicacin, (i) los
dispositivos fsicos del temporizador. UART y teclado han emitido las interrupciones y las rutinas de
servicio son para ser ejecutado, (ii) un archivo es tomada como un dispositivo virtual. Asimismo, el archivo
debe ser abierto con su puntero a su primer registro, (iii) Un temporizador fsico es configurar su control
de registro, (iv) otro temporizador obtiene un conteo de entrada del reloj del sistema, (v) Un dispositivo
virtual, un mosaico, obtiene los insumos para escribir en ella. tvi) Un temporizador establece cambios en
el tiempo de espera y genera una necesidad de su servicio, (vii) un archivo establece cambios sobre
transferencia de ail registros necesarios. (viii) Un temporizador se ejecuta una rutina de servicio de tiempo
de espera, (ix) un mosaico requiere la ejecucin de una funcin, cerrar ( ). Utilizando eficazmente un
mtodo comn para manejar esas necesidades, el RTOS resuelve todos los problemas.
Principios bsicos de diseo en RTOS entorno son como sigue.

8,9.1 Principios
Los siguientes son los principios de diseo cuando se utiliza un RTOS para disear un sistema integrado.

Diseo con los ISRs y tareas el embedded .sistema hardware fuente llamada genera interrupciones. En
interrumpir, si la interrupcin no est enmascarada (desactivado) la interrupcin guarda el proceso actual (una
tarea o un subproceso o funcin del SO) Contexto en una pila y ejecuta el ISR correspondiente a tat interrpt. El
manejo de la fuente de interrupcin de llamadas es como se describe en la seccin 8.7. Es realizada por un RTOS
por uno de los tres mtodos por un determinado entorno RTOS. Las interrupciones estn enmascaradas por
desactivar el comando de interrupcin y desenmascarado por activar comandos de interrupcin.
El ISR slo pueden publicar (enviar) los mensajes para el RTOS y los parmetros de las tareas. No ISR
instruccin debe bloquear cualquier tarea. Por lo tanto, el ISR no debe usar mutex bloquea y no os funciones
pendientes del PIPPQ. Slo un RTOS inicia las acciones segn el ISR-registr seales, semforos, colas^ buzones
y tubos (Seccin 7.9) y el RTOS control estados de las tareas y las interacciones con las tareas. El

[ 373

Sistemas operativos en tiempo real

Variables y tarea Hags siempre deben estar bajo el control de las RTO. No ISR instruccin debe esperar para tomar los mensajes. El ISR
debe ejecutar los cdigos que no deben esperar de las acciones por parte de las RTO y tareas.
RTOS proporciona /o anidacin ofISRs. Esto significa que un ISR puede ser interrumpida por una interrupcin de mayor prioridad y la mayor prioridad que el ISR
comienza a ejecutarse, bloqueando el funcionamiento de ISR de baja prioridad. Cuando el servicio de interrupcin de alta prioridad completa y no hay retorno a la baja prioridad
de interrupcin guardado tras recuperar el contexto de la pila para la interrupcin de baja prioridad.
Una tarea puede esperar y tomar los mensajes (IPCS) y post (enviar) los mensajes utilizando las llamadas de sistema.
Una tarea o ISR no debe llamar a otra tarea o ISR. Cada ISR o tarea tiene que estar bajo el control de los RTOS. Un intento de este tipo debera generar error de estao.

Cada diseo de ISR consistente de cdigo ms cortas como los ISRS tienen prioridades ms
importantes sobre las tareas, los ISR de cdigo debe ser breve, de modo que las tareas no
espere ms para ejecutar. Un principio de diseo es que el cdigo debe ser ptimamente ISR
corto y los clculos detallados a una 1 o tarea por publicar el mensaje o parmetros para
eso. La frecuencia de publicacin de los mensajes por la [PC funciones del ISR debe evitarse.
Cuando se producen frecuentes interrupciones de la misma fuente, entonces los mensajes puede ser la primera
en poner en el bfer en cada interrupcin y cuando el buffer est suficientemente lleno, el IPC mensaje puede ser
publicado para listo buffer. Esto es as porque si el bfer no se utiliza y el IPC mensajes se publican frecuentemente
por hacer llamadas de sistema, OSMsgQPost funcin ( ), habr frecuentes cambios de contexto y, por lo tanto,
prdidas de tiempo. Ejemplo 8.12 muestra cmo el tiempo es salvado de los frecuentes cambios de contexto.

Ejemplo 8.12.
Considerar ACVM (Seccin 1.5.2). Consideran que la tarea, la

tarea de entrada del teclado del usuario (por ejemplo, 7.3). Cuando el

usuario presiona una tecla de la AVCM. genera una interrupcin de dispositivo de hardware. Asumir que la tecla pulsada es ledo por tomar el cdigo ASCII de la tecla
pulsada por el ISR_KeyInputDevice. Una opcin es enviar el cdigo ASCII como el mensaje de la cola de entrada del teclado para la tarea del usuario. Cada vez que se
presiona la tecla, el ISR_KeylnputDevice puestos cdigo ASCII de mosaico en la cola de mensajes. Usuario de la tarea de entrada de teclado es la tarea que tiene que
interpretar las entradas de clave de usuario. Cuando hay retorno del ISR_KeyInputDevice el RTOS finaliza la espera del mensaje en l a cola y la tarea de entrada del
teclado del usuario obtiene el cdigo ASCII. Sin embargo, hasta el momento de la entrada de usuario es completa, no hay ninguna otra accin y usuario de la tarea de
entrada del teclado entra de nuevo la espera para llevar el mensaje de la cola.

La segunda opcin es que la !SR_KeylnputDevice enva el cdigo ASCII en un bfer de teclas. KBuffer. En cada
jj interrumpir, esto se realiza mientras el usuario est de entrada clave para la tecla enter. Sobre la tecla Intro. el ISR_ jj KeylnputDevice semKB puestos un semforo, a la
tarea de entrada del teclado del usuario. La tarea de entrada de teclado del usuario ml toma el semforo y lee el KBuffer y adopta las medidas apropiadas segn las entradas

Ml de las teclas. La segunda opcin permite ahorrar el tiempo gastado en la primera opcin en los
frecuentes cambios de contexto.
del usuario

Diseo con servicio de interrupcin mediante hilos o interrumpir el servicio en determinadas


tareas RTOSes, para realizar el mantenimiento de las interrupciones, hay dos niveles, rpidolento-Isr y nivel nivel ISTs, las prioridades son en primer lugar para el ISR, entonces para el
ISTs y luego la tarea (Seccin 8.7.3 y el ejemplo 8.11). El ISR y publicar los mensajes para la
ISTs y realice los clculos detallados. Si RTOS est proporcionando slo un nivel y, a
continuacin, utilice las tareas como ISTs.
Disear cada tarea con un bucle infinito de Inicio (estado IDLE) hasta finalizar (ltimo estado)
Cada tarea tiene un bucle while que nunca termina. Una tarea espera un IPC o seal para
comenzar. La tarea, que recibe la seal se ejecuta o se toma el IPC para el que est a la espera,
se ejecuta desde el punto donde se ha bloqueado o preferencia. En preventivo, el
programador de tareas de alta prioridad puede retrasarse durante algn perodo para
permitir la ejecucin de tarea de baja prioridad.

Los sistemas integrados

Ejemplo 8.13
Considerar ACVM (Seccin 1.5.21. Ejemplo 7.3 mostr que ACVM (Seccin 1. 10.2) el sistema puede dividirse
en: (i) la tarea de entrada del teclado del usuario, (ii) la tarea Read-Amount, (iii) la tarea de entrega de Chocolate (iv) Mostrar tarea.
(v) GUI_Task y (vi) la tarea de comunicacin. Utilicemos los cinco semforos, las cuales son publicadas de una tarea y la tarea asumida por otro. Ci nco
semforos estn semKB, envi a leer. SemChocolate. Y SemDisplayThanks SemDisplayThanks. Diseo de un cdigo es como sigue.
Y *********** ************ ft * La CFI***** sjssstj!: ****-.}:* s****** :J: ****:: *:}: J!c * :|y

Tarea de Entrada de teclado de usuario {


Si bien (!){/* Cdigo para enviar en key buffer cdigos ASCII en cada ejecucin de ISR. Dispositivo de entrada
clave */ OSSemPend (semKB); /* ejemplo 8.12 mostraron uso de SemKB */
/* Cdigo de accin como por las entradas clave*/
(SemRead OSSemPost) /'* Publicar un semforo para dejar la tarea de lectura cantidad */ inicio
)
Yo
Tarea Read_Cantidad (
Costo int; /* El costo del chocolate seleccionado por el usuario de la entrada del
usuario clave*/ mientras (1) (
(SemRead OSSemPend); /* ESPERE para el mensaje de entrada de teclado de usuario de tareas */
/* Cdigo de accin como por la lectura de las monedas, obtenga el valor de monedas en var iable cantidad */
Si (cantidad > = coste) (SemChocolate OSSemPost) /* Publicar un semforo para dejar la tarea de inicio de entrega
de chocolate si la cantidad es igual o mayor que el coste*/
(SemDisplayThanks OSSemPost) /* Publicar un semforo para dejar la tarea_Display mostrar el mensaje. Espere
a que el buen chocolate*/

)
Task_Chocolate Entrega ( mientras que (I) {
(SemChocolate OSSemPend); /* esperar mensaje de tarea Read_Cantidad */
/* Cdigo de accin para entrega de chocolate */
(SemDisplayCollect OSSemPost) /* Publicar un semforo para dejar la tarea_Display
mostrar el mensaje, gracias. Recoger el buen chocolate. Visite de nuevo. */

Tarea Mostrar {
Mientras que (I) {

Sistemas operativos en tiempo real

375

(SemDisplayThanks OSSemPend). T- lamentacin (o mensaje de tarea Read_Cantidad */


/* Cdigo para mostrar el mensaje. Le da las gracias. Recoger el buen chocolate. Visite de
nuevo *1 OSSemPend (SemDisplayCollecti: /* esperar mensaje de tarea Read_Cantidad */
/* Cdigo para mostrar el mensaje, el mensaje. Lamentacin por el lindo chocolate */

)
Primer ISR_KeyInputDeviee puestos semKB. A continuacin, se inicia la tarea de entrada del teclado del
usuario, qu puestos, entonces SemRead tarea_ Read_suma comience. Luego puestos SemChocolate
semforo despus de que el usuario inserte monedas por el importe correspondiente. El diseo de tareas es
tal que cada cdigo es en el bucle de espera y espera a que el mensaje mediante el RTOS para iniciar y
ejecutar la tarea de cdigos. ISRJCeylnputDevice inicia la cadena de acciones en el ACVM.
Asumir que la prioridad asignada a las tareas estn en el siguiente orden: Usuario de la tarea de entrada
de teclado y, a continuacin, Tarea Read-Amount, tarea entrega de chocolate , a continuacin, Mostrar
tarea, GUI_Task y luego la comunicacin J cada tarea. Como un semforo est siendo publicado desde una
tarea de mayor prioridad y adoptadas nicamente por otra tarea de menor prioridad, podramos haber
utilizado el mismo semforo, digamos, semO para semKB, B SemRead SemChocolate j y sincronizar las
tareas. Sin embargo, con el fin de encapsular los semforos entre la M tareas, utilizamos cinco semforos.
semKB. SemRead. Y SemChocolate SemDisplayThanks.

Diseo en forma de tareas para el mejor y ms predecible el control de tiempo de respuesta


RTOS proporciona el control sobre el tiempo de respuesta de las diferentes tareas. Las distintas tareas se asignan
diferentes prioridades y las tareas que necesita el sistema para ejecutar con mayor rapidez en la respuesta son
separados. Por ejemplo, en un dispositivo de telefona mvil (por ejemplo, i, 0.5) no hay necesidad de una rpida
respuesta a la llamada de telfono-recibir tarea entonces la entrada de clave de usuario. En la cmara digital (por
ejemplo, 1.10.4). La tarea de grabacin de la imagen necesita una respuesta ms rpida que la tarea para descargar
la imagen en un ordenador a travs del puerto USB.
El diseo en forma de tareas para un sistema de diseo modular de mltiples tareas hace que

el diseo modular. Las tareas ofrecen un diseo modular. Por ejemplo, en un dispositivo de
telefona mvil (por ejemplo, 1.5.5) consideramos que la entrada de clave de usuario y
mostrar como tareas separadas. Cuando la pantalla cambia de tamao y se presenta nuevo
hardware de pantalla, slo los cdigos de la pantalla de tareas y recursos para compartir
datos o tareas y ISRs deben ser modificados. Cuando se introduce una nueva funcionalidad
en el sistema, la tarea de entrada de clave de usuario y funciones nuevas tareas asociadas
deben ser modificados.
El diseo en forma de tareas para la encapsulacin de datos Sistema de mltiples tareas
encapsula el cdigo y datos de una tarea de la otra. En el ejemplo 8.13. El costo es
encapsulada en TaskRead_Cantidad de otras tareas y los mensajes como "Gracias, recoger
el buen chocolate. Visite de nuevo' encapsular en la pantalla Tareas.
Con el cuidado diseo del tiempo invertido en el sistema Calis el tiempo esperado en general
depende del objetivo especfico del sistema integrado del procesador y la memoria los
tiempos de acceso. Sin embargo, a fin de proporcionar a la magnitud relativa de los plazos
para la adopcin de medidas bsicas en un planificador preferente, un nuevo parmetro
est definido. Define el tiempo necesario para una accin por un RTOS planificador en
trminos de un parmetro de escala supone, S. S destaca la magnitud relativa de los tiempos
de ejecucin de distintas acciones en un tpico RTOS.
Deje que el tiempo tomado para la simple instruccin tmi". El tiempo mnimo es cuando los semforos P y V se
asignan determinados valores iniciales, true o false. Vamos a ser definida en unidades de Ts. El Ts y
tmin depende de un determinado

Los sistemas integrados

376

Objetivo del sistema integrado del procesador y la memoria los tiempos de acceso. Por ejemplo, un valor tpico
lor un procesador, tmin es 0.6 (.es y dejar Ts (ts = (4 + 0,6 (es). Deje icxix. = ((""" + S.Ts). Esta ecuacin se define
como el tiempo por encima de t,"en unidades bsicas de una unidad de tiempo. T,.
Si el mismo RTO se ejecuta en un procesador diferente, la S, por lo tanto, seguir siendo el mismo. S se
toma como el entero positivo ms cercano para la magnitud relativa de los tiempos de ejecucin para el
planificador de acciones.
1. S = I significar tCXl,c entre 2,8 y 5,2 (es us
2. S = 2 significa 7.4 (est a 8,8 (es
3. S = 4 significar 14.2 (es de 18,0 (es
4. S = 5 significar 20.6 (es + 3.0 (ES
5. S = 10 significar 40.6 (es + 6.0 (ES
6. S = 15 significar 60,6 (es + 8,0 (es
La tabla 8.12 da una lista de acciones bsicas en una accin preventiva RTOS y tiempo de ejecucin en
trminos de un parmetro de escala S.
Tabla 8.12 una lista de acciones bsicas en una accin preventiva RTOS y tiempo de ejecucin en trminos de un
parmetro de escala 5
1
Accin j

J cambio de
Iniciar
tareas
contexto

S
2
12

Accin

Suspender tareas

1
1

Reanudar tareas

Accin
Sem post/tomar
Tome semaphore, mutex,
contando al semforo
sem disponibles

Crear y activar tareas

| Eliminar tarea
Yo
J

2
8
10

Bloqueo de tareas
cuando no bloquear o
desbloquear cuando
existeasignar
bloqueo
Mem

'Mill

Semforo,
mutex,
contando
semaphore
crear o eliminar
1

rbol del MEM

Mutex ras

1
18

Byte de red enviar

Bandera de semforo
o conteo semaphore
ras

'MM
Semforo de liberacin,
mutex, contando el
semforo cuando no hay
ninguna tarea en Q
4 Mensaje Crear Q

Accin

1
1Q

Mensaje Q eliminar

recibir
disponible

mensaje

10
2

6 Q recibir mensaje no
disponible

Yo

3 Q Mensaje Enviar tarea

Semforo de liberacin,
mutex, contando al
semforo en Q

Yo
Yo

Yo
!
Marca
de
conmutador
de
tareas para ejecutar j
1 La tarea de crear o
eliminar

Yo

Mensaje Enviar tarea Q


NO pendiente
Yo Q Send Message Queue
full

pendiente

2
Yo

105

Las abreviaturas son como en soportes: semforos (sem), Cola (Q) y la memoria (MEM).

El RTOS Crear funcin () para crear una tarea tarda ms tiempo de CPU que escribir en una cola y, a
continuacin, leer desde la cola, y el uso de un semforo tarda menos. Por lo tanto, el diseo debe crear todas las
tareas al principio, incluso antes del inicio de la garrapata del reloj del sistema.

Sistemas operativos en tiempo real

377

Como cola tarda ms tiempo que el semforo, utiliza semforos si basta. Por ejemplo, considere los cdigos
de ejemplo 8.13. (SemDisplayCollect OSSemPost) se utiliza en lugar dela cola para publicar el mensaje Gracias.
Recoger el buen chocolate. Visite de nuevo'. lor la pantalla tarea. Obteniendo un semforo lagos el menos
tiempo de CPU.
Como seales tome menos tiempo entre el IPC. Utilizar seales para el IPCs ms urgentes (por ejemplo, Error
reporting arrojando las excepciones).

Limitar el nmero de tareas y seleccione el nmero apropiado de tareas para aumentar el


tiempo de respuesta a las tareas, un mejor control sobre el recurso compartido y el requisito
de memoria reducida para pilas limitamos el nmero de tareas de forma adecuada. Las
tareas, que comparten los datos con el nmero de tareas, puede ser concebido como una sola
tarea. Los ejemplos de tales tareas son: (i) la tarea de mostrar los mensajes de un nmero de
tareas, (ii) la tarea de imprimacin para los mensajes de un nmero de tareas y (iii) memoria
flash tarea de escritura para escribir en la memoria flash por el nmero de tareas.

Ejemplo 8.14
Considere la posibilidad de un dispositivo de telefona mvil (por ejemplo, 1.5.5). Es necesario realizar las
siguientes tareas: mostrar la hora y fecha segn el mensaje publicado por la otra tarea, mostrar la
batera segn el mensaje publicado por la otra tarea, mostrar la intensidad de la seal segn el mensaje
publicado por la otra tarea, perfil de dispositivo de visualizacin (general o silenciosa) como por el mensaje
postedby la tarea de entrada de usuario, mostrar mensajes publicado por la otra tarea y mostrar el estado de
llamada y mens
en
pantalla.
F
Un diseo que se puede asumir que cada accin en la pantalla como un subproceso independiente. Otro
diseo puede ser Jj Mostrar tarea, que acepta los mensajes de diferentes tareas y muestra. Que llevar a la
creacin de Mj slo una tarea para mostrar y TCB y pila para mostrar la tarea. Una nica tarea para
mostrar "! Proporciona mejor control de cundo, dnde y qu se va a mostrar.

Uso apropiado la estrategia de asignacin de prioridad y utilizar en su lugar de preferencia del


reparto del tiempo la tarea de mayor prioridad, emplea la baja prioridad que las tareas y los ISRs preempt las
tareas. Por lo tanto, una prioridad adecuada es elegido.
La ISlls tienen prioridades ms importantes a lo largo de los ISTs y tareas.
Un modo de programar las tareas es asignarles prioridades iguales y asignar el segmento de tiempo de modo
round robin (Seccin 8.10.2). El reparto del tiempo se hace en ciertos casos especficos, por ejemplo, en un router
de red cuando es el enrutamiento de los paquetes de mltiples clientes.

Evitar la eliminacin de tareas Crear tareas en st;slo iu y evitar la creacin y eliminacin de tareas ms
adelante. La nica ventaja de eliminar es la disponibilidad de espacio de memoria adicional. Supongamos que una
tarea es eliminada por un OSTaskDeleie funcin ( ). Ahora puede ser una situacin en la que una tarea est
esperando un semforo (para que otros (pide terminar la seccin crtica) o est esperando una cola (o buzn de
mensajes) para un puntero en el RTOS y ese puntero es para un mensaje a la tarea que ha sido eliminado. Un
bloqueo prolongado o un abrazo mortal o un estancamiento luego ocurrir. Un RTOS nitty no proporcionan
proteccin para estas situaciones.
Algunos RTO proporcionan una opcin para hacer un semforo de eliminacin segura.

Uso de Tiempo de CPU Idle para funciones internas a menudo, la CPU no puede ejecutar
cualquier tarea. Todas las tareas pueden ser waitingior (de preferencia para la transicin del
lugar preparado para ejecutar el lugar). La CPU en ese instante, podr asociar el RTOS para
las siguientes. Leer la cola interna. Administrar la memoria. Bsqueda de un bloque de
memoria libre. Eliminar o enviar una tarea. Realizar las funciones internas y el IPC.

; 378

Los sistemas integrados /

Diseo con la asignacin de memoria y De-Allocation por la tarea si la asignacin de memoria


y de asignacin son (en solitario por la tarea, el nmero de funciones RTOS es reducido
(Ejemplo 8.6. Seccin 8.5 ). Esto reduce los perodos de latencia de interrupcin como la
ejecucin de estas funciones lleva un tiempo considerable por parte de las RTO cuando el RTOS
anticipa una tarea.
Adems, si los bloques de memoria de tamao fijo son asignados, la previsibilidad del tiempo empleado en la
asignacin de memoria
Es all.

Diseo con el cuidado de los recursos compartidos o datos entre las tareas de codificacin /SR
debe l como una funcin reentrante o debera ocuparse de los problemas de los recursos compartidos o datos como
buffer o variables globales (Seccin 7.8k Desactivacin de la ejecucin de otras tareas durante un periodo largo de
tiempo aumenta el peor caso de perodos de latencia de interrupcin para todas las interrupciones. Mientras se
ejecuta el cdigo de la seccin crtica, si es posible. En lugar de deshabilitar las interrupciones slo la tarea de
cambios de pabelln debern utilizarse. Se realiza mediante el uso de semforos. Por lo tanto, slo la preferente por
parte de las RTO debe ser evitada. Deshabilitar la anticipacin puede ser mejor que deshabilitar las interrupciones.
Sin embargo, aumentan ms facilidad las latencias de interrupcin.
Bloqueo de recursos utilizando los semforos mutex o spin-bloquea l mejor que desactivar la preferencia o
interrupciones (Seccin 8.10.3). Una tarea debe tener el semforo mutex slo durante un corto periodo en el que la
seccin crtica solo se ejecuta y los recursos compartidos (como el controlador de dispositivo de pantalla) a los que
se accede. Los bloqueos de giro tambin puede ser utilizada, en el caso de seccin crtica de cdigo es breve y se
ejecuta en menos tiempo que el IPC y contabilizacin de tiempo de cambio de contexto (por ejemplo, Seccin 8.20,
8.10.3).

Diseo con jerrquico escalable y limitadas funciones RTOS utilizar un RTOS, que es jerrquico, as
como escalables, de forma que slo tiene las funciones necesarias se encuentran en la seccin portado de ncleo
con el resto fuera de la izquierda. Esto es debido a que el pre-emption aumenta la programacin de los perodos de
latencia de interrupcin debido al tiempo empleado en el cambio de contexto y guardar y recuperar punteros para el
RTOS de funciones como la asignacin de memoria, y IPCs (tabla 8.12).
Las funciones para la administracin de la memoria, las funciones del sistema de mosaico. IPC (p. ej., tubo de
seal, zcalo y RPC) son prestados fuera del ncleo en un RTOS escalable y jerrquica. M.V1 Li est desactivada
para la prediccin del tiempo de respuesta de las tareas (Seccin 8.8).
RTOS jerrquica significa el RTOS Cruces pot table alter extensin .y conectando otros functionScalable
RTOS, significa portable en la imagen de la ROM del sistema despus de la limitada RTOS cruces en el espacio del
kernel como por las necesidades de la aplicacin. Por ejemplo, si el tubo de cola y las funciones no son necesarias
en un sistema integrado de diseo, estas funciones no son portados en RTOS escalable.

8.9.2 Encapsulamiento utilizando los semforos y colas


Semforos, colas y mensajes no debera l globalmente las variables compartidas, y cada uno debe ser compartida
entre un conjunto de tareas slo y encapsulado del resto.

Semforos un semforo encapsula los datos en una seccin crtica o encapsula un bfer de una
tarea de lectura o escritura en el buffer por varias tareas simultneamente. Ejemplo 7.14
mostraron que el uso de un bfer por producir la tarea (escribir en el vaco de las direcciones
de memoria de bfer) y ardua tarea (lectura de los espacios llenos en el bfer). Ejemplo 8.15
da otro ejemplo.

Sistemas operativos en tiempo real

1379:
Lj

Ejemplo 8.15
Supongamos que la tarea Read-Amount reuds Tigres de Liberacin de Eelam Tamil cantidad y despus se
engaan al chocolate la cantidad es reducida por un valor igual al coste. El semforo se asle la cantidad
de variables globales.
I -ft : ft ft & ft pie- ft- sjt ft pie * ft ;js ft. * ft ft pie * ft ft ft ft ft ft pie * * $ ft rje ft. tjs ft. ft. ft. ft. ft. ft. pies * ft. ft- ft- :js * t-: j

Static int costo; /* El costo del chocolate seleccionado por el usuario de la entrada del usuario clave*/ static
int cantidad; /* */ La cantidad variable
/* Cdigo para crear semaphore SemAmount con valor inicial = I *1 tarea Read_Cantidad i
Mientras que (I) {
(SemRead OSSemPend); I* Espere para el mensaje de entrada de teclado de usuario de
tareas *1 OSSemPend (SemAmount); /* ESPERE semaphore reduciendo la cantidad de tareas en la seccin
de entrega de chocolate */
I* Cdigo de accin como por la lectura de las monedas, obtenga el valor de monedas en cantidad variable
*/
Si (cantidad > = coste)
(SemChocolate OSSemPost) /* Publicar un semforo para dejar la tarea de inicio de entrega de chocolate si
el monto es
Igual o mayor que el coste*/
(SemAmount OSSemPest); /* Publicar un semforo para dejar la tarea Chocolate_Delivery reducir el
importe por un valor igual al coste de chocolate despus de la entrega del chocolate */
(SemDisplayThanks OSSemPost) /* Publicar un semforo para dejar la tarea_Display mostrar el mensaje.
Espere a que el chocolate de Niza4/.
Tusk Chocolate_Deliverv ( mientras th(
OSSemPend iSemChocolate); /* esperar mensaje de tarea Read_Cantidad */
/'' el cdigo de accin para entrega de chocolate */
(SemAmount OSSemPend) /* ESPERE para la cantidad dispuesta en la tarea de lectura_Amount.4/ cantidad
= cantidad - costo;
(SemAmount OSSemPost) /* devolver el importe del semforo a la tarea
Read_Amounl.4/ OSSemPost (SemDisplayColIcct) /* Publicar un semforo para dejar la
tarea_Display mostrar el mensaje. Le da las gracias. Recoger el buen chocolate. Visite de
nuevo. */

J- := * II: * * * ft- ft is* # *

** *

ft pie'ft ft. ft- * ft sj: * ft :j: Jjs :jt :|t|j sj: TJ: TJ: ft :}s :|: pi es pies pies pies pies pies .-j:

:j: s|:

Ft $ # ft J

La cantidad cuando se leen por la tarea de lectura cantidad, est encapsulada frente la tarea mediante la entrega
de chocolate semAmount semaphore mutex. Cuando se reduce el importe por la tarea deliveiy chocolate, se
encapsulan mediante la semAmount.
Asumir que el semforo semAmount no se utiliza para el encapsulamiento de la cantidad. Veamos el efecto.
Si / ISR_KeyInputDevice (ejemplo ^12) se ejecuta en una entrada del usuario antes de que la cantidad se
reduce en la tarea de la entrega, el chocolate Ji sem'KB sers enviado y luego tomada por tarea leer cantidad
y pre- Mj impedir la tarea de entrega de chocolate. Incluso si el usuario no introduzca ninguna moneda, la
tarea ser errneamente y SemDisplayCollect SemChocolate Ml post.
JM

13801

__
>

Los sistemas integrados

Colas una cola puede usarse para encapsular los mensajes para una tarea en una instancia
de las mltiples tareas. Supongamos que una tarea de visualizacin se registr un men para
mostrar en una pantalla tctil en un PDA (por ejemplo, 1.10.6). Varios ta.sks pueden publicar
los mensajes en la cola de la pantalla. Cuando una tarea est registrando los mensajes y :se
muestran mensajes de cmeh, otra tarea debera ser bloqueado de publicar los mensajes.
Podemos escribir una tarea, que toma la entrada de mensajes de otras tareas y puestos estos mensajes a la
tarea lisplay slo despus de la consulta si la cola est vaca.

Ejemplo 8.16
Considere la posibilidad de un dispositivo de telefona mvil (por ejemplo, 1.10.5). Supongamos que la tarea
ReadSMS y TaskSelected \ i u puestos en una cola para TaskJDisplay. La codificacin puede ser como sigue.
." / ****************************::(:#************************/
- Definir QMsgSize = 64 /'"Asumir que la cola puede ser publicado hasta 64 variables de puntero*/
- Definir QErrMsgSize = 16 /'"Asumir que hasta 16 mensajes de error ean ser publicado de la cola*/ OS_Evenl
* QMsgPointer /* crea un bloque de control de eventos */
Wud QMsgSizeJ QMsgPointer [ I* Definir un puntero a la cola */
OS_Event * QErrMsgPointer /* Crear un evento para el bloque de control de la cola de los
mensajesde error'"/ void '"QErrMsgPointer fQErrMsgSize] /* Definir un puntero a la cola de 'V
= OSQCreate QMsgPointer (&QMsgSize QMsg 10]); /* Cree una cola utilizando la llamada a la funcin RTOS
OSQCreate */
= OSQCreate QErrMsgPointer (&QMsg ]0j, QErrMsgSize): I* crear una cola de mensajes de error utilizando la
llamada a la funcin RTOS OSQCreate*/
Tusk_ ReadSMS ( /* Cdigo para la tarea que toma como entrada el mensaje SMS
*/ mientras (1)|
(lSQQiiery ('"QMsgPointer. QMsg);
II (QMsg = = (void *) 0) {OSQPost (*QMsgPointer. &SMSMsg): | /* Q no contiene mensajes post
Tii.: mensaje SMS en la cola*/
TuskJ)uestra { /* Cdigo para la tarea que muestra los mensajes '"/.
La bilis (I) {
DispMsg = (void *) 0
Mientras (QMsg ! = (void *) 0)
j
= OSQPend ADispMsg ("'QMsgPointer, 0 &QErrMsg); /* ESPERE a que los mensajes en la cola hasta que todo
Los mensajes ledos */
DispMss ++;
I
Yo
Los mensajes son enviados a la cola despus de la consulta si no tiene mensajes y
As, el mensaje seala el puntero nulo.

.9.3 Consideraciones de tiempo real duro


Ard tiempo real significa la adhesin estricta a la fecha lmite de cada tarea. Cuando se produce un evento, debe
ser atendido dentro
E fecha previsible en todo momento en un disco de sistema en tiempo real. El perodo de preferencia para el disco
en tiempo real

Sistemas operativos en tiempo real

381

Tarea en el peor de los casos debera l menos de unos pocos microsegundos. Un disco RTOS es uno que tiene un
rendimiento predecible con ningn plazo miss, incluso en el caso de tareas espordicas (rfagas repentinas de
ocurrencia de eventos que requieran de atencin). Sistema de control del motor de automviles y de frenos
antibloqueo son ejemplos de sistemas de tiempo real duro.
Disco los sistemas de tiempo real, se prevn los siguientes.
1. Desactivacin de todas las otras interrupciones de baja prioridad cuando se ejecuta el disco las tareas en
tiempo real.
2. La tarea de mayor prioridad de preferencia por tareas de menor prioridad.
3. Algunos cdigo crtico en la asamblea para cumplir con la restriccin en tiempo real (fecha lmite) rpido.
4. Tarea que se ejecuta en el espacio del kernel. Esto ahorra el tiempo necesario para comprobar primero si
el acceso est fuera del espacio de memoria asignada a las funciones de kernel.
5. Provisin de IOs asincrnica.
6. Disposicin de los bloqueos de giro.
7. Predicciones de latencias de interrupcin y cambio de contexto latencias de las tareas. Esto se logra
mediante la escritura de todas las funciones de ejecucin que siempre tienen los mismos intervalos de
tiempo en el caso de tasas variables de ocurrencias de los acontecimientos.
8. Respuesta en todas las ranuras de tiempo para los eventos en el sistema y, por tanto, proporcionando la
tarea garantiza los plazos de entrega, incluso en el caso de tareas no peridicas y espordicas. Tareas
espordicas significa las tareas ejecutadas en las rfagas repentinas de los eventos correspondientes a tasas
elevadas, y aperidico significa tareas tareas que ningn perodo determinado de ocurrencia del evento.
Un suave tiempo real es aquel en el que los plazos son mayormente conocido. Tiempo real suave significa que
slo la precedencia y la secuencia de las operaciones de tarea estn definidos, las latencias de interrupcin y
cambio de contexto latencias son pequeas, pero puede haber algunas diferencias entre las latencias esperado de
las tareas y observ las limitaciones de tiempo y unos plazos misses son aceptadas. El perodo de preferencia para
la tarea en tiempo real suave en una peor facilidad puede ser de unos pocos milisegundos. Telfonos mviles,
cmaras digitales y orquesta tocando los robots son ejemplos de sistemas de tiempo real blando.

8.9.4 Ahorro de memoria y poder


Mtodos de ahorro y optimizacin del espacio de memoria
Los siguientes son los mtodos.
1. Utilice la estructura de datos comprimido siempre que el algoritmo de compresin de datos comprimidos
plus estructura combinada juntos ocupan menos memoria en el sistema, en comparacin con el caso
cuando slo se utiliza la estructura de datos desempaquetados.
2. Hacer los cdigos compacto y equipado en pequeas reas de la memoria sin afectar el rendimiento del
cdigo. Esto se llama la optimizacin de memoria. Cdigo significa cdigo compilado y ensamblado
ejecutable en el sistema dado. Tambin reduce el nmero total de ciclos de CPU y, por lo tanto, las
necesidades totales de energa.
3. Declaracin de uso como unsigned byte, especialmente dentro de los bucles while y, si hay una variable,
que siempre tiene un valor entre 0 y 255. Al utilizar estructuras de datos, limitar el tamao mximo de las
colas, listas y pilas de tamao a 256. Aritmtica de byte tarda menos tiempo que la aritmtica de enteros.
Seguir una regla que utiliza bytes sin signo especialmente dentro del y bucles while para un tugurio
entero si es posible, para optimizar el uso de la RAM y la ROM disponible en el sistema. Evitar en lo
posible el uso de nmeros enteros'largo' y 'doble' valor de punto flotante de precisin especialmente en
los bytes y bucles while.
4. Evite el uso de las funciones de biblioteca si una codificacin ms simple es posible. Biblioteca fi.actitttts:
son las funciones generales. Uso de la funcin general necesita ms memoria en varios casos.
Seguir una regla que evita el uso de las funciones de biblioteca en el caso de una funcin generalizada
se espera que tenga ms memoria, especialmente cuando su codificacin es simple.

Los sistemas integrados

5. Configurar el RTOS funciones. Por ejemplo, si las colas no son necesarios el RTOS lunciions cola no
son portados en la imagen de la ROM.
Utilice un configurable. escalable, RTOS jerrquica que ayudarn a la imagen de la ROM para ejecutar
las funciones necesarias ol el kernel.
6. Optimizar el uso de memoria RAM para las pilas. Es realizado por tres mtodos: (i) reducir el nmero
de tareas que interactan con el sistema operativo. (iii reduciendo el nmero de llamadas y las llamadas
anidadas en el mejor de los casos, uno ms lunciion Hierro) una funcin (una funcin llama a otra funcin
y que l llama (tercera y as sucesivamente significa llamadas anidadas), (iii) optimizar el nmero de
tareas. (Menor nmero de tareas se puso en primer lugar en una lista de tareas iniciadas y las frecuentes
interacciones con el sistema operativo y el contexto de recuperaciones y Ahorro de pila en el cambio de
contexto, dando as ms memoria y cal overheads.) De esta forma, se optimiza el uso de la pila. Como
regla reducir el uso frecuente de las llamadas a funciones y colls anidados y as reducir el tiempo y la
memoria RAM necesaria para los pantalones, respectivamente.
1. Optimizar la asignacin de paquetes. Un mtodo es que asignaron zonas pila de asignacin estn llenos
con los bytes especficos o un conjunto especfico de bytes. A continuacin, descubrir que en el peor de
los casos de ejecucin del sistema integrado, cuntos bytes lleno no cambian. A continuacin, reducir el
espacio de pila asignada por la tarea de reescritura, buffer y otros cdigos de creacin de memoria.
8. - En el caso del diseo de software se hizo rpidamente con el conjunto de instrucciones del procesador
de destino, la Asamblea
Los cdigos utilizados. Esto tambin permite el uso eficiente de la memoria. El controlador de
dispositivo en el conjunto de programas especialmente proporcionar eficacia debido a vivir necesitan
utilizar el conjunto de bits-reset instrucciones para los registros de control y estado. Slo unos pocos
cdigos de montaje para el uso del dispositivo direcciones de puerto de E/S, registros de control y estado
son necesarios. El mejor uso de las funciones disponibles para las aplicaciones. Codificacin de montaje
tambin ayuda en la codificacin para operaciones atmicas. Un modificador registro puede ser utilizado
en el programa de C para un rpido acceso a una variable utilizados frecuentemente. Si portAdata es
empleada con frecuencia, se utilizan como se indica a continuacin, registrar unsigned byte portAdata'.
El modificador register indica al compilador que lugar portAdata en un registro de propsito general del
procesador.
Av una regla, utilice el conjunto de cdigos para funciones simples como configurar el dispositivo de
control de registro, direcciones de puerto y manipulaciones hit si el conjunto de instrucciones es
claramente entendido. Uso general de Cades para las operaciones atmicas para incremento y adicin.
Utilice el modificador 'registrar' en el programa C para una variable utilizados frecuentemente.
9. Llamar a una funcin causa guardar el contexto en una memoria y demora en volver (mentira contexto
se recupera. Esto implica tiempo y puede aumentar la latencia de interrupcin del peor caso . Hay un
modificador en lnea. Cuando se utiliza el modificador en lnea, el compilador inserta el cdigo real en
todos los lugares donde estos operadores se utilizan. Esto reduce el tiempo y los gastos generales de pila
en la funcin llamada y retorno. Pero esto es a costa de una mayor ROM est siendo necesaria para los
cdigos. Si se usa, se incrementa el tamao de mosaico del programa, sino que da una mayor velocidad.
Utilizando el modificador indica al compilador para poner los cdigos para la funcin (entre llaves) en
vez de llamar a esa funcin.
Av una regla, utilice los modificadores en lnea ahora todas las utilizadas frecuentemente, pequeos
conjuntos de cdigos en la funcin o la sobrecarga de operadores funciones si el ROM est disponible
en el sistema. un puesto vacante de la memoria ROM es un recurso no utilizado. Por qu no utilizarlo
para reducir el peor caso de latencias de interrupcin eliminando el tiempo empleado en la frecuente
guardar y recuperar el contexto de los programas?
IC.^cuando se declara una variable esttica, el procesador accede con menos nmero de instrucciones que
desde la pila. Mientras los datos compartidos no se plantea el problema, el uso de variables estticas
(global) puede ser optimizado. Estos no son usados como argumentos para transmitir los valores. Una

Sistemas operativos en tiempo real

11.

12.

13.

14.

383

Reducir el peor facilidad interrumpir la latencia y el tiempo y los gastos generales de pila en la funcin
llamada y retorno. Bui es a expensas de los cdigos para eliminar el problema de datos compartidos.
Como regla, el uso esttico (I variables globales si se abordan los problemas de datos compartidos y
usar variables estticas en caso necesario guardar frecuentemente en la pila.
Combinar dos funciones, si es posible. Por ejemplo, las funciones de bsqueda de t'r encontrar punteros
t un elemento de la lista y punteros de los elementos de la lista anterior se combinan en uno solo. Si
es false, el puntero de la lista anterior recupera el elemento que tiene el tema.
Como regla general, siempre que sea posible combinar dos funciones de ms de menos cdigos similares.
Utilizar si es factible, alternativas a las declaraciones de switch-case, una tabla de punteros a funciones.
Esto ahorra el tiempo de procesador para decidir qu conjunto de instrucciones que se ejecutan en el lugar
de realizacin de las pruebas condicionales todos abajo de una cadena.
Cuando Medi C++, el compilador para configurar no permite la herencia mltiple, plantillas, manejo
excepcional, New Style Casts, espacios de nombres y clases base virtual.
Como regla general, para el uso de C++, utilice las clases sin herencia mltiple. Sin lenti>lale con run.
Al usar Java, utilice el J2ME y configurar las clases de dispositivos.
Como regla general, nosotros J2ME con las configuraciones del dispositivo cuando los pequeos
dispositivos de cdigo de programacin en Java.

Los diseadores de software incrustado puede utilizar diversas formas estndar para optimizar las necesidades
nieory en el sistema.

Mtodos de ahorro y optimizacin de las necesidades de potencia

Los siguientes son los

mtodos de ahorro de energa.

Cambiar al modo de espera y modos de parada de un sistema integrado tiene que realizar tareas
continuamente desde el poder- y tambin puede quedar en estado de encendido, por lo tanto, ahorro de energa
durante la ejecucin es importante. Un microcontrolador utilizado en el sistema integrado debe proporcionar para
ejecutar esperar y dejar instrucciones y funcionamiento en powerWait y tira de instrucciones. Por ejemplo, un
programa puede ser tal que reduce el nivel de brillo de la pantalla LCD, de modo que se necesita menos energa
cuando el sistema se utiliza en una habitacin iluminada por completo. Un sensor detecta el nivel de luz a
intervalos especficos.
Un sistema incorporado nitty deben ejecutarse de forma continua, sin ser apagado; el diseo del sistema, por
lo tanto, est limitada por la necesidad de limitar la disipacin de energa mientras se est ejecutando. El consumo
total de energa por el sistema funcionando mal, llorando y ralent stales tambin debe ser limitado. Un programa
puede aportar para el cambio automtico en el modo de espera mal caso el sistema no se utiliza dentro de un
determinado intervalo de cal y en modo STOP cuando el sistema no se utiliza durante largos intervalos. Por
ejemplo, telfono mvil apagado automtico de las luces de la pantalla LCD cuando no se utiliza durante 5 o 20
segundos). Modo de atender una llamada puede ser desactivada si no hay hablar durante ms de un minuto.
La corriente necesaria en cualquier instante en el procesador para un sistema integrado depende del estado y
modo del procesador. Los siguientes son los valores tpicos en seis estados del procesador.
1. 30 mA cuando slo el procesador est funcionando; es decir. El procesador ejecuta las instrucciones.
2. 73 mA cuando el procesador po las memorias externas y chips estn en un estado de ejecucin: es decir.
La obtencin y ejecucin estn en progreso.
3. 15 pA slo cuando el procesador est en el estado de parada, es decir, obtencin y ejecucin han parado
Y el reloj se ha inhabilitado desde todas las unidades estructurales del procesador de mosaico.
T
4. 13 pA cuando el procesador ms los chips y memorias externas estn en el estado de parada, es decir,
obtencin y ejecucin han detenido y el reloj deshabilitado desde todas las unidades del sistema.
5. Slo 5 mA cuando el procesador est en estado de espera; es decir, la obtencin y la ejecucin han
detenido, pero el reloj no ha sido deshabilitado desde las unidades estructurales del procesador, tales
como temporizadores.

Los sistemas integrados

6. 10 mA cuando el procesador, las memorias y los chips extermil estn en estado de espera. Pizarra espera
ahora significa que la obtencin y ejecucin han tanto slopped: pero el reloj no ha sido deshabilitado
desde las dependencias estructurales del procesador y 10 unidades externas de mosaico y refrescante de
RAM dinmica tambin no ha parado.
Desactivar el modo de cach de otro mtodo es para desactivar el uso de ciertas unidades estructurales del
procesador, por ejemplo, cachs - cuando no es necesario y para mantener en estado desconectado las unidades
de estructura que no son necesarios en una determinada porcin del software de ejecucin, por ejemplo,
temporizadores o 10 unidades. El diseador de software debera permitir el uso de la cach de un procesador por
una instruccin adecuada, para obtener mayor rendimiento ofasection durante la ejecucin de un programa,
mientras que, simultneamente, la desactivacin de las secciones restantes a fin de reducir la disipacin de
energa y minimizar los requisitos de energa del sistema. Los diseadores de hardware debe seleccionar un
procesador con cach multiva unidades para que solamente la parte de una unidad de memoria cach se activa
que tiene los datos necesarios para ejecutar un subconjunto de instrucciones. Esto tambin reduce la disipacin
de energa.
Circuito neduce fallas en un circuito CMOS, disipa energa slo en el caso de cambio en la entrada. Por lo tanto,
problemas innecesarios y frecuentes cambios de entrada aumentar la disipacin de energa. Diseos de circuitos
VLSI tienen una forma nica de evitar la disipacin de energa. Diseo de un circuito es tal que elimina todos los
extrables glitch, eliminando as cualquier frecuentes cambios de entrada.
Modos de funcionamiento de voltaje Lnw otro es operar el sistema en los ms bajos niveles de voltaje en el estado
inactivo seleccionando el modo de apagado en ese estado.
F I) El procesador pasa a un estado de parada cuando recibe una instruccin 'Stop'. El estado de parada tambin
se produce en las siguientes condiciones: (i) en la desactivacin de la entradas de reloj del procesador, (ii) en
detener las funciones del circuito de reloj externo, (iii) en el procesador opera en el modo de apagado automtico.
Cuando en el estado de parada, el procesador di sconnects con los autobuses (autobuses convertido en tri-state).
El estado slop puede cambiar a un estado de ejecucin. La transicin u Mhe estado de ejecucin es porque un
usuario de interrumpir o becuuscof la aparicin peridica de wake-up interrupciones.
12) El procesador pasa a un estado de espera en recepcin (i) una instruccin para esperar, lo cual ralentiza o
desactiva el reloj entradas a algunas de las unidades del procesador incluido ALU, o (ii) cuando un circuito de reloj
externo se convierte en nor-funcional. Los temporizadores siguen operando en el estado de espera. Los cambios
de estado de espera para el funcionamiento de la pizarra cuando (i) una interrupcin, o (ii) un restablecimiento de
seales.
<3) disipacin de potencia se reduce normalmente por 2.5 (.tW por 100 kHz redujo la velocidad del reloj. Por
lo tanto, la reduccin de SOriO kHz a 100 kHz, reduce la disipacin de energa por aproximadamente 200 uW.
que es casi similar a cuando el reloj no es funcional. [Recuerde, el total de la potencia disipada (energa necesaria)
no podrn reducir. Esto es porque en la reduccin de la velocidad del reloj, los clculos se llevar un tiempo ms
largo en la parte inferior de la velocidad de reloj y la energa total requerida es igual a la disipacin de energa por
segundo multiplicado por el tiempo]. El 25 de alimentacin pW es tpicamente la disipacin residual necesaria
para operar los temporizadores y algunas otras unidades. Accionando el reloj a menor frecuencia o durante el modo
de baja potencia del procesador, las ventajas son las siguientes: (i) reduce la generacin de calor, (ii) la interferencia
de radiofrecuencia tambin entonces se reduce debido a la reduccin de la disipacin de energa dentro de las
puertas. [radiada RF(radiofrecuencia) depende de la potencia de la corriente de RF dentro de una puerta, la cual se
reduce debido al aumento de la resistencia del estado 'ON' entre el drenaje y el canal cuando se reduce la generacin
de calor.]
(4) Los sistemas de baja tensin estn construidas usando LVCMOS flow-tensin CMOS) Gates y LVTTL
TTL (baja tensin). El uso de 33 V, 2,5 V, 1,8 V y 1,5 V y 10 interfaces de sistemas distintos de la convencional
de 5 V Resultados de sistemas reduce considerablemente el consumo de energa y puede ser utilizado
ventajosamente en los siguientes casos,
(i) En porttiles o dispositivos de mano, como un c'dilulai'phone (en comparacin con 5 V, un circuito CMOS
disipacin de potencia se reduce por la mitad, ~(3.3/5)2, 3,3 V en funcionamiento. Esto tambin aumenta los
intervalos de tiempo necesarios para recargar la batera por un factor de dos), (ii) En un sistema de tamao reducido,

Sistemas operativos en tiempo real

385

Clever la programacin de tiempo real usando 'lamentacin' y 'Stop' instrucciones y desactivacin de ciertas
unidades, cuando no es necesario. Es un mtodo de ahorro de energa durante la ejecucin del programa.
Operaciones tambin se pueden realizar a menor velocidad de reloj cuando sea necesario, a fin de controlar la
disipacin de energa. Un buen diseo debe optimizar las necesidades contrapuestas de baja disipacin de
potencia y rapidez y eficacia en la ejecucin de los programas.

8.10

Los modelos de programacin de tareas de RTOS, latencia de interrupciones y tiempos de

respuesta de las tareas como parmetros de rendimiento


Los siguientes son los modelos de programacin comunes utilizados por los programadores.
1. Programacin cooperativa de tareas preparadas en una cola circular. Que est estrechamente relacionado
con la funcin de programacin de colas.
2. Programacin cooperativa con restricciones de precedencia.
3. Round Robin (cclica y el reparto del tiempo de programacin.
4. Preemptive scheduling.
5. Programacin utilizando 'plazo ms cercano primero' (FED) precedencia.
6. Tasa de programacin utilizando monotnico "mayor tasa de ocurrencia de eventos de primera prioridad.
7. Programacin de horarios fijos.
8. Programacin de peridicos, espordicas y tareas no peridicas.
9. Programacin avanzada de algoritmos utilizando las redes de Petri temporizadas probabilsticos
(estocsticos) o multiproceso en grficos. Estos son adecuados para multiprocesadores y para sistemas
distribuidos complejos.
Un RTOS comnmente ejecuta los cdigos de las mltiples tareas como programador preventiva basada en
la prioridad.

8.10.1 Modelo de planificacin cooperativa


En primer lugar considerar una planificacin en funcin del planificador de una cooperativa con un sencillo
ejemplo. Considere un sistema integrado - una lavadora automtica. El sistema puede ser dividido en mltiples
tareas. Tres primeras tareas son tarea . La tarea A2 y la tarea Ad en un conjunto de tareas , a A.V. La figura
8.2(a) muestra las tres primeras tareas de los mltiples procesos de software incrustado. El planificador se inicia
por primera vez la tarea A/ bucle de espera y espera a que el mensaje de la tarea / A /.
1. AI de tareas: La tarea es restablecer el sistema y encienda la alimentacin i f la puerta de la mquina
est cerrado y pulsar una vez el interruptor de alimentacin y liberado para iniciar el sistema. La tarea I
gemidos loon termina tras la deteccin de dos eventos - puerta cerrada (i) y (ii) interruptor de
alimentacin pulsado por el usuario. Al final. La tarea I establece un indicador start_F. que es un
mensaje 4/ para programar la tarea A2 para iniciar la ejecucin del cdigo. Este mensaje puede enviarse
utilizando la funcin semaphore OSSemPost (start_F) (Seccin 7.7.1).
2. Tarea 2: espera el planificador para el mensaje A/ para iniciar_F. La espera puede ser mediante la funcin
semaphore OSSemPend (start_F). Si start_F Publicar evento ocurre en la tarea I, la tarea 2 se inicia. Un
bit es ajustado en seal de agua en el tanque de lavado varias veces y comprueba el nivel de agua. Cuando
el nivel de agua es suficiente agua del pabelln-fase I _F. QUE ES UN MENSAJE A2 para programar la
tarea A3 para iniciar la ejecucin del cdigo. Este mensaje puede enviarse utilizando la funcin semaphore
OSSemPost (agua-etapa l_F).
3. Tarea 3: espera el planificador para el mensaje A2 para la etapa 1_F. La espera puede ser mediante la
funcin semaphore OSSemPend (agua-etapa l_F). Si el agua-fase I _F Publicar evento ocurre en la tarea
2, la tarea 3 espera finaliza y comienza. Un poco est configurado para detener la entrada de agua y otro
bit se establece para iniciar el motor del depsito de lavado. A continuacin, una bandera, motor-Fase
I_F, que es un mensaje .43. Al programar la siguiente tarea para iniciar la ejecucin del cdigo. Este
mensaje puede enviarse utilizando la funcin semaphore OSSemPost (motor-stagel_F).
Figura 8.2(b) Se muestra el modelo de programacin cooperativa. La figura 8.2(c) muestra la tarea contextos de programa en diversas
instancias. Tarea al contexto tiene un puntero para la tarea a/, ADDR_AI. Una tarea2 contexto tiene un puntero
para la tarea A2, A2_ADDR. Una tarea3 contexto tiene un puntero para la tarea A3, A3_ADDR.

1386

Los sistemas integrados

Yo
La
tarea A1
Power
En

La tarea A2
El agua
En

I LA
TAREA
A3 Ii
; el agua
Pare !

La tarea A1, A2, A3 Un (Etapa


Final)

0)

Contador de programa Contador


de
programa
En
En
ADDR-A1
ADDR-A2
Ejecutar
Ejecutar
Yo
La
la
Yo
tarea A1
tarea A2
----- "- Etapa Final tarea:* ----

Contador de
programa
En
ADDR-A2
Ejecutar
La
tarea A3

Programacin cclica por el


Kernel

(b)

Mensaje A1:
Inicio _F.

Mensaje A2: |
Mensaje A3:
Etapa 1 el agua _F, J Motor-Stagel _F,
Mensajes para el planificador

Contexto:
ADDR-f

Contexto:
ADDR-A2

Contexto:
ADDR-A3

Switches desde un contexto de


proceso
Tarea a otra tarea

(c)

:ig. 8.2 (a)

tres primeras tareas en una serie de tareas a} toAN en la cual el software incrustado es roto
por el ejemplo en el texto (b) (c) planificacin cclica mensajes desde el planificador de tareas
y contextos de programa en diversas instancias en lavadora tareas

Cooperativa rhe Programacin de tareas listas lista figura 8.3(a) muestra una en la que el programador cheduler inserta en un a lista las tareas
listas para su ejecucin secuencial en el modelo cooperativo. El contador del programa PC ambia cuando la CPU se inicia otro proceso de ejecucin.
Figura 8.3(h) muestra cmo los cambios en el PC svitch a otro contexto. El programador cambia el contexto de tal forma que ex iste la ejecucin
secuencial de diferentes pide, que el programador de llamadas desde la lista uno por uno en una cola circular.

Coope rati ve significa que cada tarea listo coopera para dejar un ejecutando un acabado. Ninguna de las tareas
hace un bloque nywhere atrevido el listo para terminar de estados. El servicio est en el orden en que la tarea se
inicia en interrumpir anil mezcladas en lista. Podemos decir que el parmetro establece la prioridad de las tareas
segn su posicin en la cola.
Peor la latencia es la misma para cada tarea. Es t1(llal. Es tiempo de la cola circular. Cuanto ms te cola, mayor
es la t,,,,,,. Si se est ejecutando una tarea, todas las dems tareas preparadas deben esperar. Para una tarea /-th,
deje que el tiempo de deteccin de ventilacin cuando un evento es puesta en una lista, dt, el tiempo de
conmutacin de una tarea a otra que stl nd el tiempo de ejecucin de una tarea sea etf. Entonces, si hay n tareas en
la lista, el peor caso de latencia con la programacin "hen incluyendo los tiempos de ejecucin de los ISRs ser:
T'peor = ((* + "i + et, (DT), +, + +, st et, )2 +...+ (dt, + , + et de st (dt +, + , + et de st )") + /,SR = timl + fISR.
Aqu el t[SR es la suma de todos los tiempos de ejecucin para el ISR. Recuerde(r>Tworsl siempre debe ser
inferior al plazo de te, Td para cualquiera de las tareas en la lista (ver seccin 4.6).

l Cooperativa listo la programacin de tareas mediante una lista ordenada por prioridad
onstraints Figura 8.4(a) muestra una cooperativa basada en la prioridad de la programacin de ISR y
ejecutado en el primer

Sistemas operativos en tiempo real

Lser (lop-Lado derecho: basado en prioridades y tareas preparadas en una lista ordenada ejecutados en la segunda
capa (abajo- lefi)-, respectivamente. Figura 8.4(b) muestra el interruptor de PC en distintos momentos, cuando el
programador llama al isr y las tareas correspondientes en una lista ordenada, uno por uno. El planificador utiliza
un parmetro de prioridad, taskPriority,
morir orden de lista de tareas
El primer planificador ejecuta slo la primera tarea en la lista ordenada, y el TL01.|, equivale al perodo
tomado por la primera tarea de la lista. Se elimina de la lista despus de la primera tarea se ejecuta y la siguiente
tarea se convierte en la primera. Las inserciones y eliminaciones para formar la lista ordenada slo se realizan al
Principales ()
comienzo de cada lista.
Yo ----------OS llamada j
()

Tarea 1

Contador de
programa i
asignaciones

OS()

' siguiente
Tarea 2.
Tarea N
- la tarea en la lista de tareas preparadas
------------------------------------------------(a) Tarea N

Tarea 2 H
Tarea 1

Tarea 3

Contexto
Cambiar

Tarea 1

WT
V/A

Tiempo

(b)

Fig. 8.3 [a) Un so programacin en la que el programador se inserta en una lista las tareas preparadas para una ejecucin
secuencial en un modo cooperativo (b) contador de programa asignaciones (switch) en diferentes
momentos, cuando la llama al programador de tareas uno por uno en la cola circular de la lista

En la primera capa, un ISR tiene un conjunto de cdigos que tienen que ser ejecutados de inmediato. Los ISRs
se ejecute en la primera capa (arriba a la derecha en la figura) de acuerdo a sus prioridades asignadas. Enva una
bandera(s) o token(s) y su parmetro de prioridad para que la tarea se inici (servicio). Esta tarea insens listo en la
lista de tareas. Hay programacin cooperativa y cada tarea listo coopera para dejar que la ejecuta un acabado.
Ninguna de las tareas hace un bloque desde el comienzo hasta el fin. Aqu, sin embargo, el prximo inicio de la
programacin es uno de los preparados las tareas que se ejecutan a la vez slo desde una prioridad-wise lista
ordenada. El orden es segn el orden de precedencia de las fuentes de interrupcin y tareas.
Pm deja de ser la prioridad de la tarea que tiene el tiempo mximo de ejecucin. Luego svorst latencias de
casos de la ms alta prioridad y baja prioridad tareas ahora varan desde:
{ ( d t j s t j + + + fjsr etj )pCln)

{(* + sti + etj)/(| + (DTI +_stj + etj)p2 +...+ (DTJ + st; + et )(""_| + (F/R; + .v( + et)("" + qSR).
Aqu, p, p2 ....... Pm_| y PM son las prioridades de las tareas en la lista ordenada. Asimismo, p > p2 > ... > pm.
Con
Este programador, es ms fcil, pero no garantizada, para cumplir con el requisito de que Twurs, debe ser <T(/para
cada tarea y fuente de interrupcin. El programador asigna el menor T(/ una tarea de mxima prioridad.

388:

Los sistemas integrados

Prioridad------------------ Baja

Alta

Los ISRs como por


prioridad --

(a)
Yo
Contador
programa
Asignacin
de i
A un
Proceso

de

Tarea 2.

Contexto
Cambiar

Tarea 1

1 ISR
2 ISR

2 ISR

% RTOS() I 6a.

Preferencia

_______

Yo RIOS () i

Yo" -

''
(t>)

Tiempo

ig. 8.4 (a) cooperativa de programacin basada en la prioridad de las rutinas de servicio de

interrupcin (ISR) ejecutado en la primera capa (parte superior derecha) y basado en


prioridades de tareas preparadas en una lista ordenada ejecutados en la segunda capa (abajo a
la izquierda) (b) El contador del programa de asignaciones en diferentes ocasiones en el
planificador llamadas al isr y las tareas correspondientes

Ejemplo 8,17
Considere el ejemplo ACVM (Seccin 1.10.2). Primero las monedas insertadas por el usuario son leer,
entonces el
Entrega de chocolate y, a continuacin, mostrar tareas muestra "gracias, visite de nuevo el mensaje.
Cada tarea
Coopera con los dems para finalizar. La prioridad de la tarea leyendo las monedas es alta, entonces
Entrega de chocolate y visualizacin de la lista ordenada de tareas preparadas.

8.10.2 Cclica y Round Robin con el reparto del tiempo de modelos de

Programacin
programacinde un programador cclico os puede dejar el sistema programar las distintas
tareas en tiempo real como sigue: supongamos que tenemos tres tareas que ocurren
peridicamente, la necesidad de su servicio surge despus peridicamente. Deje que los marcos
de tiempo asignado a la primera tarea, la tarea se ejecuta en /" r, + TCKlc, /+ 2 x rcydc, segunda
tarea...

Sistemas operativos en tiempo real

389

Fotogramas de i: i: + 7\,A.. i:+ 2


7 y la tercera tarea a f-, r + T.+2 ' Tcixk ..........Inicio de un marco de tiempo
es el
Punto de programacin lor la tarea siguiente en el ciclo. T k. es el ciclo para repetir el ciclo de ejecucin de tareas
Con el fin de 1,2 y 3 y equivale al comienzo de la tarea I marco de tiempo hasta el final de la tarea 3 fotograma.
Ttvdc es el periodo tras el cual
Cada plazo asignado la tarea a la que se repite.
Cada uno de los N las tareas de un programador cclico completa en su marco de tiempo asignado cuando el
plazo si/.e
Sobre la base de la fecha lmite. Un programador cclico es impulsada por el reloj y es til para las tareas peridicas.
Se repite (l
Programar decidi modificar los clculos basados en el perodo de apariciones de instancias de tareas. Cada tarea
tiene el
La misma prioridad para la ejecucin en modo cclico.

Ejemplo 8.18
(a) Considerar las seales de vdeo y audio alcanzando en los puertos en un sistema multimedia y procesado.
El
Los fotogramas de vdeo llegar a una tasa de 25 en 1 segundo. El programador cclica se utiliza en este caso
para procesar el vdeo
Y audio con Tcvdc = 40 ms o en mltiplos de 40 ms.
(b) Considere la orquesta tocando robots ejemplo (Seccin 1. 10.7). En primer lugar, el director
enva robot
Las notas musicales. Entonces, el juego de robots recibir y reconocer al director. En el prximo ciclo
El nuevo robot master enva las notas musicales. El programador cclica se utiliza en este caso para
enviar
Y recibir seales por cada robot.
Una planificacin cclica es muy eficiente para manejar tareas peridicas y cuando el nmero de tareas es
pequeo.

Round Robin el reparto del tiempo de programar una tarea no puede finalizar en su marco
de tiempo asignado.
Round robin Ready significa que cada tarea se ejecuta slo en una cola cclica durante un tiempo limitado slice
TuiaTsiitv= Ttvcic -r N donde N = nmero de tareas. Es un modelo usado swidcly en sistemas operativos tradicionales.
Es un round robin
Modelo hbrido del modelo impulsado por el reloj (p. ej. el modelo cclico) as como orientado a eventos (p.ej.
preemptive). Un
Sistema de tiempo real responde al evento dentro de un lmite de tiempo y dentro de un lmite de tiempo explcito.
Un programador para
El tiempo de las tareas delimitadas en el round robin modo puede ser entendido por un ejemplo sencillo.
Supongamos que despus de cada 20 ms. Hay un flujo de mensajes codificados llegando al puerto A de un
sistema incorporado
Luego se descifran y retransmitidas al puerto despus de codificar cada mensaje descifrado. Los mltiples
procesos
Consta de cinco tareas: Cl. C2. CJ. C4 y C5. Como se indica a continuacin:
1. Tarea Cl. verificar un mensaje a un puerto cada 20 ms.
2. La tarea C2: Un puerto de lectura y poner el mensaje en una cola de mensajes.
3. La tarea C3: descifrar el mensaje de la cola de mensajes.
4. La tarea C4: codificar el mensaje de la cola.

Los sistemas integrados

La
tarea C1 puedo
La tarea C2
comprobar j i leer un
mensaje en j | puerto y
Puerto | j sucesivos colocarlo en
I | 20 mS j
la cola

Tiempo
0-4 ms
4-0 ms
8-12 ms
12-16 ms
16-20 ms

Proceso
Contexto
Tarea Cl
La tarea C2
La tarea C3
La tarea C4
La tarea C5

La
tarea C3 de La tarea C4
scifrar los codifica los
mensajes de mensajes de
cola
cola
...

Tarea Cf a la tarea C5 (a)


Tarea Tarea guardada
Contexto
Cl

C2
C2.C3
C2.c3.C4

La tarea C5 i
transmitir por |
Escrito en j
Puerto B

1 ----Inc
1
C3- i r
1^
Yo > i n
1
Sir
1
En? I LIniciar/lnitiated [

C2 C3 C4

Tarea
C5

1 C~1". F 1
1 1 1I i
-J 1 1 I-i
? 1 1 ---- ---- 1 CZZ2
? I r"? Yo

Bloqueada despus de guardar el contexto l ? Yo


Ejecutar I ----- Yo
He acabado / ~i
El reparto del tiempo de programacin del
ncleo del sistema
operativo (>)

Fig. 8.5 (a) Las tareas a cl C5 round robin (b) programa de tareas en contextos de cinco casos en el round robin

(fraccin de tiempo) planificacin planificador para CL A C5 con Ts,ice = 4 ms


3. En la tercera instancia (tercera fila), el sistema operativo cambia el contexto a CJ en siguiente Timer
Interrupt, ocurrido alterar 8 ms Irom al comienzo de la tarea C7. La tarea est acabada, Cl C2 est
bloqueado y O' se est ejecutando. Contexto C2 se guarda en el brosmio pila C2 C2 porque est bloqueado
rancio.
4. En la cuarta instancia (cuarta fila), el sistema operativo cambia el contexto a C4 Timer Interrupt, ocurrida
despus de 12 ms desde el comienzo de la tarea Cl. Tarea Cl es terminado. Anil C2 o C4, estn bloqueados
y se est ejecutando. Contextos C2 y O estn en las tareas C2 y C3 de pilas, respectivamente.
5. En la quinta instancia (cuarta fila), el sistema operativo cambia el contexto a C5 en la siguiente interrupcin
del temporizador que ocurrieron despus de 16 ms desde el comienzo de la tarea Cl. Tarea Cl es
terminado. C2. Ci y C-/ estn bloqueados y o se est ejecutando. Contextos C2. S y C4 se encuentran en
las tareas Cl, pilas de Ci y C4, respectivamente.
6. En un temporizador interrumpir al final de 20 ms, el SO cambia el contexto de Cl. como tarea C5 est
terminado, slo los contextos C2, C4 y Ci permanece en la pila. C/ La tarea se ejecuta segn su
planificacin.
Cuando un /r-th tarea ha elevado el tiempo de ejecucin, et;), el peor caso de latencia de la prioridad ms baja
tarea puede exceder su lmite. Para superar este problema, es mejor que el SO define un menor intervalo de tiempo
para cada tarea. Cada preguntar tiene cdigos en un bucle infinito. Planificacin cclica con el reparto del tiempo
es sencillo y no hay insercin o eliminacin en la cola o lista. Figura 8.6(a) muestra un modelo de programacin
para el tiempo cclico-planificacin round robin en rodajas. Figura 8.6(b) Se muestra el PC en los cambios de
contexto en el que el programador llame a tareas en dos rebanadas de ime consecutivos. Cada tarea tiene asignado
un intervalo de tiempo mximo = ts|ice/N, donde ts|ice es el tiempo despus del cual el temporizador con el SO)
interrumpe e inicia un nuevo ciclo.
El So completa la ejecucin de todas las tareas preparadas en un ciclo dentro de un intervalo de tiempo, N x
tsMcc en este modo. M Tworsl ser la suma de los tiempos mximos para todas las tareas si no.n las tareas de

Sistemas operativos en tiempo real

391

RTOS ( )

! RTCSWT

Comenzar
ME RTCSWT
.'J
Mensaje listo
r*para l ; y ejecutar f

Cambio
contexto

Yo
En sucesivas
interrupciones
despus Tsllce

Yo

'next
Tarea 1

Cambiar a otro
proceso.

S J J ------------------------- ^ j
! *Next } |
Tarea 2.

de

Tarea N

Lista de tareas preparadas

(a)

-NxT.,,,
Slice "

Hola X Tvilla'
Programa
Counter
Asignar
A
Varios
Los
procesos

Tarea 2.
Tarea 1 (bloqueado)
bloqueado _________

Tarea N
bloquea
da

Perodo de espera para


Interrupcin RTCSWT

Tarea W
[Cdigos que fueron
anteriormente
bloqueado ejecutar
Bloqueado
ahora)
Tarea
1
bloqu
Tarea
eado
Tiempo
2
M.
bloque
Contexto WA
'(2A cambiar alado
nuevo proceso

(b)
Fig. 8.6 (a) El modelo de programacin de la cooperativa en rodajas de tiempo la programacin de las tareas (fa) El
contador de programa asignaciones en el planificador de tareas llamada en dos segmentos de tiempo
consecutivo. Cada ciclo dura un tiempo de tslice

Si N x l"El VIH es igual a la suma de los tiempos mximos de cada tarea y, a continuacin, cada tarea se
ejecuta una vez y finaliza en un ciclo. Cuando una tarea finaliza la ejecucin antes de que el tiempo mximo que
puede tomar, hay un perodo de espera entre los dos ciclos. El peor caso de latencia para cualquier tarea es N x
tN|kv. Una tarea puede peridicamente la necesidad de ejecucin. El plazo para la ejecucin repetida de una tarea
es un mltiplo entero de t"ikv para cada lilsk10 Tun slo una vez, la N x islire tambin debe ser menor que el
mayor factor comn de todos los perodos de la tarea. La estimacin de tiempo de respuesta para cada tarea es
fcil en el segmento de tiempo cclico de planificacin round robin. Considere un k-simo tarea. La tarea responde
dentro de su perodo de tareas y de la suma de los tiempos de mxima tomadas durante una de cal slice de la
Tarea I de la tarea (k-1). El tiempo de respuesta de la m-sima tarea al final de la lista es el mximo.
Un modelo alternativo de estrategia puede ser la descomposicin de una tarea que tarda un tiempo
anormalmente largo para ser ejecutado. La descomposicin en dos o cuatro o ms tareas. A continuacin una
serie de tareas (o impares) puede ejecutar tareas en una fraccin de tiempo, y otro conjunto de tareas (o las tareas
impares) en otro intervalo de tiempo. v'|;..c.
''ano;.,!cr estrategia alternativa puede ser la descomposicin de la tarea de tomar a largo plazo en una serie de
estados secuenciales o un nmero de nodo lugares y transiciones en el FSM. A continuacin, uno de sus miembros
o las transiciones se ejecuta en el primer ciclo, el siguiente estado en el segundo ciclo y as sucesivamente. Esta
tarea y reduce los tiempos de respuesta de las tareas pendientes que son ejecutados despus de un estado.

Los sistemas integrados

Ejemplo 8.19
Asumir una voz sobre IP [VoIP| router. Enruta los paquetes a destinos N DE N fuentes. Ella
Tiene N llamadas a la ruta. Cada uno de los N tareas es asignado un intervalo de tiempo y es ejecutada
por un cclicamente
Grupos'! El paquete desde el origen hasta su destino.

8.10.3 Modelo de planificacin preventiva


Los programadores de cooperativas (descrito en la seccin 8.10.1) programar tal que cada tarea listo coopera para
que la ejecuta un acabado. Sin embargo, una desventaja de la cooperativa scheduler es que un largo tiempo de
ejecucin de una h -tarea prioritaria realiza una tarea de alta prioridad i vail, al menos hasta que termina. Hay
una desventaja adicional si la cooperativa scheduler es cclico, pero sin previamente una l,HCC. Supongamos que
una interrupcin de servicio desde el i i: >i tarea se produce justo al comienzo de la segunda tarea. La primera tarea
service espera hasta que todos los dems ii-' . J o finalizar tareas en cola (Seccin 8.10.11.
Hie time-slicing scheduler es ms sencillo en cuanto a diseo y extremadamente valiosa en muchas aplicaciones
donde existe i i > ed para utilizar los recursos de los sistemas integrados secuencialmente, o ninguna de las tareas
tiene un plazo ms corto th.1.1 el tS|,w o t^. Planificador round robin (descrito en la seccin 8.10.2) tambin dan
tiempo apropiado para permitir cortes.: tarea terminar con el marco de tiempo asignado. Considere ahora el problema
con round robin. Quiero ser n las tareas tv. a la tarea 1 tarea N y deje que el orden de prioridad asignado para
interrumpir el servicio de I (mxima) a N 1: ..est). Supongamos que se produce una interrupcin de la cal-slicing programacin justo despus empieza el ciclo.
l,-..ns tarea me extraa por un gesto la oportunidad de correr desde el inicio hasta el final, tarea no tendr atendidas hasta el . .cle hasta tarea N acabados o hasta el perodo definido
tsllCL. caduca.

('an la tarea de mayor prioridad de preferencia una prioridad inferior mediante el bloqueo si: Si la respuesta es
s, entonces esto puede resolver el problema , : i.iige peor latencia para tareas de alta prioridad. El hardware sondeos
para determinar si una tarea o ISR con .! Me uglier prioridad que el actual necesita servicio al final de una instruccin
durante la ejecucin. Si s, entonces el h. -su prioridad ISR o tarea se ejecuta. Anlogamente, el RTO.S preemptive
planificador puede bloquear una tarea que est en ejecucin en mosaico: v; yo ail la instruccin por un mensaje a
la tarea y deje LIIC uno con la mayor prioridad que tome el control de la CPU.
Ahora considere un planificador preferente con un sencillo ejemplo. Supongamos que hay una secuencia
codificada ol tiiv'Sedades llegar a un puerto de un sistema integrado. A continuacin, descifra y re-lraiismits al
puerto B alter codificar cada mensaje descifrado (recordar ejemplo 4.1). La figura 8.7(a) muestra las tareas mltiples
tor pr. vosses de esta aplicacin. Cinco procesos arc ejecutado en cinco tareas. III. B2. BJ. Bi. 114 y 115. Ahora
considerar la planificacin preventiva por un programador funcin por otro ejemplo. Considere la posibilidad de un
sistema integrado para la lectura de un puerto a la entrada y descifrar los datos de entrada, la codificacin y enviarla
a otro puerto de salida B. El sistema puede ser dividido en mltiples tareas. Cinco tareas son tarea Bi. B2. B3.
B4 y 85. Figura 8.7(a) muestra las funciones asignadas a la tarea e ISR. El orden de prioridades es como sigue.
1. Tarea BI: Verificar la presencia de un mensaje en el puerto A.
2. La tarea B2: Leer el puerto A.
3. La tarea B3: descifrar el mensaje.
4. La tarea B4: codificar el mensaje.
5. La tarea B5: transmitir el mensaje codificado al puerto.
Figura 8.7(b) proporciona los smbolos que se utilizan para mostrar la planificacin preventiva por el kernel
scheduler acciones preventivas se muestra en la Figura 8.7(c). Una tarea de mayor prioridad y toma el control de
una tarea de menor prioridad. Una tarea de mayor prioridad los interruptores en el estado de ejecucin despus de
bloquear la tarea de baja prioridad. El contexto se guarda en el pre

Sistemas operativos en tiempo real

393

1. En la primera instancia (primera fila) El contexto es H3 y H3 se ejecuta la tarea.


2. En la segunda instancia (segunda fila) el contexto cambia a lil como contexto B3 guarda sobre
interrupciones en el puerto A y Bi es la tarea de mayor prioridad. Ahora, tarea 111 est en marcha la
pizarra y BJ es tarea en una pizarra bloqueados. Contexto B3 se encuentra en la tarea B3 la pila.
3. En la tercera instancia (tercera fila) el contexto cambia a B2 de interrupcin, que se produce nicamente
a partir de la tarea 131 acabados. Tarea BI est en un estado finalizado. B2 en un estado de ejecucin y
la tarea 83 est todava en el estado bloqueado. Contexto B3 est todava en la tarea B3 suelto.
4. En la cuarta instancia (cuarta fila) contexto 133 se recupera y el contexto cambia a B3. Tareas de BI y B2,
tanto de las prioridades superiores a B3. Terminado. Tareas de BI y B2 estn en estados finalizados. La
tarea B3 cambia de estado bloqueado a estado de ejecucin y B3 est ahora en un estado de ejecucin.
5. En la quinta instancia (quinta fila) el contexto cambia a B4. Las tareas BI. B2 y B3. todas las prioridades
superiores a B4, estn acabados. Tareas HI. B2 y B3, estn en el acabado de los estados. B4 est ahora en
un estado de ejecucin.
6. En la sexta instancia (sexta fila) el contexto cambia a B5. Las tareas BI. B2, B3 y B4, todas las prioridades
superiores a B5, estn acabados. Tareas BI. B2. B3 y B4, en el acabado de los estados. 85 est ahora en
un estado de ejecucin.
Tarea BJ
Espere
Interrumpir
En
Un puerto

Interrumpir I
Servicio ]
La rutina B2
Un puerto de lectura
Mensaje )

La tarea B3
Descifrar
Mensaje
Desde un
Cola

La
tarea B4 Cod
ificar
mensaje
nuevo

La tarea B5
La escritura
Mensaje
En
PortB

La tarea B1. B2. B3. B4. B5

(a)
Miembros en diferentes contextos una oferta
uno
Estado

Terminado
Estado
Estado

Bloqueado
-

Ejecutando

Proceso
Contexto

Tarea
BJ

(b)
Preemptive scheduling Por parte de las
RTO kernel
Tarea
Tarea Tarea
82 de ISR
B3
B4

B3
B1

!1
GZ:J

!. ___ Yo
CEZJ

Lj
Izti

B2

I ? Yo

B3
B4

CZJ
M

LZJ
CZU

B5

ISI

11

Bi

I=i

Ri

82

Nzi

I-i

II

B3

LxU

EEJ LZ!

Guardado
Contexto

1i

T ---- *i

LLEJ
Fl
Volve
EE3
r
11

Tarea
B5

.m

LED
LEEEi
LED

B3
63

T '
L--J

1-1

R? J

B5

EJ

B5

FT"!

B5

- ("$*

Fig. 8.7 (a) En primer lugar, cinco tareas BI a B5 (b) los smbolos utilizados por los Estados en una
planificacin preventiva
(c) El programa de tareas en contextos de las diversas instancias

394

Los sistemas integrados

7. En la sptima instancia (sptima fila) el contexto en pica a HI ns contexto 115 se guarda en interrumpir a
un puerto, y Bl es la tarea de mayor prioridad. Ahora, tarea HI se est ejecutando tareas rancios y H5 est
en un estado bloqueado. Contexto B5 se encuentra en la tarea B5 suelto.
8. En la octava instancia (octava fila) el contexto cambia a H2 en interrumpir, que slo se produce a partir de
la tarea HI acabados. Bl es una tarea en un estado finalizado. H2 en una pizarra y ejecutando la
tarea B5 est todava en el estado bloqueado. Contexto B5 est todava en la tarea B5 la pila.
9. En la ltima instancia (ltima fila) El contexto es BJ BJ y la tarea se est ejecutando. Las
tareas Bl y H2 estn en estado finalizado.
RTOS gestiona los procesos y proporciona para la preferencia de menor prioridad al proceso de mayor prioridad
Proceso. (tabla 8.11). Deje que la prioridad de la tarea I >> tarea task_2_3_4 > Tarea.... > Tarea N. Figura 8.8(a)
muestra
La planificacin preventiva de N tareas. La figura 8.8(a) tambin muestra el cambio de contexto cuando el proceso
pasa de una tarea para el RTOS y delantera el RTOS para una tarea. Figura 8.8(b) muestra las asignaciones de PC
en el programador llame a adelantarse a la tarea 2 cuando la prioridad de iask_l > > tarea task_2_3.
Cada tarea tiene un bucle infinito de inicio (estado idle) hasta finalizar (consulte la Tarea I. La tarea 2 y la
tarea N, tres casillas en la parte inferior de la figura). La ltima instruccin de la tarea 1 puntos a la
siguiente direccin puntiagudo, *siguiente. En el caso de bucle infinito. *Los puntos siguientes a la
misma tarea que empiezo. A diferencia de la cooperativa es un programador (Seccin 8.10.1), donde
se seala la prxima ejecucin de la tarea para el OS y OS ahora inicia ami ejecuta la siguiente tarea
de la lista.
Programador en una accin preventiva, hay un RTOS mensaje durante la ejecucin de la tarea 2 para anticiparse
a la tarea 2. La figura 8.8(a) muestra la secuencia de marcas (I). (2) y (3) y en la Figura 8.8(b) muestra el contador
del programa asignacin. Sus significados son los siguientes. En el paso I. La tarea 2 se ejecute. La tarea de mayor
prioridad 1 se inicia como sigue:
1. Tarea 2 cuadras y enva un mensaje a los RTOS (paso 2).
2. El RTOS ahora enva un mensaje a la Tarea I para ir a la desbloquearon rancios y ejecutar (paso 3).
Modificar tarea me bloquea RTOS hace la tarea 2 en el estado desbloqueado. Ahora se ejecuta la tarea 2. Cuando
la tarea 2 cuadras despus RTOS hace la tarea 3 en el estado desbloqueado. Tarea 3 funcionar ahora.
Cada diseo de tareas es como un programa independiente, en un bucle finito entre la tarea lee Place y la
mmica lask lugar. La tarea no volver al planificador, como una funcin de google docs. Dentro del bucle, las
acciones y las transiciones son segn los acontecimientos o Hags o tokens. El cambio de contexto puede ocurrir
tambin en una llamada de ISR.
Podemos definir el tiempo de espera para esperar a que el token o evento. Una ventaja de utilizar intervalos de
tiempo mientras disea lask coties es que el peor de los casos es posible estimacin de latencia. Cualquier tarea del
peor caso de latencia es la suma de la t|Sl< y los intervalos de todas las otras tareas de mayor prioridad. Otra ventaja
de utilizar el tiempo de espera es el reporte de errores y manipulacin por parte de las RTO. Tiempos de espera
proporcionar una manera de permitir que el RTOS ejecutar incluso las tareas de menor prioridad en los casos
necesarios.
Siempre que el evento tiene lugar de preferencia, una conmutacin de tareas (un lugar lask transicin a su lugar
de ejecucin) se hace necesaria, y el programador busca la tarea de mayor prioridad en esa instancia. Lask que slo
se pone en el lugar de ejecucin por el programador. La conmutacin se produce cuando un taskSwitchFlag es
enviado a la tarea de mayor prioridad y no a la tarea que se estaba ejecutando anteriormente.
Cmo puede reducir los intervalos de conmutacin del concurso'.'1 El concurso intervalos de conmutacin
arc reducido por la declaracin esttica de las variables, las variables estticas son variables y residente en la
memoria RAM no guarda en la pila en una llamada a una funcin. Cuando este es el caso, en una llamada el PC y
pocos debe guardar los registros son guardados. Conmutacin de tareas ahora no genera ahorro de pila adicional de
los gastos generales.
Las condiciones en las que un evento (token), el preemptionEvent. se genera para una tarea a someterse a la
transicin desde el lugar corriendo al lugar preparado son como sigue.
I. El evento tiene lugar de preferencia cuando se produce una interrupcin y justo antes del regreso de la

Sistemas operativos en tiempo real

395

Se establece. La tarea se somete a la transicin al lugar. ReadyTuskPhice. y slo se ejecuta cuando se le


pregunt por el planificador (enviando laikSwitchHag).
RTOS()

Programa
Counter
Asignacin
A
Varios
Proceso

Paso 1

Tarea.2

Contexto
HP! Cambiar a
Nuevo proceso
Tarea 3

Paso 4
Reanudacin
de la tarea 2.

Paso 3
Paso 2
Tarea.1
La preferencia
(bloqueado)
por parte de las
RTO
W/

^-------------

~
2L

Tarea.2

' Bloque ^

Paso 5

K" (bloqueado
)

Bloquear
Tiempo

(b)

Fig. 8.8 (a) preventiva de la programacin de las tareas (una tarea en ejecucin est adelantado y bloqueado para
permitir una tarea de mayor prioridad de ser ejecutado). Observe la secuencia marcas (1), (2) y (3). Para
los significados de estos se refieren al texto (b) contador de programa asignaciones en un programador
llame para obstaculizar la tarea
2. Prioridad de task_l > > tarea task_2_3
2. Cada RTO utiliza un reloj de sistema est marcada por una interrupcin SysClklntr. El evento tiene lugar
de preferencia cuando la interrupcin SysClklntr (reloj de tiempo real-software controlado por timer
interrupt) ocurre en el RTOS. En este caso RTOS toma el control del procesador y comprueba si se debe
permitir continuar la tarea actualmente en ejecucin o de adelantarnos a l para dar paso a la mayor
prioridad lask. Este evento hace otra tarea prioritaria superior listo para ejecutar, en el interruptor de la
bandera a la ltima.
3. El evento tiene lugar de preferencia cuando alguna llamada para el RTOS ocurre para entrar en la seccin
crtica o para enviar el mensaje de tarea (salidas) en el RTOS Y si otra tarea con prioridad ms alta debe
entonces ser
Mantenimiento (tomar el control de la CPU) (ahora la preferencia es antes de entrar en la seccin crtica).
.
.fs

Servicio de seccin crtica por un programador preventiva seccin crtica es una seccin en
una llamada del sistema (funcin del SO), donde no hay preferencia por cualquiera de ISR o
tareas ms prioritarias. Seccin crtica es tambin una seccin en lask para prevenir la
preferencia. Una funcin de bloqueo se ejecuta antes del comienzo de la seccin crtica y una
funcin de desbloqueo se ejecuta al salir de la seccin crtica.

(1
|396!

L .J

Los sistemas integrados

Supongamos que una tarea / est gimiendo lor una seccin crtica, recursos y tareas./ est usando un kernel el
bloqueo en una instancia
Porque de la llamada de sistema de bloqueo por otra tarea /'. Cuando la tarea se ejecuta J funcin unlock. La tarea
/ esperando
Lor bloqueo se ejecute.
Asumir que el tiempo de conmutacin de contexto es grande, por ejemplo. Yo ms. Mientras el recurso de
seccin crtica
Es ret|iiireil por la tarea lor duracin mucho ms corta y, a continuacin, bloqueo del kernel es un mecanismo
ineficaz para bloquear
Una seccin crtica. Un bloqueo de giro (Seccin 7.11.1) puede ser usado para proteger los recursos de la seccin
crtica
La siguiente.
\ssume esa tarea J se proporcionaron recursos a travs de la seccin crtica, bloqueo de giro S",

k. Asumir esa tarea


Yo las necesidades de recursos de la seccin crtica en instancia, t. El concepto de bloqueo de giro proporciona un
bucle de espera ocupados por / (en
.scenting lock ( ) esta funcin). / va en t, en un bucle de espera ocupados para el bloqueo de giro. sllli;k. Tan
pronto como J libera
!;; s^ (en ejecucin ( ) en funcin de desbloqueo /), /, obtiene el recurso crtico, sin tiempo para la spenling
Interruptor iritext.
Una implementacin de el bloqueo de giro en una tarea puede ser un intento. La tarea de alta prioridad trata el
bloqueo por un tiempo de espera
. . -p para el bloqueo por un tiempo definido tw;li[, de lo contrario, la tarea de ONU-bloques.
Otra aplicacin del bloqueo de giro puede estar tratando con dos o cuatro bucles de espera para el bloqueo con
sucesivos
, fomenta en el momento tll;iil a 0. Despus de que el grupo de ONU-bloques. Tras el desbloqueo, se
ejecutar la tarea crtica
.. !im; cdigo sin cambiar el contexto a diferencia de lo que ocurre cuando el mutex se utiliza para bloquear o
Muestra
desbloquear
una8.20
crtica
Oo.ti<i;..
RTOS kernels, por ejemplo. Windows CE, prever puntos de tanteo. Estos son la funcin del SO
\ ; >ck
alternativa
es ejecucin
adoptando
un mutex y soltando el bloqueo mutex (Secciones 7.7.2
"odex
entrefuncin
las secciones
crticas
de procesos
del kernel.
- i 7 .3 uCOS-II
Otra aplicacin
es mediante
una0S_ENTER_CRIT1CAL
instruccin que deshabilita
una interrupcin
concreta alpor
principio
RTOS
proporciona
la funcin
( I para
detener la preferencia
ningunade un
T aie seccin y habilita la interrupcin especficos al final de la seccin crtica.
liga!
ISR.
\ Layafuncin
que deshabilita
de bloqueo
la interrupcin.
puede ser utilizado
El RTOS
antes
proporciona
de una seccin
la funcin
crtica.OS_EXIT_crtico
Bloqueo de giro (es) para
efectiva
facilitar;
para la
La
preferencia
por una
seccin
crtica con
un tarea de alta prioridad o ISR, ya que permite interrumpir,
Las
(LtCOS-ll
proporciona
OSSehedUnlock
OSSchedLock
( )espera
y ( ) para
la tareasern
crtica-seccin
TIC
Periodo
de ejecucin
iion, porque
los neumticos
de bucle de
ocupados
liberados en un barrio
Para
ejecutar
seccin
de bloqueo
e impedir
la!
preferencia
por otraque
tarea.
marginal
delaLima.
Puede
utilizarse
un mutex
Seccin eriticul
debe ejecutarse de forma exclusiva.
Activacin y desactivacin de interrupciones puede usarse para prevenir otros ISR o proceso a ejecutar entre
Dos tareas pueden tener dos secciones que comparten los datos o recurso y slo una seccin debe ejecutar.
ellos.
Antes
Te seccin crtica, una tarea lamentos de semaphore mutex del planificador y libera el semforo mutex en
Le salga de la seccin crtica. El aprovisionamiento de la herencia de prioridad permite servicio de seccin crtica
por un prePlanificador liptive sin inversin de prioridad (Seccin 7.8.5).
El trabajo puede ser hecho'sin semforos y/o mutex para las secciones crticas? S, una estrategia es
Isabling y habilitando la preferencia. La desactivacin de un medio de preferencia slo deshabilitar la
conmutacin de tareas
Ags, o su paso a la tarea al uso compartido de datos y habilitar la conmutacin de tareas para cambiar y banderas

Sistemas operativos en tiempo real

39 7

Estrategia podra ser el uso de los recursos de bloqueo, semaphore mutex (Secciones 7.7.2 y 7.8.2) para spin-lock
(Seccin 7.11.11.

8.10.4

Modelo de servicio de la seccin crtica por un planificador preferente

La figura 8.9 muestra una red de Petri concepto modelo basado en los modelos y ayuda en el diseo de los cdigos
de una tarea que tiene una seccin crtica en su ejecucin. La figura muestra los lugares por los crculos y las
transiciones de los rectngulos. Los siguientes son algunos de los lugares y las transiciones.

SalidaBandera
para
cambiar de tarea =
restablecer

Bandera para
cambiar de tarea =
Ajuste y TASK_J
Evento de
preferencia

SalidaSolicitud Semaphare Flag =


restablecer indicador = Liberacin de
semforo y establecer el suceso.
Evento de tiempo

Bloque de salida
Task.J Indicador = Set

Bloqueado
, salida marca
Solicitud de
semforo =
Ajuste

Salida
/semforo tome
Indicador = Set I

Transicin ;
I (accin o clculo)

!
Tome
Semforo
Evento

Fig. 8.9 El modelo de red de Petri para la tarea con un planificador preferente y una seccin crtica donde toma un
semforo y sultelo en la seccin crtica sobre

1. Cada tarea se encuentra en el estado de inactividad (en idleTaskPlace) para comenzar, y un token para el
RTOS es ttiskSwiicliFUig = restablecer.
2. Considerar la tarea_J_Idie lugar, que actualmente tiene la mxima prioridad entre las tareas preparadas.
Cuando el RTOS crea task_J, el lugar task_JJdle sufre una transicin al estado Preparado, task_J_listo. El
RTOS inicia el ralent a transicin preparado por funcin executinga. task_J_create (). La transicin
desde el estado inactivo de la tarea se dispar como sigue. RTOS enva dos tokens, RTO_Crear evento
y la.skJSwitchFUig. La salida token de la transicin es taskSwitchFlag = true (se refieren a la esquina
superior izquierda , transicin en la figura).
3. Cuando a partir de la tarea J termina, el RTOS enva un RTOS_evento Delete (token) para la tarea, vuelve a task_J_Idle lugar y su
correspondiente laskJSwitcliFlag restablece (consulte la parte inferior izquierda de la figura de
transicin).

Los sistemas integrados

4. En task_J_Rcady place, el programador toma en cuenta el parmetro priority. II la tarea actual pasa a ser
de la mxima prioridad, el programador establece dos fichas. NisUSuiuhELis = true (enva un token)
y prioridad lushest Evento = true, para la transicin a la tarea en ejecucin ./. J_task_Running. El
Scheduler tambin se restablece y se enva la tarea Hags tokens, interruptor, para todas las dems tareas
que el arco de menor prioridad. Esto es debido a que el sistema slo tiene un IPC; proceso en un instante.
5. Desde el task_J_Running, la transicin a la tarea_J_Ready lugar estar cansado cuando el indicador de
finalizacin de la tarea se establece (consulte la parte inferior-medio transicin en la figura).
6. En task_J_Running, los cdigos de la tarea conmutada J son ejecutados (consultar la parte superior
derecha de la mayora de la transicin en la figura).
7. En la runningTaskPlace. la transicin para anticiparse ser despedido cuando RTOS enva un
token. SuspendEvent. Otro permitiendo token si presente, timejttuijevent tambin se activar la transicin.
Un entorno token para ambas situaciones es la liberacin de semaphore bandera, la cual debe ser ajustada.
Bandera de liberacin de semforo est establecida en el acabado de los cdigos de grupo J secciones
crticas. En la coccin, la siguiente tarea es_.l_Blocked. El bloqueo es en dos situaciones. Es una situacin
de preferencia. Esto ocurre cuando el suspem/evento ocurre en una llamada al runningTaskPlace pidiendo
el RTOS para suspender la ejecucin. Otra situacin es un momento de un SWT que asocia con la tarea
en ejecucin.
8. En un resumeEvent (un token de RTOS) la transicin a task_J_Running lugar ocurre (consulte el lado
derecho del centro de transicin, que est entre las tres transiciones que se muestran en la figura).
9. En el task_J_Rtnming lugar hay otra transicin que se activa de manera que la tarea ./ C volver a la
tarea_J_Running lugar cuando el RTOS enva un token. take_Semaphore_Event para pedir la tarea./ para
tener el semforo (el RTOS establece la solicitud de semforo, tome llag_Semaphore_Event: restablece la
bandera de liberacin de semforo; dirige la tarea ./ para ejecutarse sin interrupciones. No bloquear).
10. No puede haber ninguno o uno o varios secciones crticas. Durante la ejecucin de una seccin crtica, el
RTOS restablece la liberacin de semaphore Hag y establece el lago evento semaphore token.

8.10.5 Primera fecha ms temprana (FED) Tasa de precedencia y


planificadores monotnica (RMS) Modelos
Los planificadores controladas por eventos son necesarios para la programacin en tiempo real en caso de una serie
de tareas son grandes o en el caso de tareas espordicas o aperidicos. Es una tarea aperidica en q u el perodo
de aparicin no se conoce porque no puede ser conocido cuando un evento puede ocurrir. Por ejemplo, un caso de
recibir una llamada de telfono es aperidico evento. Tarea espordica tiene perodos de rfagas cuando la tarea se
producen eventos.
El plazo es el perodo en que debe finalizar una tarea. Una tarea, que tiene un plazo mnimo que es u tiene oco
tiempo restante para su finalizacin, debe ser programado en primer lugar. Este algoritmo del planificador es
conocida como Fed llgorithm.

EDF precedencia cuando una tarea est listo, su sern considerados en la programacin de un
punto. El planificador loes no asigne ninguna prioridad. Se computa el plazo a la izquierda en
la programacin de un punto. Punto de programacin es una instancia que el planificador
bloquea la ejecucin de la tarea y vuelve a calcular los plazos y ejecuta el algoritmo tnds FED
y la tarea que se va a ejecutar.
Un FED algoritmo tambin puede mantener la cola de prioridad basado en el clculo cuando inserta la nueva
tarea. El nmero de tareas Vhen se vuelve grande, la complejidad aumenta en computacin para insercin en la
cola. Fed Vnother algoritmo tambin puede mantener dos o ms colas de prioridad sobre la base de los plazos y la
relativa cheduler inserta la nueva tarea en una de las colas.

Sistemas operativos en tiempo real

Asignacin de prioridad en los algoritmos de planificacin, la mejor estrategia es una que se


basa en la precedencia del FED. Se hizo la precedencia ms alta para una tarea que
corresponde a una fuente de interrupcin, que se produce en la primera y en qu plazo
terminar pronto.
Cmo es la prioridad asignada en el caso de cargas de CPU variable para las diferentes tareas y variable FED?
Un mtodo es como sigue.
Deje t, ser la instancia cuando la tarea / Necesidades de preferencia la primera vez y t, la siguiente instancia.
Una tarea con .mnimo (t, - l > est insertada en la parte superior de la lista de prioridad de tareas. Se asigna la
mayor prioridad. La lista est ordenada segn dinmicamente (t -1).
Primero, hay una asignacin esttica o determinista de la prioridad en la programacin avanzada de algoritmos.
Esto significa en primer lugar hay RMS. Ms tarde en el planificador asigna dinmicamente y fija el tiempo de
retraso de nuevo, y le asigna la prioridad como por el FED. La necesidad de la asignacin dinmica surge debido a
las tareas espordicas y el entorno multiprocesador distribuidas o indeterminado.
El intercambio de recursos entre las tareas crea un problema. El algoritmo tiene que asegurarse de que ninguna
de ellas cumple el plazo.
Una tarea que ocurren a un ritmo mayor entonces deberia tener mayor prioridad en caso de tareas peridicas.
Supongamos que los datos estn siendo recibidos desde mltiples canales y algn canal recibir datos a un ritmo
ms rpido que los dems. Un programador utiliza rate monoumic algoritmo (RMA) para programar las tareas en
este caso.
Tasa Planificador monotnica RMS calcula las prioridades, p, de la tasa de ocurrencia de las tareas. La /'-lit de la
prioridad de las tareas, p( es proporliunal ut 11/t) w t( es el perodo de la ocurrencia del evento de tarea. RMA le
da una ventaja sobre la FED porque la mayora RTOSes tienen disposiciones para la asignacin de prioridad. Las
tareas de mayor prioridad se ejecutan siempre.
RMA desventaja es que no admite tareas espordicas y aperidicos. Cuando se produce una explosin, incluso
debido a la mayor tasa de llegada de las tareas espordicas en el perodo Hurst, no puede asignarse alta prioridad.
Las tareas espordicas y aperidica puede asignar las entradas por aperidico espordica y servidores en el
planificador. Detalle significa los periodos en los que el ev dichas pruebas a partir de ellos se ha programado.
RMA desventaja es que un golpe puede tener largos periodos de tiempo, pero puede ser muy crtico. Se
asignar prioridad mnima. Una solucin es dividir la tarea crtica en dos o ms tareas para elevar su prioridad
asignada por la RMA.

8.10.6 Fija (Esttica) Modelo de programacin en tiempo real


La Divisin de Planificacin de tiempo el mtodo descrito en la seccin S. 10.2 es un caso especial de 'fijo' de
programacin en tiempo real. Cada tarea tiene asignados horarios fijos para ejecutarse. Vamos all tareas m
y m reloj de tiempo real se interrumpe, el programador puede asignar a cada tarea un horario fijo. Cada tarea se
somete a un lugar preparado para ejecutar la transicin en lugar de los tiempos de espera del temporizador
correspondiente. Se supone que el SO difcil definir planificaciones en tiempo real para cada tarea.
Un programador es suiil a l utilizando un mtodo de planificacin de tiempo fijo cuando la planificacin es
esttico y determinista. El entorno de trabajo permanece inalterado cuando los procesos estn programadas sobre
tiie nica CPU del sistema. Los horarios son deterministas como el peor caso de latencias para todos (l interrumpe
y las tareas son predetcrminable. El planificador puede so as programar cada tarea en horarios fijos para que
ninguno pierda su plazo (esto es cuando el peor caso de latencia de cada tarea es menor despus de su fecha lmite
para su servicio). 'No hay plazo perder la ventaja slo es viable en situaciones deterministas. Tareas de codificacin
para los tiempos de ejecucin son tales que no varan en las diferentes entradas o condiciones diferentes.
Una vez definido programaciones permanecen estticos en un planificador de tiempo fijo. Horarios fijos puede
ser definido por uno de los tres mtodos.

Los sistemas integrados

1. Mtodo de recocido simulado. Aqu las distintas programaciones pueden ser fijos y el rendimiento
simulados. Ahora, horarios lor las tareas se incrementa gradualmente cambiando el timer interrupt sellings
(usando la correspondiente funcin del SO) til! El resultado de simulacin muestra que ninguno est
perdiendo su fecha lmite.
2. Mtodo heurstico. Aqu, del razonamiento o de la experiencia del pasado ayuda a definir y fijar los
horarios.
3. Modelo de programacin dinmico. Esto es como sigue: un programa que se est ejecutando en primer
lugar determina los horarios para cada tarea y luego el timer interrupt carga los ajustes de temporizador
de los resultados de dicho programa.
Si el programador no puede arreglar los horarios, es una situacin no determinista. Un ejemplo es una
situacin en la cual un mensaje para una tarea es esperado en una red, desde otro sistema y los perodos de mxima
y mnima para recibirlo son desconocidos. Otro ejemplo es cuando las entradas para una tarea se espera desde otro
sistema y los perodos mnimos y mximos cuando las entradas sern recibidos no son conocidos.
Un modelo de programacin dinmica es la siguiente: el diseo del software puede ser tal que las prioridades
se pueden reprogramar los tiempos fijos y redefinido cuando un mensaje o se ha recibido un mensaje de error
durante la ejecucin.

8.10.7 La latencia y plazos de mtrica de rendimiento en la programacin de


modelos para el peridico, espordicas y tareas aperidicos
Un RTOS deben responder de forma rpida y predecible para el evento. Debe tener un mnimo de latencia de
interrupciones y ltimo cambio de contexto la latencia.
Se han propuesto diferentes modelos para medir el rendimiento. Tres son las siguientes mtricas de
rendimiento.
1. Relacin de la suma de las latencias de interrupcin con respecto a la suma de los tiempos de ejecucin.
2. La carga de la CPU.
3. Peor caso de tiempo de ejecucin con respecto a la media de tiempo de ejecucin.
Las latencias de 'Interrumpir' en diversos modelos de tarea puede ser utilizada para la evaluacin de las mtricas
de rendimiento. Las latencias para diversos modelos de programacin de tareas se describen en los puntos 8.10.1 a
8.10.3. La carga de la CPU es otro wav a mirar el rendimiento. Se explica en la seccin 8.10.8. Peor caso de clculo
de rendimiento para una tarea espordica- se explica en la seccin 8.10.9. 'Consulte Sistemas de Tiempo Real" por
Jane W. S. Liu. Pearson Education. 2000. Para los detalles de muchos modelos disponibles para la evaluacin de
las actuaciones.

8.10.8 Carga de CPU como mtrica de rendimiento


Tarea de lmite da una carga a la CPU que es igual al tiempo de ejecucin de una tarea dividida por la tarea
perodo [Tarea significa perodo perodo asignado para una tarea.] Recall ln_AOut_B intranetwork de ejemplo 4.1.
Un puerto receptor espera otro personaje antes de 172 ps. Perodo de tareas es 172 (is. Si la ejecucin de la tarea
tambin es cal 172 ,nosotros. La carga de la CPU lor esta tarea es I (100%). El tiempo de ejecucin de una tarea
cuando se recibe un carcter debe ser inferior a 172 ps. La carga mxima de la CPU es I (menos de 100%).
La carga de la CPU o la carga del sistema en el caso de estimacin de la multitarea es como sigue. Supongamos
que hay m tareas. Para las mltiples tareas, la suma de las cargas de CPU para todas las tareas y ISR debe ser menor
I. El tiempo escolar y fija las definiciones de lmite de tiempo para las tareas de reducir la carga de CPU para las
tareas de mayor prioridad, de modo que incluso las tareas de menor prioridad se puede ejecutar antes de la
expiracin de los plazos. Lo docs significa cuando la suma de las cargas de CPU igual a 0,1 (10%)? Esto significa
que la CPU est subutilizada y gasta el 90% de su tiempo en modo de espera. Como los tiempos de ejecucin de
tareas y los plazos pueden variar, la carga de la CPU tambin puede variar.
Cuando una tarea, necesita ejecutar slo una vez, entonces es aperidico (One shot) en una aplicacin. La
programacin de las tareas que deben ejecutarse peridicamente wuth los perodos fijos pueden ser peridicas y
puede realizarse con una carga de CPU muy cerca de I. Un ejemplo de una tarea peridica es como sigue. Puede

Sistemas operativos en tiempo real

Cuando una tarea no puede ser programada en perodos fijos, su programacin se denomina espordico. Por
ejemplo, si una tarea se espera recibir insumos en tiempo variable de CAPS, la planificacin de la tarea es
espordica. Un ejemplo son los paquetes desde los routers en una red. La variable tiempo lagunas debe estar
dentro de los lmites definidos.
Un programador preventiva debe tener en cuenta tres tipos de tareas, peridicas y no peridicas (espordico)
por separado.
1. Una tarea aperidica necesita ser reemplazado slo una vez.
2. Una tarea peridica debe ser reemplazado despus de los plazos fijos y debe ser ejecutada antes de su
prxima prioridad es necesaria.
3. Una tarea espordica debe comprobarse para la preferencia despus de un periodo de tiempo mnimo de
su ocurrencia. Generalmente, la estrategia empleada por el diseador de software es mantener la carga de
la CPU entre (0.7 +_ 0,25) para tareas espordicas.

8.10.9 Modelo de tareas espordicas de mtrica de rendimiento


Consideremos los siguientes parmetros.
Tl0Ul| es la longitud total de los perodos en que se producen: tareas espordicas e es el total de tiempo de
ejecucin de una tarea: T.IV es la media de los perodos entre las apariciones espordicas; TMI" es el periodo
mnimo entre las apariciones espordicas.
Peor caso de mtrica de rendimiento del tiempo de ejecucin, p se calcula de la siguiente manera para el peor
caso de una tarea en un modelo.
P ~ P wui'sl - fe ^kual f ^uv ^ r
^ ^lllirdEs porque el promedio de la tasa de ocurrencia espordica de tarea / TMal (TAV) y el porcentaje mximo de
tarea espordica rfaga es T1ijUiI / T,,,,,,.
Existen varios modelos para definir una mtrica de rendimiento. Tres mtricas de rendimiento para la gestin
de la programacin por el RTO son: (i) las latencias de interrupcin con respecto a los tiempos de ejecucin,
la carga de la CPU (ii) y (iii) el peor de los casos el tiempo de ejecucin.

8.11 OS PROBLEMAS DE SEGURIDAD


Cuando un donante tiene que renunciar a varios pacientes, la proteccin de los pacientes desde cualquier
confusin en el medicamento se convierte en imperativo. Cuando un sistema operativo tiene que supervisar varios
procesos y su acceso a los recursos, la proteccin de memoria y recursos de cualquier escribe no autorizado en el
PCB o el recurso, o mezcla de accesos de uno a otro se convierte en imperativo. El so problema de seguridad es
una cuestin crtica.
Cada proceso determina si tiene un control de un recurso del sistema exclusivamente o si es aislado de los otros
procesos, o si comparte un recurso comn a un conjunto de procesos. Por ejemplo, un archivo o bloques de memoria
de un archivo tendr el control exclusivo sobre un proceso y un espacio de memoria libre tendr acceso a todos los
procesos. A continuacin, el sistema operativo se configura cuando un recurso est aislado de un proceso y un
recurso compartido con un conjunto definido de procesos.
El sistema operativo tambin debe tener la flexibilidad para cambiar esta configuracin w'hen, necesarios para
cumplir los requisitos de todos los procesos. Por ejemplo, un proceso tiene el control de 32 bloques de memoria en
una instancia y el SO configura el sistema en consecuencia. Ms tarde cuando los procesos son creados, esto puede
ser reconfigurado.
El SO debe proporcionar mecanismos de proteccin y aplicar un administrador de sistema(s) de seguridad definidos por
la poltica. Por ejemplo, un administrador del sistema puede definir el uso de los recursos a los usuarios
registrados y autorizados (y, por ende, sus procesos).

R ... )
| 402J

Los sistemas integrados

Whal acerca de cuestiones de una aplicacin cambiando el SO CONFIGURACINEL SO necesita un


mecanismo de proteccin
Por s mismo. Una aplicacin de software programador puede encontrar un agujero en el mecanismo de proteccin
y obtener un
El acceso no autorizado. As pues, la aplicacin de mecanismos de proteccin y aplicacin de la poltica de
seguridad
Por los recursos es una cuestin difcil antes de cualquier diseador de software del sistema operativo. El entorno
de red
complica
Tabla
8.13 importantes funciones de seguridad
Este problema.
La tabla 8.13 da las diferentes actividades para la ejecucin de importantes funciones de seguridad.

Funcin

Actividades

Compartir recursos controlados

Mecanismo de confinamiento
Poltica de seguridad
(estrategia).
Mecanismo Aulhcntication

Mecanismo de autorizacin
Cifrado

El control de lectura y escritura de los recursos y los parmetros de los procesos


de usuario. Por ejemplo, algunos recursos escribir slo para un proceso y algunas
de slo lectura para un conjunto de procesos.
Mecanismo que restringe el intercambio de parmetros a un conjunto de
procesos.
Reglas para autorizar el acceso al sistema operativo, y el sistema de informacin.
Un ejemplo de poltica es un sistema de comunicacin de tener una poltica de la
comunicacin peer-to-peer (anterior al establecimiento de conexin de flujo de
paquetes de datos).
Mecanismo de autenticacin externa para el usuario y un mecanismo para evitar
que una aplicacin se ejecute a menos que el usuario est registrado y el
administrador del sistema ha autorizado (software) . Autenticacin interna para
el proceso, y el proceso no debera aparecer (suplantar) al igual que otros
procesos. Autenticacin de usuario puede ser difcil si el usuario difunde
contraseas u otros mtodos de autenticacin.
Usuario o proceso permitido mediante (l recursos de sistema como por la
poltica de seguridad.
Un demasiado! Para cambiar la informacin para hacerla inutilizable por
cualquier otro usuario o proceso sin la clave adecuada para su desciframiento.

Los problemas de seguridad del SO son consideraciones importantes. Proteccin de memoria y recursos de
cualquier escritura no autorizado en el PCB o el recurso, o mezcla de accesos de uno a otro, se convierte en un
imperativo para un mecanismo de proteccin y de seguridad del sistema operativo.

Resumen

Un ncleo es una unidad bsica de cualquier sistema operativo que incluye las funciones de asignacin
de memoria y de asignacin de memoria no autorizados, evitando aceess, tareas de programacin, IPC,
administracin de E/S, interrupciones mecanismo de tramitacin y los controladores de dispositivo y de
gestin. El sistema operativo tambin controles de E/S y los subsistemas de red. Un kernel del sistema
operativo tambin puede tener funciones de gestin de archivos y funciones para subsistemas de red (estas
funciones tambin pueden ser separados de los ncleos de SO en ciertos sistemas operativos).
Un RTOS tiene funciones de tiempo real para la programacin de tareas y control de latencia de
interrupcin. El RTOS utiliza tli'elimei?y los relojes del sistema. Sus funciones incluyen el tiempo de
asignacin y desasignacin para lograr la mejor utilizacin en presencia de restricciones a la distribucin
de tareas.
RTOS asncrona utiliza 10 funciones, de modo que las tareas no bloquee durante el IOs.

Sistemas operativos en tiempo real

403

RTOS utiliza ihc adelantando la programacin de manera ihat menor priorily tarea es obligado a bloquear por el
planificador para dejar un
Ejecutar tareas de mayor prioridad.
I En slicing ntcttns que cada tarea tiene asignado un segmento de tiempo que lanza lor bloquea y espera su turno en el
prximo ciclo. En algunos casos, otras estrategias de programacin, ejemplo de Tor, el cooiret'alive la programacin
de las mltiples tareas como por interrumpir secuencias, y cal se puede utilizar para cortar en rodajas.
Un RTOS tiene funciones para el manejo de interrupciones. Hay tres modos alternativos utilizados en la RTOSes para
responder a llamadas de origen de hardware las interrupciones. Un RTOS tiene funciones para registrar y deregistering
un controlador de dispositivo y tambin facilita el procesamiento simultneo de los mdulos, dispositivos isr y tareas.
Un RTOS tiene mutex bloqueo de giro y funciones para el manejo de la seccin crtica en la programacin de los casos
prioritarios. RTOS tambin puede proporcionar para fijar la programacin en tiempo real.
RTOS htts mecanismo de sincronizacin de las tareas con el PC y yo sincronizacin y predecible el comportamiento
en el sistema. Rto proporcionan funciones para IPC (seales, semforos, mutexes. colas, buzones, tubos y tomas). Hay
normalizacin (c.g.. POSIX I003.b) de la IPC RTOS y funciones.
Distribucin relativa de las diversas acciones de carcter preventivo scheduler nos ayuda a optimizar los tiempos de
proceso en una aplicacin desarrollada mediante un RTOS.
RTOS utiliza la tarea que se ejecuta en el espacio del kernel para permitir que el cdigo se ejecute en el modo de
supervisin y, por tanto, ejecutar rpido (debido a la ausencia de instrucciones para fugas de memoria y
comprobaciones de desbordamiento de la pila y el espacio del kernel comprobacin de proteccin) y reducir las
latencias de interrupcin.
RTOS utiliza asignacin de bloques de memoria fija con predecible y la asignacin de memoria de asignacin de tiempo.
OS problemas de seguridad son consideraciones importantes en un sistema y la proteccin de memoria y recursos o
PCB de tiny escribir es esencial no autorizado.

Palabras clave y sus definiciones


IOs programacin
asincrnica cooperativa
seccin crtica ejecutar

Programacin rahin cclica de


ronda
Planificacin en tiempo real fijo
hard real time system
Kernel

Bloquear

OS
Anticiparse al mecanismo de
proteccin de programacin

IOs en un proceso que no est bloqueado debido a 10.


Un quejo tarea permite ejecutar otra tarea hasta que finalice.
En spile de mayor prioridad, una seccin crtica est permitido ejecutar por un
programador
Con el semforo o spin-lock o funciones de bloqueo. La seccin crtica se usa
Para los recursos compartidos y los datos entre mltiples tareas.
Un algoritmo de planificacin de las tareas programadas en secuencia cclicamente
A partir de una lista de tareas preparadas. Una fraccin de tiempo se proporciona en
caso de ciclo de round robin.
Una estrategia de programacin en el que la cal para cada tarea es fijo.
Un sistema en el que no debe retrasar la tarea y pasa la fecha lmite, el sistema tiene
Las latencias de interrupcin mnima y bien definida de las limitaciones de tiempo
para cada tarea.
Unidad bsica de cualquier sistema operativo que incluye las funciones lor procesos,
memoria, tarea
Programacin, IPC. Gestin de dispositivos. 10s y las interrupciones y pueden incluir
Los sistemas de archivos y los subsistemas de red en determinados sistemas
operativos.
Una funcin para bloquear la disponibilidad de recursos para otras tareas al inicio de
Los cdigos de la seccin crtica.
Un sistema de funciones del ncleo bsico de los procesos y la gestin de la memoria,
archivo,
10. Dispositivo y funciones de gestin de red y muchas otras funciones.
Un algoritmo de planificacin en el que una tarea de alta prioridad es forzado
(adelantado)
Bloquear por el planificador io deje que una tarea de alta prioridad tun.
Un mecanismo a un SO para protegerlo contra accesos no autorizados a los recursos.

Los sistemas integrados

404

: una programacin en la que las tareas se asignan


prioridades de conformidad con su tasa
De suave
ocurrencias
la necesidad
sus servicios.
: OS
o durodepara
tareas endetiempo
real con la
programacin de tareas con restricciones de tiempo
real (plazos) con prioridad en la programacin,
control
de
latencia
de
interrupcin,
la
sincronizacin
tareas con IPCs,
sincronizacin
Round Robin
Un algoritmo de de
planificacin
en el yque
se programan
de teido y predecible el comportamiento del
las
tareas asignadas a cada uno de ellos una fraccin
sistema.
de
tiempo
yen
ejecutar
cclica
en secuencia.
Un
sistema
el que en
la forma
mayora
no todas
las tareas
Safi-cal sistema real
cumplen con las limitaciones de tiempo y no te
pierdas
de plazo y Miss
ser de
manejado
Una implementacin
de elpuede
bloqueo
giro encon
unacierto
tarea
Bloqueo de giro
retraso.
puede ser un intento. La tarea intenta el bloqueo
por un bucle de espera para la S|ock durante un
tiempo definido
tWili,;
de lo contrario,
tarea de
: tambin
se denomina
programacin
round larobin.
Un
El reparto del tiempo
la
onu de de
bloques
para la sl(K;k.
algoritmo
planificacin
en el que cada tarea tiene
programando
asignado
intervalo de tiempo tras el cual se
El prximounciclo.
bloquea y espera su turno en la
: una funcin para liberar el bloqueo al final de la
T 'niock
seccin crtica.

Tasa de
programacin
monotonia
RTOS

Preguntas de repaso
Qu debe el objetivo de un SO'?
. Enumerar las capas entre las aplicaciones y el hardware.
. Wliv realiza una funcin del SO proporcionan dos modos: modo usuario y
.

modo supervisor"!
. Enumerar las funciones del kernel. Cules pueden ser las funciones
fuera del ncleo (Kernel)''.
. Explicar los trminos descriptor del proceso y el bloque de control de
proceso (PCB). Cules son las analogas en
UnPCB YTCB?
. Cuando se utiliza un mensaje y cuando se hace una llamada al sistema
para buscar el acceso a los recursos del sistema'.
. Proceso o tarea creacin y gestin son las funciones ms importantes
10.del kernel. Por qu'.
. Una estrategia es que las tareas se crean en el inicio y la creacin
y eliminacin de tareas posteriormente es evitada . Por qu debera
Se apruebe'.
. La asignacin de memoria y gestin son las funciones ms importantes
del kernel. Por qu'. Cmo memoria docs
Asignacin difieren en el RTOS Y OS? Qu es el bloqueo de memoria?
Enumerar las ventajas y desventajas de las asignaciones de bloque fijo
y dinmico por el SO.
11. El ncleo controla el acceso de los recursos del sistema. CPU MEMORIA.
10 subsistemas y dispositivos.
Por qu Es
Ella
Necesita?
Explicar el manejo de la seccin crtica con semforos y los bloqueos
de giro.
12. Cul es la importancia de la gestin de dispositivos en un sistema
operativo de un sistema incorporado?
13. Dar ejemplos de 10 subsistemas. Explicar el uso de IOs asincrnica.

Sistemas operativos en tiempo real

405

20. Arco Whai los casos en los que la cal-slice ayuda de programacin'.
21. Lista ihree formas en las cuales un RTOS maneja los ISRs en un entorno

multitarea. Cul es la ventaja de dos o tres niveles de manejo de las


interrupciones? Explicar 1ST.
22. Cmo docs un evento ocurra de preferencia?
23. Sistema de tiempo real las mtricas de rendimiento son rendimiento,
las latencias de interrupcin, el plazo promedio de los tiempos de
respuesta y se pierde. Explicar la importancia de cada una de estas
mtricas.
24. Por qu debe estimar peor latencia?
25. Explicar las aplicaciones de simulacin mtodo de recocido.
26. Qu debe la poltica de seguridad del sistema operativo?
27. Cul es el mecanismo de proteccin para el sistema operativo?
28. OS problemas de seguridad son consideraciones importantes. Proteccin
de memoria y recursos de cualquier escritura no autorizado en PCB o
recurso o mezcla de accesos de uno a otro se convierte en un imperativo
para un mecanismo de proteccin y de seguridad del sistema operativo.
Explicar cada una de estas consideraciones.
29. Qu significa el RTOS jerrquica?
30. Cmo se realiza la asignacin de prioridad de las tareas? Cmo se
utiliza el algoritmo de asignacin de la prioridad en la programacin
dinmica?
31. Lista de las mejores estrategias para la sincronizacin entre las
Ejercicios
tareas y los
ISRS. de prctica
32. Qu es la planificacin de un programa dyanmic?
33. Dar dos ejemplos en el que el programador puede arreglar los horarios
34. y no hay una situacin delerministie
35. cmo estimar C'pl' de carga en un sistema multitarea tareas
36. espordicas de manipulacin?
37. Cuando utilizas CPL> cargar para la mtrica de rendimiento de un sistema
en tiempo real'.
38. Dar un tabic mostrando las diferencias entre los sistemas operativos
tradicionales y el RTOS.
39. Mostrar cmo las funciones de temporizador se puede utilizar: (i) para
reducir el nivel de luz en un telfono mvil con el brillo mximo (iil
40. Para apagar la pantalla LCD en un telfono mvil despus de 15 segundos
41. desde el momento en que se encienden.
42. Mostrar cmo se puede utilizar los buzones entre la pantalla y otras
tareas. Que uno debe usted prefiere, uso de
43. Semforo como se muestra en el ejemplo o el uso del buzn.
44. Considere la posibilidad de un telfono mvil cum dispositivo PDA y
45. mirar en el men principal. Explicar cmo los eventos de tocar el
46. Pantalla en diferentes puntos de la pantalla son manejados por un RTOS
47. utilizando p.vo nivel de manipulacin de ISR.
48. Dar un tahle ihree mostrando las diferencias entre los mtodos de
manipulacin
de ISR en el RTOS.
49. Mostrar
la usi de semforos para sincronizar las tareas como tareas programadas en una cooperativa
50. Mostrar el uso de 15 puntos para los principios del diseo basado en
preemptive RTOS.
el RTOS, tomando el ejemplo de ACVM.
Las
tareas
carcter
preventivo
RTOS.
Mostrar
el uso dede
semforos
funciones
temporizador
para en
sincronizar
tareas Instituto
como round
S pluma.
"F robin
La prioridad
de la ylista
dedeasignaciones
ACVM las
tareas.
Tecnologa UBRARV
en
rodajas deel
tiempo
Mostrar
usoprogramado
de 15 puntos para los principios del
diseo
basado
- TANGALORE OSS 546. en
el RTOS, tomando el ejemplo de la cmara digital.
2 9 3 '1
: -/'cmara.
ONU-n
Dar prioridad en las asignaciones de tareas de la
Show' el uso de 15 puntos para los principios del diseo basado en el
RTOS, tomando el ejemplo de dispositivo de telefona mvil.

Funcionamiento en tiempo real


La programacin del sistema-I:
MicroC/OS-ll y VxWorks

N
E

C
U
n

T
C

Hemos aprendido los siguientes puntos importantes


relacionados
Para los sistemas operativos tradicionales y RTOS.
Proceso es que la unidad computacional que un SO
Horarios y de solicitud, ya sea por la llamada de
sistema o
Mediante paso de mensajes, el sistema operativo
permite el proceso utilice el
Recursos: CPU, memoria, subsistemas de baja, flashSistema de ficheros en memoria, subsistemas y
dispositivo de red
Los controladores. Proceso tambin significa 'tarea'
en una multitarea
Modelo de los procesos y los medios en un "thread"
Modelo de subprocesos mltiples de los procesos,
tanto
Controlado por el SO. Un proceso puede consistir
tambin en
Varios subprocesos, los cuales comparten un proceso
comn
Estructura.
" Sistema estructura consta del software de aplicacin,
Api de software adicional en el sistema de la

Un

Las prioridades en la ejecucin de cdigos son en primer lugar el ISR,


entonces ISTs y luego las roscas de los procesos.
Las funciones bsicas (servicios) del sistema operativo son la gestin
de procesos (tambin significa rosca o de administracin de tareas de
gestin) desde su creacin hasta su eliminacin, procesando las
solicitudes de recursos, la gestin de memoria de asignacin y
desasignacin, programacin de procesos, subsistemas de
procesamiento y man10, la gestin del archivo, 10, dispositivos y
controladores de dispositivos y funciones para permitir el
intercambio de recursos y datos.
Manejo de interrupciones y la programacin de tareas por parte de
las RTO.
RTOS tiene las funciones bsicas del sistema operativo, adems de
funciones de tiempo real para la programacin de tareas y control de
latencia de interrupcin. RTOS utiliza los temporizadores y relojes de
sistema, el tiempo de asignacin y desasignacin para lograr la mejor
utilizacin del tiempo de la CPU bajo las limitaciones de distribucin
de las tareas.
RTOS proporciona una distribucin predecible el comportamiento del
sistema (en la mayora de los casos) y una previsible de sincronizacin
de tareas utilizando las prioridades alloc
" sincronizacin entre procesos durante el procesamiento concurrente de
las tareas se lleva a cabo mediante seales, semforos, colas, buzones,
tubos, zcalos, RPC, temporizador y eventos.
Estrategias bsicas para la programacin de las mltiples tareas estn
adelantndose, round robin el segmento de tiempo y la programacin
cooperativa. El RTOS estrategia bsica es preemptive scheduling.
Principios bsicos de diseo utilizando el RTOS y los puntos ms
importantes que son atendidos durante la codificacin para la
sincronizacin entre los procesos (ISR, funciones, tareas y funciones
Los del
objetivos
de cualquier software incorporado, y por ende de RTOS,
programador).
perfeccin y exactitud, ^el lector debe tener ahora se dieron cuenta de
que hay una gran cantidad de funciones implicadas en la programacin
de tiempo real. El objetivo de este captulo es explicar a fondo los dos
RTOSes populares que se utilizan para programar y ofrecer funciones
del sistema operativo, que reducen significativamente el tiempo necesario
para disear un sistema integrado.

V
*

Un

K
Yo

K
Q

Vamos a aprender el barbecho en este captulo.


(i) Funciones bsicas y tipos de RTOSes.
(ii) RTOS llCOS-ll (referido como mucos mal el texto) a travs de 20 Ejemplos Ejemplos 9. / a 9,20. Qu argumentos se pasan y qu valores son devueltos para
cada funcin MUCOS ser explicado. Aprender el uso de funciones en la
MUCOS, es importante para el lector, incluso si otro RTOS se utiliza
posteriormente. Esto ayudar enormemente en la comprensin de la avanzada,
sofisticada RTOSes incorporado posteriormente.
Yo Hi) VxWorks de Wind River Systems43 tambin es un RTOS para sofisticados
sistemas integrados. Tiene potente herramienta de apoyo. Las caractersticas de
VxWorks se explican por siete Ejemplos - Ejemplos 9.21 a 9.27. Diferencias
entre el VxWorks semforos, buzones y colas con respecto a ese ofMUCOS
quedar claro.
Captulo IU describir el OSEK, Windows CE y Linux en tiempo real (RTLinux).

9.1
0

C
<X
0
V
5

Funciones bsicas Y TIPOS DE RTOSes

Un complejo multitarea Embedded System Design requiere lo siguiente:


1. Entorno de desarrollo integrado
2. Funciones de tareas integradas en C o C++ incrustado
3. Reloj de tiempo real basado en temporizadores de hardware y software
4. Scheduler
5. Los controladores de dispositivo y device manager
6. Funciones para el IPCs utilizando las seales, pabelln de eventos, grupo de
funciones de manejo de semforos y funciones de las colas, buzones, tubo y
zcalos.
7. Funciones adicionales, por ejemplo, TCP/IP o USB o Bluetooths o WiFi o
lrDA y GUIs.
8. Funciones de gestin de errores y excepciones.
9. Las pruebas y la depuracin del sistema de software para probar RTOS as
como desarrollado aplicaciones integradas.
La figura 9.1(a) muestra las funciones bsicas espera desde el kernel de un RTOS.
El RTOS's tienen las siguientes caractersticas en general.
1. Las funciones del ncleo bsico y planificacin: anticipatoria o preventiva plus
time slicing.
2. Definiciones de prioridades para las tareas y 1ST.
3. La caracterstica de herencia de prioridad con la opcin de prioridad de funcin
de techo.
4. Lmite de nmero de tareas.
5. La sincronizacin de las tareas y funciones de la IPC.
6. Compuesto de IDE, editor de Platform Builder, interfaz grfica de usuario y
software de grficos, compilador, depuracin y herramientas de soporte de host
de destino.
7. Herramienta de creacin de imgenes de dispositivos y controladores de
dispositivo.

Ti

Sistema operativo de tiempo real programacin-!: MicroC/OS-ll y VxWorks

Funciones bsicas
en un RTOS
Yo
Kernel
(Programador)

|
Servicio
Y EL
SISTEMA
Reloj
Funciones

OS Iniciar
Y empezar
Funcin

N
Dispositivo
Conductor,
Red
Pila
Enviar y
Recibir
Funciones

Tiempo y
Error
Retraso
Manejo
Funciones
Funciones
Y
Watchdog
Temporizad
ores
1
I~J R
!
1
Crear consulta conseguir poner

1 ! ' ISR y 1st


Tarea
Memory
Estado
Funciones Funciones
Cambiar
Funciones

IHU
Funciones

Yo ----- R r i ------------------ 1 -------R - Yo


Seal o semforo Buzn cola tubular de excepcin RPC

(a)
Yo tengo algunas
opciones para un RTO

Propio
RTOS
Para
Pequea
Escala
Embedded
Sistema

!|
PCOS Linux-ll
2.6X
RTOS
Funciones
O
RT Linux

VxWorks

: i ; i Windows Symbian QNX VRTX PalmOS


CE,
Windows
Mobile

Fig. 9.1 (a) funciones bsicas espera desde el kernel de un RTOS (b) opciones comunes disponibles para seleccionar un
sistema operativo en tiempo real (RTOS)

S. Soporte para el reloj, tiempo y funciones de temporizador, POSIX, 10s asincrnica, asignacin y
desasignacin de memoria, sistemas de archivos del sistema. Sistemas hash, nmero de procesadores,
TCP/IP, red inalmbrica los protocolos de bus de la anJ, entorno de desarrollo con Java y
componentizution (mdulos reutilizables para diferentes funciones), lo cual conduce a las pequeas
dimensiones de tamao tsmall RTOS cdigos colocados en la imagen de la ROM).
9. Soporte para varias arquitecturas de procesador.
La seccin 9.1.1 da el host destino y auto-host los enfoques para el desarrollo de una aplicacin. La seccin
9.1.2 proporciona los tipos de RTOSes.

9.1.1 Y Target-Based host, y el desarrollo de enfoques basados en Self-Host


Un sistema en tiempo real o no real enfoque de desarrollo de aplicaciones de cal es el host objetivo enfoque. Una
mquina host (ordenador), por ejemplo, un ordenador utiliza un sistema operativo de propsito general,
porejemplo, Windows o Unix para el desarrollo de un sistema. El equipo de destino se conecta mediante un
protocolo de red, por ejemplo, TCP/IP durante la fase de desarrollo. Los pases desarrollados y los cdigos de
destino funciones RTOS conectar primero un objetivo. El destino con cdigos de descarga finalmente se desconecta y
contiene un pequeo espacio de RTOS. Por ejemplo, el destino no descarga la mquina host residente, compilador compilador
cruzado, editor de programas, simulacin y depuracin de programas y soporte de MMU.

Los sistemas integrados

El auto-enfoque de desarrollo host es que el mismo sistema con pleno RTOS es utilizado para el desarrollo
en el que se ejecuta la aplicacin. Esto tambin no requiere la compilacin cruzada. Cuando estn listos, los
cdigos de aplicacin el RTOS cdigos de funcin y aplicacin de cdigos de descarga de arco en el ROM ot el
destino bottl'd.

9.1.2 Tipos de RTOSes


Algunas de las opciones para la seleccin de un RTOS se muestran en la Figura 9.1(h). Los siguientes tipos de
RTOSes arc.

In-House desarrollado RTO en casa RTOS tiene los cdigos escritos, para la necesidad especfica y,
aplicacin o producto y personaliza las necesidades de diseo de la casa. Generalmente un pequeo nivel de
desarrollador de aplicaciones utiliza el RTOS en casa o una gran empresa de investigacin y desarrollo utiliza los
cdigos construidos por el grupo de ingenieros e integradores de sistemas.

Amplia base RTOS comerciales disponibles de amplia base RTOS comercial paquete ofrece las siguientes
ventajas.
1. Proporciona una ventaja de disponibilidad de desactivar el auto completamente probado y depurado
RTOS funciones.
2. Proporciona varias herramientas de desarrollo. Herramientas de desarrollo consisten en herramientas para
el cdigo fuente, la simulacin de ingeniera, pruebas y depuracin estn tambin disponibles con el
RTOS paquete. Cuando se disea una misin crtica la aplicacin en tiempo real, la falta de capacidad de
manejo de error apropiado o un RTOS apropiado o una herramienta de prueba y depuracin se produce
una prdida de datos. Incluso la prdida de hardware puede ser causado.
3. Soporte para muchas arquitecturas de procesadores, por ejemplo. Brazo as como x86. MIPS y SuperH.
4. Apoyo para el desarrollo de GUI en el sistema.
5. Soporte para muchos dispositivos, grficos, protocolos de conectividad de red y sistemas de archivos.
6. Apoyo a la optimizacin del software del dispositivo (DSO). Es un concepto recientemente disponibles
en un tew RTOSes.
7. Proporciona funciones de gestin de errores y excepcional, que puede ser portado directamente como
estos son ya bien probado por miles de usuarios.
8. No slo simplifica enormemente el proceso de codificacin para un desarrollador, sino que tambin
contribuye a crear un producto rpido: el sida en la construccin robusta y bug-free software de
simulacin y pruebas rigurosas antes de localizar los cdigos en el hardware.
9. Ahorra gran cantidad de tiempo de desarrollo para RTOS herramientas y documentacin de la casa.
Ahorro de tiempo se traduce en poco tiempo en el mercado un producto nuevo e innovador.
10. Ahorra costes de mantenimiento.
11. Ahorra costes de mantenimiento de los ingenieros de la casa.

Fines generales OS con RTOS Embedded Linux o Windows XP es el SO de propsito general. Son
notcomponentized. Huella (el cdigo que sale como la imagen de la ROM) no es reductible. Las tareas no son
asignables prioridades. Ellos ofrecen potentes interfaces grficas de usuario, interfaces multimedia ricos y tienen
bajo costo.
El sistema operativo de propsito general puede utilizarse en combinacin con el RTOS funciones. Por
ejemplo. ,TTX
RTLimtx es un ncleo en tiempo real sobre el kernel de Linux. Otro ejemplo es 'Windows XP
Embedded" para la arquitectura x86.

9.2

RTOS jiCOS-li

Especial atencin RTOS especial atencin RTOS se utiliza con procesadores especficos como brazo o 8051
Una
popular
RTOS para
el desarrollo
del sistema
integrado
el SOP-II.
Para
uso no comercial, RTOS pCOS-II
o DSP.
Por ejemplo,
OSEK
para automviles
o Symbian
OSespara
telfonos
mviles.
tambin es un freeware. Jean J. Labrosse diseado en 1992 y hoy en da el SOP-II est bien desarrollado por

Sistema operativo de tiempo real programacin-1: MicroC/OS-ll y VxWorks

Un gran nmero de aplicaciones. Es disponible desde Micrium (www.micriam.com). Su nombre uCOS-II se


deriva de Micro-Controller Sistema Operativo. Tambin es conocido popularmente como mucos o MicroCOS o
UCOS. {Nota: se pronuncia como MUCOS MU-C-OS)
MUCOS Micrium describe como portable. ROMable, escalable, preemptive, en tiempo real y el kernel
multitarea. MUCOS ha sido usada en ms de miles de aplicaciones, incluidas las de automocin, avinica,
consumerelectronics, dispositivos mdicos, militares, aeroespaciales y de redes, sistemas en un chip y el
desarrollo. MUCOS tiene un cdigo elegante y se dice que ofrecen la mejor relacin rendimiento/de alta calidad.
Su cdigo fuente ha sido certificada por el Departamento de Defensa de EE.UU. para su uso en sistemas de
avinica y en aplicaciones mdicas.
Tiene un componente de software precerlifiable sistemas crticos para la seguridad, incluido el sistema de
avinica ADO-I78B y Eurocae ED-12B, mdicos FDA 5io(k) e IEC 61058 estndares para el transporte y los
sistemas nucleares, respectivamente.
Utilizando este RTOS tiene otra ventaja. Tiene plena disponibilidad de cdigo fuente y ha sido elegantemente
y muy bien documentado en el libro por su diseador (consulte las referencias de libros impresos en el apndice
2).
MUCOS cdigos estn en C y algunos mdulos especficos de la CPU estn en la asamblea. Su cdigo de
puertos en muchos procesadores que se utilizan comnmente en el diseo de sistemas integrados. MUCOS es
kernel en tiempo real, con el apoyo adicional de la siguiente manera.
1. PC/BuildingBlocks [un sistema incorporado bloques de construccin (componentes de software) para
perifricos de hardware, por ejemplo, reloj (pC/CLK) apd (PC/LCD LCD)|.
2. UC/FL (incrustado un cargador memoria de carne).
3. |iC/FS (incorporado un sistema de ficheros en memoria).
4. PC/GUI (interfaz grfica de usuario incrustado de la plataforma).
5. UC/sonda (una herramienta de monitorizacin en tiempo real).
6. PC/TCP-IP (incrustada una pila TCP/IP).
7. UC/CAN (Controller area network incrustado un bus).
8. UC/MOD (incrustado un modbus).
d. UC/dispositivo USB y uC/host USB dispositivos USB incorporado (Framework).

Los archivos fuente MUCOS plus tiene 10.000 lneas de cdigos. Hay dos tipos de archivos de origen.
Archivo de encabezado principal incluye los comandos del preprocesador #include' para todos los ficheros de
ambos tipos. Ii se conoce como 'incluye.li'. Cada archivo de C tiene el comando. #includeTNCLUDES.H'.
1. Archivos de origen dependiente del procesador: dos archivos de encabezado en el mster son las
siguientes: (i) os_cpu.h es el archivo de encabezado de las definiciones del procesador, (ii) la creacin
del archivo de configuracin del kernel es os_clg.h. Adems, dos archivos C son para ISR y RTOS ahora
son ms finos, especificando os_tick.c y el procesador C cdigos os_cpu_c.c. Los cdigos para el
conjunto de funciones de conmutacin de tareas estn en os__cpu_a.s 12 (para 68HCI2
microcontrolador). Para otros microcontroladores, hay archivos de cdigo del conjunto similar, por
ejemplo, SO_cpu_a.s51 para 8051.
2. Archivos fuente independiente del procesador: dos archivos. MUCOS encabezado (incluido en master)
y los archivos de C, son ucos II.H_y_ucos ii.c. Los archivos para el RTOS core, ahora son ms finos y
archivos de tareas son os_core.c, SO_hora.c y os_task.c. La memoria de particionado, semforo, cola y
cdigos de buzn se encuentran en os_mem.c, os_sem.c, os_q.c y os_mbox.c, respectivamente.
Una caracterstica de MUCOS es la adaptacin de una convencin de nomenclatura sistemtica que permite el
diseo de programas con una clara comprensin del cdigo. La convencin de nomenclatura es como sigue.
A. OS u OS_ (OS seguida de subrayado) cuando se usa como prefijo indica que la funcin o variable es un
sistema operativo M UCOS-funcin o variable. Por ejemplo, OSTaskCreate MUCOS () es una funcin
que crea una tarea. OS_NO_ERR MUCOS es una macro que devuelve true en caso de que no se informa
de ningn error de una funcin del sistema operativo. OS_MAX_tareas es una constante para el mximo
nmero de tareas de la aplicacin de usuario (el usuario en las definiciones del preprocesador define esta
constante).

Los sistemas integrados

b. MUCOS es escalable OS. (Slo las funciones que se os necessai v forman parte de la aplicacin de cdigos, lo
que reduce los requisitos de memoria). Las funciones necesarias para el mantenimiento de la tarea. IPC y as sucesivamente
deben estar definidos en un archivo de configuracin incluida en los cdigos de usuario (consulte)
Ejemplo 9.7 Pasos 1 y 2 para una comprensin clara de la configuracin configuracin de cdigos i.
c. Para la multitarea. MUCOS emplea un planificador preferente (Seccin 8.10.3).
d. MUCOS tiene funciones de nivel de sistema. Estos son para el RTOS iniciacin y start, tictacs de reloj
del sistema (interrupciones) iniciacin y el ISR entrar y salir de las funciones. La seccin 9.2.1 (cuadro
9.1) para la seccin crtica, MUCOS tiene (i) interrumpe la activacin y desactivacin de funciones que
se ejecutarn en entrar y salir de la seccin, respectivamente, (ii) las funciones de bloqueo y desbloqueo
en el ncleo que se ejecutan al entrar y salir de la seccin, respectivamente, y que no deshabilitar las
interrupciones, y (iii) las funciones de semforo, que puede ser utilizado como mutex funciones que
ejecutar al entrar y salir de la seccin crtica, respectivamente, y que inhabilita la preferencia por una tarea
de mayor prioridad, que es compartir ese mutex en su seccin crtica (consulte las secciones 7.7.2 y
8.10.3).
e. MUCOS tiene funciones de servicio de tarea (por ejemplo, tareas de creacin, funcionamiento, suspensin
y reanudacin) (Tabla 9.2).
f. MUCOS tiene funciones de retraso de tarea (Tabla 9.3).
g. MUCOS tiene funciones de asignacin de memoria para la creacin y la particin en bloques, obteniendo
un bloque, poniendo en el bloque y consulta durante la depuracin en un bloque (Tabla 9.4).
l. MUCOS tiene funciones de IPC. Estas son segn las tablas 9.5. 9.6 y 9.7, respectivamente. MUCOS
IPCs utilice los semforos, colas y buzones (apartados 7.11 a 7.11).
i. MUCOS semaphore tiene funciones que son utilizables como banderas de sealizacin del evento,
recurso compartido adquirir llaves o conteo semforos (Seccin 7.7.5). La tabla 9.5 enumera estos.
J. MUCOS tiene evento bandera-funciones de grupo (seccin 8.4), donde tambin espera una tarea para
todos o alguno de los Hags ajuste en caso de ati grupos bandera. Estas funciones permiten a eventos de
sealizacin o y operacin para VVAIT_AN Y O WAIT_toda operacin en nmero de Hags establecido
en el grupo. Un ISR o tarea puede establecer una bruja en el grupo. Un ISR no est permitido esperar
(pendiente) para el evento(s).
K. MUCOS tiene funciones de buzn. MUCOS un puntero tiene un mensaje de buzn por buzn. (Seccin
7.13). Puede haber cualquier nmero de mensajes como mucos enva slo el puntero (la direccin de
inicio ol'lhe) mensaje en el buzn. La tabla 9.6 enumera estos.
l. MUCOS tiene las funciones de la cola. Una cola permite una matriz de punteros de mensaje para cada
una de las colas de los mensajes que recupere en el mtodo FIFO (Seccin 7.12). Puede haber cualquier
nmero de mensajes en la cola de un elemento como mucos slo enva la direccin del mensaje en cola.
La tabla 9.7 enumera estos.
Los siguientes siete subsecciones 9.2.1 a 9.2.7 describen las mencionadas funciones MUCOS. Para las
funciones de cada una de las siete tablas, 9.1 a 9.7, estas secciones se dan detalles de los valores devueltos por
las funciones .id MUCOS los detalles de los parmetros (argumentos) que se pasan por valor o por referencia a
una funcin de MUCOS.

9.2.1 Funciones del sistema


En primer lugar debemos utilizar la funcin Iniciar para iniciar el uso de MUCOS y, a continuacin, utilice la
funcin de arranque para arrancar la MUCOS las funciones multitarea. Estas funciones son OSInit y OSS tart,
respectivamente. La funcin arranque se usa despus de la creacin de al menos una tarea, que puede ser llamado
Start_task_o la primera tarea. (Como lo veremos ms adelante, una estrategia es que el resto de las tareas se crean
en el primer_Ta.sk).
Recordar la seccin 8.3. En primer lugar debemos iniciar el systein.-timepisdock garrapatas (e interrupciones).
MUCOS RTOS tiene funciones del sistema que se debe ejecutar al entrar y salir del ISR.
Recordar la Tabla 7.1 y en la seccin 7.8.2. MUCOS RTOS tiene funciones de sistema de activacin y

Sistema operativo en tiempo real-I: Programacin MicroC/OS-ll y VxWorks

413

Tabla 9.1 Sistema operativo de tiempo real (RTOS) y reloj del sistema Iniciar, comenzar, interrumpir
Rutina de Servicio (ISR) y las funciones de interrupcin Disable-Enable1
I'rouume htnelions

Cuando esta funcin del SO


sacrificadas'/
Void void OSSlan OSInil
En l (principio antes de OSStan ( )
Alterar el OSInil ( ) y lask-funciones oreate
(voidl (voidI void OSTicklnit
En la primera (pregunte a la funcin, que se ejecuta slo una vez, esta funcin es inicializar el
sistema
(void).
Las garrapatas del temporizador (reloj del sistema interrumpe)
Void OSImEmer (void).
Void O.SInfExit (void).

Recordar la Seccin 8.7 I. justo despus del inicio de la ISR OSImExil cdigos debe llamar justo
antes
El retorno del ISR.2 (entrar y salir de las funciones forman una pareja)

Crtica de

Tras la OSInlEnter ( ) es llamado justo despus del inicio de la ISR y cdigos OSlntExit es
Llamado justo antes del regreso de la ISR (entrar y salir de las funciones forman una pareja)1.

OS_ENTER_OS_EXIT_cr

Macro para deshabilitar las interrupciones (Seccin 7.8.2)

tica OSSchcdUnlockJ

Macro para habilitar las interrupciones (entrar y salir de las funciones forman una pareja en la

OSSchcdLock1 ( ) ( )

seccin crtica)
Para bloquear la programacin dela tarea (secciones 7.11.1 y 8.10.3)

programacin
de las tareas
Las funciones de esta tabla Desbloquear
no se pasan la
argumentos
y devuelve
void. (las secciones 7.11 y 8.10.3)
Hay una variable global. OSIniNesling. Se incrementa despus de entrar la llamada. (no deberamos incrementar
directamente aunque puede llevarse a cabo. Deje que se incrementa automticamente en entrar a un ISR).
"variable global OSIniNesling decrecimientos en llamadas de salida. (no debemos disminuir directamente [hough se puede
hacer. Dejarlo reducir automticamente al salir de una BOM ISRt.
J
OSScliedlock t permite ejecutar cualquier tarea de seccin crtica sin preferencia si ejecuta hefore entrar en la seccin
crtica y ejecuta OSScbedlin'nck ( i despus del corte! Colmillo de la seccin crtica. Tarea con howev er l interrumpida por
un ISR. Bloqueo del planificador de tareas no deben suspenderse antes de desbloquear.
1
2

I. Iniciar ilte so antes de calarse el uso dela RTOS funciones. Funcin void OSInil [void) se utiliza lo iniciar
el sistema operativo. Su uso es obligatorio antes de llamar a cualquier sistema operativo funciones de
kernel. II no devuelve ningn parmetro. Un uso ejemplar como una funcin es la siguiente:

Ejemplo 9.1.
I. /* Comenzar a ejecutar los cdigos */
Void main (void) (2. /* Iniciar MUCOS RTOS de dejarnos utilizar el kernel del sistema operativo funciones */
OSInil ( );
'
3. /* Cree (Definir la Identidad, demora el tamao y otros parmetros de la TCB tareas utilizando RTOS
Funciones *!
4.

/* Crear semaphore, cola y buzones, etc. */

414

Los sistemas integrados

2. A partir del uso de R TOS las funciones multitarea y ejecutar las tareas de la funcin raid OSStart (void) se
utiliza para iniciar el sistema operativo inicia y crea tareas. Su uso es obligatorio para el ncleo del sistema
operativo multitarea de operaciones. Devuelve ningn parmetro. Un uso ejemplar como una funcin es la
siguiente:

Ejemplo 9.2
1. /* Iniciar la ejecucin de los cdigos de los principales*/
Void main (void) {2. /* Iniciar MUCOS RTOS de dejarnos utilizar el kernel del sistema operativo funciones */
OSInit ();
3. /* crear tareas y la comunicacin entre procesos variables por definir su identidad, tamao de la pila y otros
parmetros de TCB. */
4. /* Inicio MUCOS RTOS para dejarnos usar RTOS control y ejecutar las tareas creadas y comunicacin entre
procesos. */
J
OSStart ( );
Jj
/* Un bucle while infinito sigue en cada tarea. Por lo que no es volver a la pgina principal ( ) desde
el IMF RTOS. */
1J
}/ * final de la funcin Main. */
3. A partir del uso del reloj del sistema RTOS. Funcin void OSTicklnit (void) se utiliza para iniciar el sistema
de reloj garrapatas y se interrumpe a intervalos regulares como por garrapatas_SO_PER_SEC la MUCOS
durante la configuracin predefinida. Su uso es obligatorio para el ncleo del sistema operativo multitarea
operaciones cuando las funciones de temporizacin para ser utilizado. Devuelve o pasa ningn parmetro.
Un uso ejemplar ser mostrado en los pasos 2 y 10 del Ejemplo 9.7.
4. Enviar mensaje a RTOS kernel para tomar el control en el inicio de una funcin de ISR. void OSIntEnter
(void) se utiliza en el comienzo de un ISR. Es para enviar un mensaje a RTOS kernel para tomar el control
(Seccin 8.7.1). Su uso es obligatorio para que el kernel del sistema operativo multitarea, controlar el
anidamiento de los ISRs en caso de apariciones de varias interrupciones de distintas prioridades. Devuelve
ningn parmetro. Un uso ejemplar como una funcin es la siguiente:

Ejemplo 9.3
I. /* Comenzar a ejecutar los cdigos de un
ISR*/ ISR_A (){
2. /* Enviar mensaje a RTOS kernel para tomar el control de ISR_N de ISR de bucle anidado. Incremento
OSIntNesting, una variable global *1
OSIntEnter ( );
3. /* Los cdigos para el mantenimiento de la ISR llamando a una tarea. */

. .IK
5. Enviar un mensaje a RTOS kernel para salir del control al regreso de una funcin de ISR. void OSIntExit
(void) se utiliza justo antes del regreso de la ISR. Es para enviar un mensaje a RTOS kernel para salir del
bucle de control de anidamiento. Su uso es obligatorio para que el kernel del sistema operativo salga del
ISR del bucle anidado de la ISR. Devuelve ningn parmetro. Un uso ejemplar como una funcin es la
siguiente:

Sistema operativo de tiempo real programacin-!: MicroC/OS-ll y VxWorks

415

Ejemplo 9.4.
I. A 3. Como en el ejemplo 9.3

4. /* Enviar mensaje a RTOS kernel tor de salir del control de ISR_A del bucle anidado. Jj OSIntNesting
decremento, una variable global */
Mj
OSIntExit ( );
Ml
)/ * final de la funcin de ISR. */
Wm
6. Enviar un mensaje a RTOS kernel para tomar el control en el comienzo de una seccin crtica. Recordar
ejemplo 8.21 en la seccin 8.10.3. Una macro-funcin OS_ENTER_crtico es utilizada al comienzo de la
seccin crtica en una tarea o ISR. Es para enviar un mensaje a MUCOS kernel y deshabilitar las
interrupciones. Su uso es obligatorio para que el kernel del sistema operativo tome nota y deshabilitar las
interrupciones del sistema. Devuelve ningn parmetro. Un uso ejemplar como una funcin es la
siguiente.

Ejemplo 9.5
1. /* Comenzar a ejecutar los cdigos de una tarea
o un Router ISR*/ task_A () {
2. /* Los cdigos para el mantenimiento de la tarea. */
3. /* enviando un mensaje a RTOS kernel y deshabilitar las
interrupciones. */
OS_ENTER_crtico:
4. /' ejecuta los siguientes cdigos de seccin crtica. */
5. /* Los cdigos para salir del servicio*/

7. Enviar un mensaje a RTOS kernel jor dejar el control en el regreso de una seccin crtica de Macro.

Ejemplo 9.6
I. A 4. Como en el ejemplo 9.5

5. /* enviando un mensaje a RTOS kernel para salir del control de la seccin crtica y habilitando la
Las interrupciones. */
OS_EXlT_CRlTlCAL;
}/ * final de la funcin de ISR. */

416

Los sistemas integrados

8. Lockinf; OS scheduler. OSSchedlock ( ) desactiva la preferencia por un disco de mayor prioridad. Esta
funcin

Inhibe la preferencia por tareas de mayor prioridad, pero no inhibir la interrupcin. Si se produce una
interrupcin a continuacin

9. Permite el bloqueo de retorno de control de sistema operativo para esa tarea, que ejecuta esta funcin. El
control vuelve a
Despus de realizar cualquier tarea de IHE ISR complete.
OS scheduler. OSSchedUnlock desbloqueo ( ) permite la preferencia por tareas de mayor prioridad.
Permite
de os
a la tarea
de alta prioridad
despus deylasu
ejecucin
de OSSchedUnlock.
En caso de
9.2.2 Retorno
Servicio
demando
tareas
y funciones
de tiempo
ejemplar
usa
cualquier
MUCOSInterrumpir
funciones deocurridos
servicio despus
para las de
tareas
y el tiempo
son segnylatras
Tabla
9.2.de
Funciones
significa
ejecutar
OSSchedUnlock
el final
la ISR, elde
deservicio
mayor prioridad
las funciones
crearlisto
tarea,
suspender
reanudar, de
y el
ajuste de tiempo y tiempo en recuperar (obtener)
Tareapara
que est
se ejecutar
en ydevolucin
ISR.
funciones. Las funciones de tiempo establecer sintona y conseguir tiempo en trminos de la cantidad de pulsos
del reloj del sistema.
Las declaraciones de las variables y funciones de tareas asignaciones para el prototipo terminado en el
preprocesador c mtmands. Los pasos 1 y 2 del ejemplo 9.7 mostrar estos comandos de preprocesador. Los cdigos
en los pasos 1 y 2 cdigos se guardan en un archivo de configuracin, el cual est incluido en el cdigo fuente
antes de la compilacin. Estos pasos configurar MUCOS antes ellos son utilizados.
Veremos en los siguientes ejemplos que hay un bucle infinito en funcin de cada tarea. Esta es una forma
caracterstica de las tareas de codificacin lor preemptive scheduling. A partir de l (bucle infinito, cmo ser el
control de la CPU volver a MUCOS'." En otras palabras, cmo el cambio de contexto se producen en el sistema
operativo y cmo funciona el sistema operativo, a continuacin, activar el conmutador de tareas para una tarea de
alta prioridad''. El control de la CPU vuelve a MUCOS (o en cualquier otro programador preferente) tan pronto
como una de las siguientes situaciones.
1. Cualquier evento de interrupcin incluida la aparicin del IHE timer tick interrupt. Consulte Ejemplo
9.7. Paso 10 (hora fijada para la interrupcin cada 10 ms en el paso 2).
2. Actualmente sobre la suspensin de la ejecucin de la tarea llamando OSTaskSuspend como en el Ejemplo 9.8.
Paso 12.
J
,yo. Tan pronto como cualquier funcin del SO, por ejemplo, una funcin de temporizacin en la Tabla 9.3 o una
funcin pendiente de semforo
En la tabla 9.4 se llama, el programador cambia el contexto, anticipa y as pasa el control a otro j mayor prioridad
asignada tarea activando lask interruptor.
Cmo funciona el control de la CPU a un retorno adelantado tarea debido a un bucle infinito existentes en
adelantarse a j tambin tareas de mayor prioridad1. sta debe volver por una codificacin adecuada. Por ejemplo,
consulte el cdigo en el paso 12 en el Ejemplo 9.8. Aqu, el FirstTask es de prioridad 8 (la ms alta disponible para una
tarea de usuario). Se suspende desde ; el bucle en el paso 12.
(
I. Crear un byte sin signo lask. Funcin OSTaskCrcate (void (*tarea) ' taskPointer (void), void *pmdata.
J
OS_STK *taskPriority taskStackPoinlcr. unsigned byte) se explica como sigue.
J
Un planificador preferente anticipa una tarea de alta prioridad. Por lo tanto, es tarea de cada usuario al que se le
asigna un ; prioridad, que debe estar entre 8 y OS_MAX_Tareas - 9 (o 8 y OS_menor_PRIO - 8). OS
J
Reserva ocho mayores y ocho tareas de menor prioridad para sus propias funciones. Nmero total de tareas que M UCOS
!
Administra puede ser de hasta 64. Mucos de la prioridad de las tareas tambin es el identificador de la tarea. No hay
tarea iD-definiendo la funcin ; en mucos porque cada tarea tiene que tener asignada una prioridad distinta.
J
Si el nmero mximo de tareas de usuario es 8, entonces os_MAX_tareas es 24 (ocho de ellos de nivel de sistema
J
Yo
Tareas y 8 tareas del sistema de prioridad ms baja), la prioridad debe estar entre 8 y 15. El SO_menor_PRIQ
J
Se debe establecer en 23 por ocho tareas de usuario de prioridad entre 8 y 15 aos, porque MUCOS asignar prioridades

417 Yo

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

Yo

Tabla 9.2 Servicio y funciones de tiempo del sistema para las tareas
Prototipo de funciones

Cules son Cules son las Cuando es este sistema


los parmetros Parmetros
operativo (SO) Funcin
Pasados?
devueltos?
llamada?
PA

PA

Unsigned byte Cuisk OSTaskCreate (void) (void


*laskPointer). void *pmdata, OS_STK
*taskPriurity taskStackPointer, unsigned byte)
Bytes sin signo (unsigned byte OSTaskSuspend
laskPriority)
Bytes sin signo (unsigned byte OSTaskResume
taskPriority)
Void OSTimeSet (unsigned int count)

Unsigned int_OSTimeGet (void).

Debe llamar antes de


ejecutar una tarea
PB

PB

PC

PC

Llamado para reanudar una


tarea bloqueada

PD

Cada ooimf representa el


reloj del sistema. Cuando
la hora del sistema se va a
establecer es establecido
por un valor de conteo inicial

Ninguno

RF.

Ninguno

Llamado para bloquear una


tarea

Encontrar el recuento actual


de modo que la hora del
sistema es de lectura

Unsigned int significa una .12-bit entero sin signo. Abreviaturas utilizadas en las columnas 2 y 1 se explican en el texto.

OS_LOWF.ST_PRIO y OS_MAX_tareas arco constantes definidas por el usuario en cdigos de preprocesador


que se necesitan configurar die MUCOS tor para la aplicacin del usuario. Definicin de tareas de usuario 20
innecesariamente cuando, en realidad, 4 tareas son creados por el usuario deben evitarse porque ms
OS_MAX_Tareas significa innecesariamente la asignacin de espacio de memoria superior por el sistema para
las tareas de usuario.
Los parmetros de la tarea de pasar PA:
(a) I!taskPointer es un puntero a los cdigos de la tarea que se est creando.
(b) *pmdata es puntero para un mensaje opcional la referencia de datos pasan a la tarea. Si ninguno,
asignamos como NULL.
(c) * TaskStackPointer es un puntero a la pila de la tarea que se est creando.
(d) TaskPriority es la tarea prioritaria y debe estar dentro de 8 a 15. Si la macro_LO SO\VEST_PRiO
define la prioridad igual a 23.
Volviendo RA: La prioridad de cualquier tarea os_ L0WEST_PR10 es 23. Para el programa de aplicacin, la
prioridad de la tarea asignada debe estar dentro de 8 a 15. La funcin OSTaskCreate () devuelve los siguientes:
(i) OS_NO_ERR. Cuando la creacin sucede; (ii) 0S_PR10_existentes. Si el valor de la prioridad que pas ya
existe.
(iii) OS_prio_lNVALID, si el valor de la prioridad que pasa es ms que el SO_prio_menor;
(iv) OS_NO_More_TCB devuelve, cuando no hay ms memoria para el bloque de control de tareas est disponible.
Una tarea puede crear otras tareas, pero un ISR no es permitido crear una tarea. Un uso ejemplar est en la
creacin de una tarea, Taskl_connect, para una tarea de conexin. OSTaskCreate (Tarea!_Connect, void
(*) 0, (void *) *Taskl_ConnectStack [1001, 10)
Los parmetros de la tarea pasados como argumentos son como sigue.

(a) Tarea 1 _Connect, un puntero a los cdigos de Taskl_Connect para la tarea que se est creando.
(b) El puntero de un mensaje opcional la referencia de datos pasan a la tarea es nulo.

| 418

Los sistemas integrados

(c) * Tarea l_ConnectStack es un puntero a la pila de Tarea I _Connect y le es dado el tamao = 100
direcciones en la memoria.
(dl TaskPriority es la prioridad de las tareas asignadas a las 10. el ms alto pero dos que pueden ser asignados.
Se generar el error de los parmetros. OS_NO_ERR = true en caso de creacin de Taskl_Connect tarea se
realiza correctamente. OS_prio_EXISTE = TRUE, si la prioridad 8 de la tarea ya est creado y existe.
0S_PR10_INVAL1D = TRUE, si se pasa el parmetro de prioridad es mayor que os_menor_PRIO - 8.
OS_NO_More_TCB = falso, cuando est disponible para Taskl TCB_Connect (TCB definicin est dada en la
seccin 7.3).

Ejemplo 9.7
1. /* configurar mucos comandos del preprocesador para definir las tareas de distribucin y servicio OS funciona
como habilitado y sus constantes*/
OS #define_MAX_tareas 24 /* Deje el mximo nmero de tareas en la aplicacin de usuario 8. */
#define 0S_L0WEST_PR10 23 /* deje de menor prioridad en la tarea os asignarse prioridad = 23 para 8
tareas de aplicacin de usuario de prioridades entre 8 y 15. */
OS #define_TASK_CREATE_EN I/* permitir la inclusin de OSTaskCreate funcin () */
#define OSlTASK_DEL_ES 1/* permitir la inclusin de OSTaskDel funcin ( ) */
OS #define_TASK_SUSPEND_ES 1/* permitir la inclusin de OSTaskSuspend funcin () */
OS #define_TASK_RESUME_ES 1/* permitir la inclusin de OSTaskResume () funcin *1
/* configurar mucos comandos del preprocesador final */
2. /* Especifica todos los usuarios prototipo de tarea-funciones programadas por MUCOS */
/ * Recuerde: Esttico significa la asignacin de memoria permanente */
Static void FirstTask !StaskPointer (void);
Static void Taskl_Connect (void *taskPointer):
OS static_STK FirstTaskStack |FirstTask__StackSize|:
OS_static_ConnectStack STK Taskl !Taskl_connect_StackSize|:
/* definir una variable pblica del servicio de tareas y funciones de distribucin */
#dcfme OS_TASK_idle_STK_SIZE 100 /* permiten la asignacin de memoria para una tarea de estado
inactivo del tamao de pila 100*/
#define las garrapatas_SO_PER_SEC 100 / * Permita el nmero de garrapatas ser de 100 por segundo. El
reloj del sistema se interrumpe y, por lo tanto, marque cada 10 ms para actualizar la cuenta y transferir el
control a la MUCOS. */ #define FirsiTask_Priority 8 /* definir la primera tarea principal prioridad */
#define _FirstTask StackSizc 100/* definir la primera tarea en tamao de la pila principal */
#define la Tarea I_Connea_Priority 10 /* Definir Taskl_Connect prioridad */
//definir Taskl_connect_SiackSize 100 /* Definir Taskl_Connect stack size */

3. I* de los cdigos de la aplicacin se inicia desde la principal*/ void main (void) {


4. /* Iniciar Mucos de dejarnos utilizar el kernel del sistema operativo funciones */
OSlnit ( ) ;
5. I* crear la primera tarea que debe ejecutarse una vez antes que cualquier otro. Tarea crea definiendo su
identidad como FirstTask, tamao de la pila y otros parmetros de TCB. */

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

419

(FirstTask OSTaskCreate, void (*) 0. (void *) &Fii stTaskStack [ FirstTask_StackSizeJ, FirslTask_Priorityj;


/* En este ejemplo, FirstTask ser la creacin de otras tareas. Puede crear otras tareas principales y la
comunicacin entre procesos variables si estas tambin debe ejecutar al menos una vez tras la FirstTask. *i

6. /* Inicio MUCOS RTOS para dejarnos usar RTOS control y ejecutar las tareas creadas */
OSStart ( ): /* bucle while infinita hay en cada tarea. As que no hay ningn retorno a nmin desde el RTOS
OSStart function (). */
}/ *** final de la funcin Main ***/
7. /* Los cdigos de la aplicacin, en primer lugar, tarea que crea
en Main*/ static void *taskPointer FirstTask (void) {
8. /* Cree una tarea como en el paso 2, definido por la identidad de tarea Tarea I _Connect. tamao de la
pila y otros parmetros de TCB. */
OSTaskCreate (tarea! JConnect, nula (*) 0, (void *) &Taskl jConnectStack [Tarea! StackSize
jCortnect_], Tarea 1 _ConnectPriority j
9. /* Cree otras tareas y variables de comunicacin entre procesos. */

10. /* Iniciar temporizador garrapatas para utilizar el temporizador garrapatas ms tarde. *1


OSTicklnit ( ); /* para iniciar la funcin de reloj del sistema en el tiempo configurado en la configuracin
mucos comandos de preprocesador en el paso I */
11. Mientras que (I) {/* bucle infinito de FirstTask */

12. }; /* Fin bucle infinito *1


13. } /Final de FirstTask cdigos. */
La FirstTask es la principal y nica tarea creada en el paso 5. La primera tarea, se llama a una funcin de
temporizador para la iniciacin (paso 10). Esto es necesario debido a que el RTOS funciones de temporizador
son necesarios en la aplicacin. Una funcin de la tarea Tarea!jConnect crea cdigos en el paso 8. Todas las
dems tareas que se crean se comi las tareas usando la funcin OSTaskCreate privada dentro de la primera
funcin de la tarea.
14. /* Los cdigos para la
Taskl_Connect:!7 static void
Taskl_connect (*taskPointer) {
15. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
16. /* iniciar un bucle while infinito. */
Mientras que (1) {
17. /* Los cdigos para tarea l_Connect*/
.'
-FTS
18. /; /* final del bucle while*/
19. )/ * final de la funcin Taskl_Connect */

420:

Los sistemas integrados

2. Suspendinf; (bloqueo) de una tarea. Funcin de bytes sin signo (unsigned byte OSTaskSuspeiid
taskPriority)
Los parmetros de la tarea pasando PH: taskPriority es la tarea prioritaria y debe estar dentro de 8 a 15 lor 8
tareas de usuario.
Volviendo RB: La funcin OSTaskSuspeiid 0 devuelve los parmetros de error OS_NO_ERR cuando el
bloqueo se realiza correctamente. OS_prio_EN vlido, si el valor de la prioridad que pasa es de ms de 15 aos.
El SO_prio_menor valor constante. OS_TASK_SUSPEND_PRIO, si el valor de la prioridad que pa ssetl ya no
existe.
O.S_TASK_SUSPEND_idle, si intenta suspender una tarea inactiva que es ilegal.
Un uso ejemplar est bloqueando la tarea prioritaria LConnect = _Connccl Tarea I_Priorily es como
sigue: (Taskl OSTaskSuspend_connect_Prioriiy). La tarea de parmetro que se pasa como argumento es 6.
Recordar la Tarea I_C<mnect_ se asign prioridad 10 anteriormente en el paso 2 del Ejemplo 9.7. Los siguientes
parmetros de error w malos ser devuelto por esta funcin.
Ta) SO_NO_ERR = true, cuando el bloqueo se realiza correctamente.
(a) OS_prio_INVALID = falso, como 8 es una prioridad vlida y no es ms que os_prio_LOWEST.
(b) OS_prio_LOWEST = 23.
(c) OS_TASK_SUSPEND_PRIO = falso, como el valor de la prioridad que el pasado ya no existe.
(d) OS_TASK_SUSPEND_idle = false, al intentar suspender una tarea que no fue una tarea inactiva. MUCOS
ejecuta OSTaskldle tarea inactiva () cuando todas las tareas estn esperando el temporizador expire o para
Ejemplo
9.8e IPC semaphore.g".
un 1PC,
I n II./* Pasos cdigos como en el ejemplo 9.7 */
13 /* FirstTask suspender, como lo fue para iniciar el temporizador de garrapatas (interrupciones), creando
la aplicacin de usuario
Las tareas, y se ejecuta slo una vez */
(FirsiTusk OSTaskSuspeiid_Priority): /^suspender la primera tarea y el control de las RTO pasa a
Tareas en espera de ejecucin, por ejemplo, a la tarea! JConnect */.
) /* final del bucle while */
13.
) T final de cdigos FirstTask */
14 A los 19 aos. /* Pasos cdigos como en el ejemplo 9.7 */
3. Reanudar (habilitacin) de desbloqueo una ltima funcin bytes sin signo (unsigned byte OSTaskResume
TaskPriority) Reanuda una tarea suspendida.
Los parmetros de la tarea de pasar de PC: taskPriority es la tarea prioritaria de la tarea que se va a reanudar y
debe ser
Dentro de 8 a 15 cuando os_menor_PRIO es de 23 y el nmero de tareas de usuario = 8.
Volviendo PC: La funcin OSTaskResume ( ) devuelve el SO_NO_ERR cuando el bloqueo se realiza
correctamente.
OS. PRIO_INVALID, si el valor de la prioridad que pasa es de ms de 23, el SO_ L0WEST_pr!0 valor
constante.
OS_TASK_RESUME_PRIO, si el valor de la prioridad que el pasado ya se reanuda.
OS_TASK_NO_SUSPENDED,
Si intenta reanudar una suspensin (no bloqueado) tarea.
Un uso ejemplar est en ONU-bloqueando Taskl_connect de prioridad = Tarea! JConnectJ'riority (Prioridad)
situado es como sigue:
(Taskl OSTaskResume_Gonnect_Priority). La tarea de parmetro que se pasa como argumento es 10,
como l_task_Prioriiy Conneci
= 10. Los siguientes parmetros de error ser devuelto por la funcin de reanudar la tarea.
(a) OS_NO_ERR = true, cuando el bloqueo de la ONU tiene xito y la tarea de prioridad 8 alcanza la
ejecucin
Estado.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

(TL) OS.Task.RESUME.PRIO = false como valor de prioridad que pasa ya se ha reanudado.


(e) OSTASK.No.Suspendido = false, al intentar reanudar una tarea que no fue suspendido.

Ejemplo 9.9
I. A los 19 aos./* pasos como por ejemplo 9.7 cdigos para la Tarea I .Funcin Connect. */
20. /* Los cdigos de otras tareas, Task_N */

Paso . /* reanudar la tarea 1 .Connect. Control.


*/
OSTaskResume (Tarea I_Conneci_Priorily):
Paso n +!. }: /* final del bucle while*/
Paso n +2)./ * al final de la tarea.funcin N.*/
4. Venta de cal en funcin del reloj del sistema. void OSTimeSet (unsigned int count) no devuelve ningn
valor. Pasando
Parmetro, PD como argumento es dada a continuacin.
PD: pasa un entero de 32 bits para el conteo (ajustar el nmero de tics para el tiempo actual que incrementarn
Despus de cada pulso del reloj del sistema en el sistema).
Un uso ejemplar es una funcin OSTimeSet (para preseleccionar la cal). La funcin OS TimeSet (0) establece
el
Presente Count = 0. Precaucin: se sugiere que OSTimeSet funcin debe utilizarse antes del OSTicklnit
Funcin slo una vez y luego nunca ser usada dentro de una funcin de la tarea, como algunas otras funciones
que dependen de la
El temporizador se avera. Deje que el recuento de reloj temporizador OS siguen siendo utilizados como en un
contador de marcha libre. Hay
Poca necesidad despus de utilizar la funcin de tiempo. Esto es debido a que en cualquier instante, el tiempo se
Ejemplo 9.10
puede leer mediante un get
Void (*taskPointer
{
Funcin
(ejemplo 9.11)FirstTask)
y en cualquier
instante, puede definirse de nuevo agregando un valor a esta hora.
I. A 9.10
9. /*utiliza
Los cdigos
hasta
OSTicklnit
() en el ejemplo
Ejemplo
la funcin
ajustada
en el FirstTask.
9.7*/
10. /* Establece el nmero de temporizador de garrapatas
de 0 */
Unsigned int preseiTime = 0.
(presetTime OSTimeSet);
OSTicklnit ():
II. /* Otros cdigos de FirstTask */
}/ FirstTask * final de la funcin.
5. Obteniendo tiempo de reloj del sistema. Funcin'unsig'.cm int OSTimeGet (void) devuelve el nmero
actual de garrapatas
Como un entero sin signo. Pasando el parmetro como argumento es ninguno.

RE: Devuelve entero de 32 bits, el nmero actual de garrapatas en el reloj del sistema.

422

Los sistemas integrados

Ejemplo 9.11
1: 20. /* Los cdigos segn se indica en los pasos 1 a 19 en el ejemplo 9.7 y los cdigos como para otra funcin
de tarea */

Unsigned int currentTime = OSTiineGet ();


2. /* Otros cdigos de la tarea despus de la determinacin de
la cal actual */

)/ * Fin de la tarea-funcin. */

9.2.3 Las funciones de retardo de tiempo


4UCOS funciones de retardo de tiempo para las tareas estn segn
la Tabla 9.3.
Cuadro 9.3 Funciones de retardo de tiempo para las tareas
Funcin prototipo

Void OSTimeDIy (unsigned short delayCount)

Unsigned byteJDSTimeDlyResume unsigned


byte_ta.skPritarityj

Cules son las


Parmetros
Devuelto?
Ninguno

RG

Cuando esta funcionando


Sistema operativo (SO) llamado?
Cuando una tarea se retrasa por
entradas de recuento igual
delayCount - 1. La tarea, que los
retrasos es aqul en el que se
ejecuta esta funcin.1

PC
Cuando una tarea de prioridad =
taskPriority es reanudar antes del
retraso predefinidos, que fue por un
monto definido por delayCount o
(hr, mn y ms) y'que est
actualmente en estado bloqueado

RH
Aceite) OSTimeDlyHMSM bytes sin signo
(unsigned byte r. mn. unsigned byte ce,
unsigned shon ms)

Cules son
los parmetros
pasados?
PF

PH

Cuando la necesidad es demorar y


bloquear una tarea para hr horas,
mn minutos, seg segundos y
milisegundos ms2

Breviations utilizados en las columnas 2 y 3 se explican en el texto.


No se puede demorar isk de 65.535 entradas de contador dock del sistema (ticks) por funcin OSTimeDIy.
Isco no puede reanudar posteriormente por OSTimeDlyResume ( ) si el retraso (en horas, minutos, segundos y milisegundos) es
establecer ms de ,535 dock del sistema entradas de recuento (garrapatas).

1. Retrasar por definir un tiempo de retraso por el nmero de tics del reloj. Funcin void OSTimeDIy
(unsigned
Cortocircuito delayCount) retrasos por tareas (delayCount - 1) garrapatas del reloj del sistema. Devuelve
parmetro.
Ck entradas de recuento (garrapatas) es igual aningn
(delayCount
- 1) + count, donde recuento es el nmero actual de
Los parmetros
de la tarea pasando PF: un nmero entero de 16 bits, delayCount para retrasar una tarea, al
garrapatas
en tem-reloj.
menos hasta que el sistema

Sistema operativo de tiempo real Programm/ng-l: MicroC/OS-ll y VxWorks

423

Un uso ejemplar como una funcin en una tarea es OSTimeDIy (10.000). tt retrasos esa tarea para al menos
100.000 nis si el reloj del sistema garrapatas despus de cada 10 ms.

Ejemplo 9.12
I.

A los 18 aos./* pasos como por ejemplo 8,7 cdigos para Taskl_Connect funcin. */

19. /* Tiempo de retardo de 1 segundo = perodo de 100 garrapatas del sistema si el sistema est
configurado en garrapatas cada 10 ms.*/ OSTimeDIy (100);
20. /* Reanudar Taskl_Connect por una funcin definida en la prxima subseccin y ejecutar otros cdigos
dentro
El bucle. */
,
21.
22.

//*; final del bucle while*/


}/ * final de la funcin Taskl_Connect. */

Ml
Mm

2. Reanudar

una tarea retrasada por OSTimeDIy. Funcin de bytes sin signo (unsigned
OSTimeDlyResume byte_taskPriority) Reanuda una tarea retrasada anteriormente, si el parmetro delay
fue en trminos de las garrapatas delayCount o en horas, minutos y segundos. Nota: En el caso de demora
es definido ms de 65.535 tictacs de reloj del sistema, no se reanudar el OSTimeDlyResume que
retrasaron la tarea.
Volver RG: devuelve el siguiente error de parmetros.
(a) OS_NO_ERR = true, cuando la reanudacin tras retraso sucede.
(b) OS_TASK_NOT_EXlST = TRUE, si la tarea no fue creada anteriormente.
(c) OS_TlME_NOT_DLY = TRUE, si la tarea no se ha demorado.
(d) OS_prio_invlido, cuando taskPriority parmetro que se ha pasado es algo ms que el SO_PR10_ MS
BAJAS (=23).
Los parmetros de la tarea de pasar l'G\ taskPriority es la prioridad de la tarea que se retrasa antes de
reanudacin.
Un uso ejemplar es OSTimeDlyResume (Task_ReadPortPriority). reanuda un retraso en la tarea que os
identifica por tarea prioritaria_RcadPortPrioriry.

Ejemplo 9.13
I.

A los 19 aos. /* pasos como por ejemplo 9.12 cdigos para tarea l_Connect funcin. */

20. /* Tiempo de retardo de 1 segundo = perodo de 100 garrapatas del sistema si el sistema est configurado
en garrapatas cada 10 ms.*/ OSTimeDIy (100);
21. Otros cdigos /* */

22. /*_Connect Taskl Reanudar el control y ejecutar otros cdigos dentro del bucle. */
(Taskl OSTimeDlyResume_connect_Priority): .
. ,(ts

23.
24.
*/

/; /* final del bucle while*/


)/ * al final de la tarea, l_Connect funcin.

Los sistemas integrados

3. Retrasar por definir un tiempo de retardo en unidades de horas, minutos, segundos y

milisegundos. Funcin void OSTimeDlyHMSM (unsigned short hr. unsigned short mil, unsigned short
sec, unsigned short mils) retrasos de hasta 65,533 garrapatas una tarea con tiempo de retardo definido por
hr horas entre 0 y 55 aos. inn minutos . entre 0 y 59. Seg segundos entre 0 y 59 y mils milisegundos entre
0 y 999. El ms se ajusta a la integral mltiple de nmero de tics del reloj del sistema. La tarea en que esta
funcin est definida se retrasa.
Volviendo RH: La funcin OSTimeDlyHMSM () devuelve un cdigo de error de la siguiente manera.
(a) OS_NO_ERR, cuando cuatro argumentos son vlidos y la reanudacin tras retraso sucede.
(b) OS_TIMEJNVALID_horas. OS_TIME_INVALID_minutos, OS_TIMEJNVAUD_SEGUNDOS Y
OS_TIME_INVALID_MILU, si los argumentos son mayores de 55, 59,59 y 999, respectivamente.
(c) OS_T[ME_ZERO_DLY, si todos los argumentos que se pasan son 0.
Los parmetros de la tarea pasa al tel.: (c) hr, corri, sec y ms son los tiempos de retardo en horas, minutos,
segundos y milisegundos por qu tarea retrasos antes de reanudar.
Un uso ejemplar est usando OSTimeDlyHMSM (0, 0, 0, 999) en funcin de los cdigos de una tarea en el
paso 8 en el ejemplo 9.12. Tambin ha retrasado la tarea de 9990 ms. La funcin retrasos esa tarea durante al
menos 10 ms si el reloj del sistema neks tras cada 10 ms. (Si el retraso es definido como 9.000.000 de ms, el
OSTimeDlyResume no ser capaz de reanudar esta tarea cuando se le solicite. Nmero de marcas debe ser inferior
a 65.535, lo que significa el mximo de retardo puede ser '>55,350 ms.Si el reloj del sistema garrapatas cada 10
ms].

9.2 4 Memoria Allocation-Related funciones


Funciones de la memoria son necesarios para asignar bloques de memoria de tamao fijo desde una particin de
memoria tiene un nmero entero de bloques. La asignacin se lleva a cabo sin fragmentacin. La asignacin y
desasignacin lago lugar n fija y determinista de la hora (por ejemplo, 8.6). MUCOS funciones de la memoria para
las tareas son como |ter Tabla 9.4.
Tabla 9.4 sistema operativo en tiempo real (RTOS) Funciones de memoria para consultar, crear, obtener y colocar

Prototipos de funciones

Cules son los par- cuando es este os llame?


Metros Reluming
cunl pasan?

*OSMem nieinAddr OSMeniCreate (void *. NumBloeks


MEMTYPE1. BlockSize MEMTYPE, unsigned byte
*memEir)
Void *OSMemGel (SO_MEM 3 memCB puntero.
*meniErr unsigned byte)

Bytes sin signo OSMemQuery (SO_MEM


*memCBPointer, SO_MEM_DATA *memData)
Bytes sin signo OSMemPut (SO_MEM
*memCBPointer, void *niemB|ock)

VIEMTYPE es unsigned int de 16 o 32 bits.

Rland PI

Para crear e inicializar una particin de


memoria. Los bloques de memoria son
asignados desde la particin

RJ y PJ

Para encontrar el puntero del bloque de


control de memoria asignada a los bloques
de memoria. NULL si no hay bloques. Se
utiliza cuando un OSMemGel intenupi
rutina de servicio (ISR) o tarea necesita gel
el
bloque
de memoria(s)
Para
encontrar
punteros del bloque de

RK Y PK
RL y PL

control de memoria y OS JVlemData


estructura de datos
Para devolver un puntero de bloque de
memoria en la memoria las particiones
desde el bloque de control de memoria
puntero. OSMemPut se utiliza cuando la
aplicacin ya no necesita el bloque de
memoria

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

I. La creacin de bloques memorv en una direccin de memoria. Funcin OSMem *OSMemCreate (void
*memAddr, MEMTYPE numBlocks. BlockSize MEMTYPE, unsigned byte *memErr) es una funcin del sistema
operativo, en el que la particin de la memoria desde una direccin con particiones en los bloques. La creacin e
inicializacin de las particiones de memoria en los bloques ayuda al SO en las asignaciones de recursos.
Rl: devolver la funcin *OSMemCreatc ( ) devuelve un puntero a un bloque de control para la creacin de
particiones de memoria. Si ninguno creado, la funcin create devuelve NULL, el puntero.
Los parmetros de la tarea pasando MEMTYPE PI: es el tipo de datos de acuerdo con la memoria, ya sea de
16 bits o de 32 bits de direcciones de memoria de la CPU estn all. Por ejemplo. 16 bits en 68HCII y 8051. (i)
*memAddr es puntero para la memoria de direccin inicial de los bloques, (ii) numBlocks es el nmero de bloques
en los que la memoria debe ser particionado (debe ser 2 o ms), (iii) El blockSize es el tamao de la memoria en
bytes en cada bloque, (iv) *memErr es un puntero de la direccin para mantener los cdigos de error. En la direccin
*memErr las siguientes variables de cdigo de error global cambia de true a false. OS_NO_ERR = true cuando la
creacin se realiza correctamente. 0S_MEM_INVAL1D_BLKS = true, cuando al menos dos de los bloques no son
pasados como argumentos, (v) SO_MEM_INVALID_PART= true, cuando la memoria de particin no est
disponible, (vi) 0S_MEM_!NVAL1D_SIZE= true, cuando el tamao de bloque es menor que una variable de
puntero.
Ejemplo 9.14 muestra la creacin de cuatro bloques de memoria, siendo cada uno de estos bloques de 1 kB.
Direccin de inicio de memoria permiten ser 0x8000.

Ejemplo 9.14
1. /* En Pre-Processor definicin para un nmero sin signo de 16 bits, MEMTYPE para definir el nmero
de bloques que puede estar entre 0 y 65535 y definir el nmero de bytes que se almacenan en un bloque.
Nmero mximo de bytes en un bloque puede ser 65535. */
Typedef unsigned short MEMTYPE:
3. /* Los cdigos de funcin principal o de una tarea de la funcin */

4. /* Los cdigos para crear los bloques de


memoria*/ memAddr = 0x8000: numBlocks =4:
BlockSize = 1024; /* Cada bloque es de kB de memoria I */
*OSMemCreate (*memAddr, numBlocks. blockSize, i: mem Err);

5. /* Otros cdigos para la funcin. */ 1

1 /* final de la funcin */
2. Gening un bloque de memoria en una direccin mentores. Funcin void *OSMemGet (SO_MEM
*memCBPointer.
*memErr unsigned byte) es recuperar un bloque de memoria desde las particiones creadas anteriormente.
Volviendo RJ: La funcin OSMemGet () devuelve un puntero al bloque de control de memoria para las
particiones.^ devuelve null si no hay bloques.
Los parmetros de la tarea de pasar PJ: (i) pasa un puntero como argumento para el bloque de control de una
particin de memoria,
(ii) La funcin OSMemGet ( ) pasa el cdigo de error puntero *memErr que posteriormente devuelve uno de los

426

Los sistemas integrados

Siguiente. OS_NO_ERR, cuando el bloque de memoria vuelve a la particin de memoria, u OS_MEM_FULL. al


bloque de memoria, no se puede poner en la particin de memoria como se calma.
Ejemplo 9.15 muestra cmo obtener un puntero al bloque de memoria, que ha sido creado con
anterioridad.

Ejemplo 9.15
l. A 5. /* cdigos como por ejemplo 9,14 */
6. /* Los cdigos para recuperar el puntero al bloque de memoria en una particin creada en el paso 5 en el
ejemplo 9.14 */ memPointer = OxAOOO;
MemErr = SO_MEM_NO_FREE_BLKS;
*OSMemGet (*memPointer, *memErr);

5. /* Otros cdigos para la funcin. */

) I* final de la funcin */
3. Consulta de un bloque de memoria. Funcin OSMemQuery unsigned byte (SO_MEM
*memCBPointer.
OS_MEMDATA *memData) es para consulta y devolver el cdigo de error y punteros de las
particiones de memoria.
OS_NO_ERROR como 1 si una direccin de memoria *memPointer existe en *OS_MEMDATA, de lo
contrario devuelve 0.
Volviendo RK: La funcin OSMemQuery () devuelve un cdigo de error, que es un byte sin signo. El cdigo
Es OS_NO_ERR = I cuando la consulta se realiza correctamente, ms 0.
Los parmetros de la tarea de pasar PK: (i) La funcin OSMemQuery ( ) pasa (i) un puntero memPointer del
Memoria creada anteriormente, y (ii) un puntero de la estructura de datos. OS_MEM_DATA. Como punteros se
pasan como
Referencias, la informacin acerca de la particin de memoria devuelve el bloque de control de la memoria con
el puntero.
4. Tirando de un bloque de memoria en un byte sin signo. Funcin fmrtition OSMemPut (SO_MEM
*memCBPointer. void *memBlock) devuelve un bloque de memoria apuntada por *mcmBlock, que
memoria
Bloque de control por *memCBPointer puntos.
RL: devolver la funcin OSMemPut ( ) devuelve cdigos de error por uno de los siguientes:
(i) OS_NO_ERR, cuando el bloque de memoria regres a la particin de memoria o (ii) OS_MEM_F'uLL.
Cuando
El bloque de memoria, no se puede poner en la particin de memoria ya que est lleno.
Los parmetros de la tarea pasando PL: (i) La funcin OSMemPut ( ) pasa un puntero *memCBPointer del
Bloque de control de memoria para las particiones de memoria. Es all que el bloque se va a poner. (ii) un puntero
de la
*memBlock bloque de memoria se va a poner en la particin.

9.2.5 Funciones Semaphore-Related


MUCOS funciones semforo para las tareas conforme a la Tabla 9.5. MUCOS tambin proporciona funciones
para eventos
Un grupo de indicadores de eventos para manejar tareas de accin pendiente sobre la ocurrencia de cualquiera o
de todos los eventos. Estas no son discutidos
En esta seccin.
Cuando un semforo creado por esta,OS es j^ed como una adquisicin de recursos clave (mutex), el valor del

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

427

1. Crear un semforo para la funcin /PC. OS. Caso OSSemCreate (unsigned short semVaI) es para crear
un so del BCE (Bloque de control de eventos) para PC con I seniVal devolver un puntero que apunte al
BCE. Un semforo crea e inicializa con el valor = semVaL
Volviendo km: la funcin OSSemCreate () devuelve un puntero *eventPointer para el BCE asignada al
semforo. Null si no hay ninguno disponible.
Los parmetros de la tarea de pasar la tarde: una semVaI entre 0 y 65535 se pasa. Para IPC como un eventoHag, sealizacin SeinFlag deben pasar 0 y como un recurso-Adquiriendo clave. SeinKey deben pasar 1. Para IPC
como un semforo, SemCount escrutinio debe ser 0 o un recuento de valor a l pas en el principio.
Consulte Ejemplos 9.16, 9.17 y 9.18 para conocer la utilizacin de OSSemCreate.
2. A la espera de un IPC de liberacin de semaphore. Funcin void OSSemPend (SO_Event *eventPointer,
unsigned short timeOut, unsigned byte *SemErrPointer) es para dejar una tarea espere hasta el evento
de lanzamiento de un semforo: Semflag o SeinKey o SemCount. ste es el BCE seal por
*eventPointer. O SemFlag SeinKey o SemCount cada vez mayor que 0 es un evento que enva seales a
la liberacin de las tareas en los estados de espera. Las tareas que ahora estn listos para ejecutar (que
corren si ninguna otra tarea ms prioritarios est listo). Las tareas tambin estn listos despus de un
tiempo predefinido. El tiempo de espera. O SemFlag SeinKey o SemCount disminuye y si es 0, entonces
se hace el semforo nuevamente y la pendiente otras tareas usando OSSemPend ( ) (tienen que esperar
para su liberacin.
Volviendo RN: La funcin OSSemPend () cuando un semforo est pendiente, despus suspende hasta >0
(lanzamiento) y disminuye la semVal en desbloquear esa tarea SemVal = 1. Las siguientes macros devolver true,
(i) OS_NO_ERR devuelve true, cuando el semforo (SemVal logra bsqueda > 0). (ii) OS_TIMEOUT semaphore
devuelve true si no se suelta (no ser >0) durante las garrapatas definido para el tiempo de espera,
(iii) OS_ERR_penden_isr devuelve true, si esta funcin llamada fue por un ISR y que es un error, ya que el ISR
no debe estar bloqueado para tomar el semforo. < iv) OS. ERR_EVENT_type devuelve true, cuando *evcntPointer
no est apuntando al semforo.
Pasando parmetros de colmillo de PN:(\) El SO_Evenl ::eventPointerpassesasapoimerto BCE que asocia con el semforo:
SeinFlag
o SeinKey o SemCount. ii) Pasa argumento lor el nmero de pulsos de temporizador para el tiempo de
espera. Tusk se desbloquea despus de la demora es igual a (timeOut : i) las garrapatas incluso cuando no se libera
el semforo. Evita inlinite esperar. Debe pasar 0 ii esta disposicin no se aplica, (iii) Pasa S:err. un puntero para celebrar el cdigo
de error.

Ejemplos 9.16. 9.17 y 9.18 explica el uso de OSSemPend ( ).


9 Tsbte 5 Sistema operativo en tiempo real (RTOS) Funciones Semforo para comunicaciones entre tareas
Prototipos de funciones"

J OS_Event OSSemCreate
! (unsigned short semVal)
! Void OSSemPend
(OS_Event i:eventPointer, unsigned
*SeniErrPointer)

Cules son las


Parmetros
que devuelvan
y pasado?1.

Rt/t y H

Cuando esta funcin del SO sacrificadas'.

Crear e inicializar BCE y un semforo


para SeniVal.

short RN y PN timeOut. unsigned byte

Slo una tarea y no una rutina de servicio de


interrupcin (ISR) puede aceptar el semforo. La
funcin es comprobar si el semforo est
pendiente o no pendiente (0 o >0). Si pendiente
(=0). Luego, suspender la tarea hasta >0
(liberado). Si >0. Disminuir el valor del
semforo y ejecutar los cdigos de espera. Hace
disminuir la pendiente del semforo de nuevo
(Podra)
por algunos otros

Los sistemas integrados

Prototipos de funciones1

Unsigned short OSSemAccept


()S_EVENT *evenlPoinier)

Bytes sin signo OSSemPost


T )S_EVENT*eventPointer)

Cules son las


Parmetros
Reluming y
pasado1 1

Cuando me\ este so funcin denominada ''.

Tarea. Finaliza el perodo de espera tambin despus del


tiempo de espera
Nmero especfico de pulsos de temporizador (reloj del
sistema
Interrupciones) = limeOul - Bloque I. la tarea pendiente
OSSemPost.
Y DESBLOQUEAR
en liberarEl
al semforo en
RO y po un ISR o tarea
puede aceptar el semforo.
Semforo de funcin comprueba si el valor > 0 y si s. A
continuacin, recuperar y reducirlo. Se utiliza cuando no
hay necesidad de esperar por la tarea, slo reducirlo a 0
si el valor ya no es cero.
RP y PP un ISR o tarea puede publicar el semforo. Si SemVal 0 o ms, los
incrementos. Incremento hace que el nuevo semforo no
pendientes para las tareas en espera.
Si las tareas arc en el estado bloqueado y esperando el
semforo para SemVal adquieren valor >0 entonces
hacer esas tambin preparada para funcionar como ami
cuando programado hv el kernel. El kernel busca la
prioridad de las tareas en ejecucin y listo' y ejecuta el
uno que tiene la ms alta prioridad en primer lugar.
RQ y PQ para obtener informacin del semforo.

Bytes sin signo OSSemQuery

A.S_EVENT
'cventPointer.
OS_SEM ..data *SentData)
La columna 1 se refiere al prrafo explicativo correspondiente en la prueba.

3. Verifique la disponibilidad de un IPC despus de un semforo de liberacin. Funcin OSSemAccept


unsigned short (SO_Event *eventPointer) cheques por un valor de semaphore tit BCE y si es mayor que
0. Un valor de 16 bits no asignados se recupera y luego disminuye.
Volviendo RO: La funcin OSSemAccept () disminuye el semVal si >0 y devuelve el predecremented >.
.debido como un nmero sin signo de 16 bits. Devuelve 0 si semVal fue 0 y no estaba pendiente del semforo
cuando registr liberado). Despus de esto, los cdigos de tareas ms.
Los parmetros de la tarea de pasar PO: El SO_Event *eventPointer pasa un puntero para el BCE que asocia
con semforo. SemVal.
4. Enviar un IPC despus de un semforo de liberacin. Funcin OSSemPost unsigned byte (SO_Event
*eventPointer) es otra tarea para dejar esperando no esperar ahora a posteriori y un IPC es enviado
para el evento release del semforo, o SemFlag SemKey o SemCount (ejemplo 9.16). El [PC es el BCE
seal por *eventPointer SemFlag o SemKey o SemCount, incrementos y si es mayor que 0, es un
acontecimiento que seala la liberacin de un grupo de estado de espera. La tarea ahora listo para ejecutar
(se ejecuta si no hay otras tareas de mayor prioridad est listo). O SemKey SemCount SemFlag
o decrecimientos en la ejecucin de esa tarea y si es < 0 entonces hace pendientes semforo de nuevo y la
otra tarea.c'fiave lu esperar su liberacin.
Si el IPC est publicado desde un ISR, entonces la tarea pendiente slo puede ejecutarse despus OSIntrExit ()
ejecuta y retorno del ISR. Si la tarea en ejecucin actualmente es de mayor prioridad que la tarea pendiente para
el deseo de la IPC, entonces la tarea actual seguir funcionando a menos que est bloqueado o demorado por la
ejecucin de algunas funciones.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

4291

Volviendo RP: La funcin OSSemPost () incrementa el semVal si es 0 o > 0. y posteriormente macros


siguientes volver tme desde el cdigo de error macros como sigue: (i) OS_NO_ERR devuelve true si el semforo
de sealizacin (SemVal logr Oor > 0). (ii) OS_ERR_EVENT_type devuelve true, si *eventPoimer no est
apuntando hacia el semforo, (iiil OS_SEM_OVF devuelve true, cuando desborda semVal'(no incremento y ya es
65.535).
Los parmetros de la tarea pasando PI": El SO_Event *eventPointer pasa como puntero al BCE que se asocia
con el semforo.
5. Recuperar la informacin de error de un semforo. Funcin OSSemQuery unsigned byte (SO_EVENT
*evento puntero. OS_SEM_DATA *ScmData) pone los valores de datos para el semforo en el puntero,
SemData.
Regresar RQ: Tras la OSSemQuery ( ) ejecuta la funcin SemData OSCnl y obtiene el semforo, que es el
valor presente (count). La Semdata tambin obtiene la lista de las tareas que estn esperando el semforo. La lista
est en punteros y OSEventGrp OSEventTbl (|. La informacin de error de semaphore parmetros podemos
encontrar en nmning las macros, SO_NO_ERR y OS_ERR_EVENT_TYPE. (i) OS_NO_ERR devuelve true,
cuando consulta consigue o (ii) OS_ERR_EVENT_type devuelve true, si *eventPointer no est apuntando al
semforo.
Los parmetros de la tarea de pasar PQ: La funcin OSSemQuery ( ) pasa un puntero del semforo creado
anteriormente en *eventPointer y un puntero a la estructura de datos en *SemData creado para ese semforo.

Ejemplo 9.16
El uso de OSSemPend OSSemPost y como un evento bandera de sealizacin es como sigue. Deje que el valor
inicial de un evento de sealizacin se SemFlag 0 sobre la creacin de un semforo por OSSemCreate. Una
tarea se debe ejecutar primero OSSemPost, lo cual aumenta la SemFlag a 1 y lo notifica al evento. Cuando se
convierte en 1 SemFlag liberado (no adoptado), la espera la tarea (tarea que ejecuta la funcin OSSemPend)
sobre el desplazamiento del semforo como puedo empezar a correr (se ejecuta cuando no hay otras tareas de
mayor prioridad est listo para ejecutarse). El semforo SemFlag disminuye a 0 (nuevo pendiente o tomado)
sobre el retorno de la funcin OSSemPend. Los cdigos de espera de la tarea Ejecutar ahora.
Considere un ejemplo de lectura de bytes en una red. Se asume que un ISR se ejecuta en un personaje
llega a un puerto. Otra tarea es leer el puerto A. tercera tarea es descifrar el mensaje de puerto. Este ejemplo
muestra cmo los pasos a. b y e ISR y sincronizar las dos tareas con semforo como evento de bandera de
sealizacin para salas de espera y envo de un IPC.
1. Para el paso a. Deje que la tarea sea ISR_Charlntr. Se ejecuta sobre interrupciones y escribe el carcter
en PortA buffer. Seales de disponibilidad en el puerto un buffer de caracteres utilizando semFlag
semaphore.
2. Para el paso b, que sealiza la tarea para que se ejecute por el ISR ser Task_read_PORT_A. Es para leer
el carcter cuando est disponible en el puerto A.
3. Para el paso c, deje la tarea ser colmillo_decrypt_PORT_A. Es para descifrar el mensaje.
Los
para creardel
la ISR
y dos tareaspara
y sincronizar
serde
como
sigue.
2. /*cdigos
las definiciones
preprocesador
el mximoestos
nmero
eventos
entre procesos para dejar que
23
I.los
/* MUCOS
cdigos como
pormemoria
ejemplopara
9,7 paso
I exetrpt
de comentario/
asignar
el caso
de los ltima
bloqueslnea
de control
*/
#defirie OS_MAX_EVENTOS 8/ permiten eventos IPC mximo 8 */
#defme OS_SEM_EN I/* permite la inclusin de funciones de semforo en aplicaciones con mucos */
/* final de comandos de preprocesador */
3. /*cdigos como por ejemplo 9.7 Paso 2 *1

1430!

Los sistemas integrados

4. /* Prototy pe; definiciones de ISR y dos pilas, tareas y prioridades. 7 static void
iSR_Charlntr (void *tntrVectorPointer);
Static void Task_read_PORT_A (void *taskPointer);
Static void Task_decrypt_PORT_A (void *taskPointer);
OS static_STK Task_read_PORT_AStack [Task_read_PORT_AStackSize|;
OS static_STK Task_decrypt_PORT_AStack [Task_decrypt_PORT_AStackSize|:
Tarea #define_read_PORT_AStackSize I00 /* definir la tarea 2 Tarea 7 pila
#define_decrypt_PORT_AStackSize iOO/* definir la tarea 3 Tarea 7 pila
#define_read_PORT_APriority 12 /* definir la prioridad 7 tarea 2 Tarea
#define_decrypt_PORT_APriority 13 /* definir la tarea 3 Prioridad 7
5. /* Prototipo definiciones para los semforos 7
OS_evento: SemFlagl; /^Semaphore necesarios cuando se utiliza como indicador para la comunicacin entre
procesos entre puerto y puerto las tareas de comprobacin de lectura. Lectura de puerto tiene que esperar para
verificar O.K.7
OSJ2VENT: SemFlag2; /^Semaphore necesarios cuando se utiliza como indicador para la comunicacin entre
procesos entre el puerto de lectura y lectura de puerto descifrar la tarea. Descifrar el puerto tiene que esperar
para lectura de puerto '7 OS_evento: SemKeyl; /^Semaphore es necesario cuando se utilizan como recurso
clave como por ejemplo 9.177 OS_evento: SemCount; /^necesarios cuando se utiliza como el recuento de
semforo como ejemplo 9.187
6. /* cdigos como por ejemplo 9.7 Paso 3 a 5 de 7
7. /* Crear semforos y empezar MUCOS RTOS para dejarnos RTOS control y ejecutar las tareas creadas 7 =
OSSemCreatefO SemFlagl): /^declarar el valor inicial del semforo = 0 para usarla como una sealizacin del
evento Hag 7
OSSemCreate SemFlag2 = (())". /*declarar el valor inicial del semforo = 0 para usarlo como un evento bandera
de sealizacin*/
OSStart ( ): /* bucle while infinita hay en cada tarea. As que no hay ningn retorno de la funcin RTOS
OSStart (). 7
| /* final del bucle while7
)/ *** Fin de la funcin principal **7
/* cdigos como por ejemplo 9.7 Paso 7 y 8 7
8. /* Cree dos tareas como en el paso 2, definiendo dos identidades de tareas. Task_read_PORT_A y
TASK_decrypt_PORT_A y los tamaos de pila y otros parmetros de TCB. 7
OSTaskCreule (Task_read_PORT_A. Void (*) 0.
(void *)
<S
Task_read_PORT_ASrr.'c(t:
fTask_read_PORT_ASwr'fcS/rcy. Task_read__PORT_APriority);
OSTaskCreatc (Task_decrypt_PORT_A. Void
(*) 0, (void *7 & Task_decrypt_Por:_A5/crck
fTask_decrypt_PORT_AS/f7cAS/rc/, Task_decrypt_PORT_APriorityJ;
9. Mientras que (I) ( /* bucle infinito de FirstTask 7

10. /* suspender, sin reanudacin posterior, la primera tarea que se debe ejecutar slo una vez para la iniciacin
de pulsos de temporizador y para crear las tareas que el programador controla por preferencia. 7
11. (FirstTask OSTaskSuspend_Priority): /*suspender la primera tarea y el control de las RTO passesfo o'ifler
esperando la ejecucin de tareas7
12. ) /* final del bucle while 7

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

431

13. J /* Fin del primer'I'pida el cdigo "7


J
*********?***** *V******* ****** * 3* **>;:*** 3**-..****** *3 3 **********
14. /* Los cdigos para el ISR_CharIntr */
Void silico ISR_void *BuflerPointer Charlntr () {
15. OSIntEnter( ):/*
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez. */

16. I* Cdigo para restablecer la bandera de interrupcin, en el caso de pendientes, no se restablece


automticamente en el inicio del servicio de interrupcin */
17. /* Los cdigos para ISR_Charlntr para poner los caracteres recibidos en el puerto un bfer en
*BufferPointer 7
18. /* Cdigo de preparacin para la siguiente interrupcin en el puerto */
19. /* versin semforo para una tarea esperando al leer en el puerto */
(SemFlagl OSSemPost):
20. OSIntExit ();
21. )/ * final del ISR_CharIntr funcin 7
22. /********-j-l cdigos para la
tarea_read_PORT_*"***"*/ static void Task_read_PORT_A (Void
*BnfferPointer) {
/* tnitial asignaciones de variables y pre-bucle infinito instrucciones que se ejecutan una sola vez*/

23. /* iniciar un bucle while


infinito. :7 aunque (1)1.
24. / "Esperar por OSSemPost SemFlagl =1 funcin de disponibilidad de caracteres en el bfer despus de
interrumpir en el puerto */
(SemFlagl OSSemPend, 0 SemErrPointer);
25. /* para la lectura de cdigos desde el puerto A y almacenar mensajes en un bfer nuevo*/

26. /* versin semforo para una tarea esperando el descifrado*/


(SemFlag OSSemPost2);
OSTimeDly (100); /* Bloquear la tarea para 100 tics del reloj para habilitar el inicio de tareas de descifrado de
menor prioridad */
27.
J; /* final del bucle while*/
28. }/ * al final de la tarea_read_PORT_una funcin */
29. /* Inicio de task_DecryptJPort_A CDIGOS */
Static void Task_decrypt_PORT_A (void *taskPointer) {
30. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/

1432

Los sistemas integrados

31. /* iniciar un bucle while infinito. */ mientras (l) {


(SemFlag OSSemPend2, 0, *SemErrPointer)\ / * esperar un tiempo ilimitado para SemFlag2 = I por OSSemPost
funcin para leer un carcter en el puerto un *1
32'./* Cdigos para task_decrypt_PORT_A que lea el nuevo buffer y poner los datos descifrados en bfer nuevo
*/

OSTimeDlyesume (Task_read_PORT_Priority); /* reanudar la tarea_read_Port aplazado


anteriormente *1
33. /; /* final del bucle while*/
34. }/ * final de la Ta$k_decrypt_PORT_una funcin */
/I*#***-*:***********:}:****!}**.

* :ft i*t fjc ;fs * *****:;: **** ft********************/

Ejemplo 9.17
Uso de OSSemPend OSSemPost y como adquirir recursos claves es como sigue. El recurso puede ser un bfer
de memoria compartida o comandos que use variables globales o pantalla tctil o memoria flash o imprimir
registros de control del dispositivo y tampones. Deje que una clave de recurso disponibles SemKey su valor
inicial es 1. Una tarea se debe ejecutar OSSemPend fu st., lo cual disminuye el valor SemKey a 0 y los cdigos
de la crtica a la seccin C de la tarea para que se ejecute. La seccin es uno en el que se utiliza ese recurso. La
misma tarea se debe ejecutar OSSemPost tras finalizar sus cdigos en C y por lo tanto la seal clave de
disponibilidad de recursos para otras tareas. La SemKey se convierte en I y liberado (no adoptado) a su regreso
de la funcin OSSemPost. Si no hay ninguna otra tarea de alta prioridad est listo para ejecutar otra tarea que
comparte el recurso con la tarea anterior y ejecuta la funcin OSSemPend datos compartidos al entrar en la
seccin C. La funcin OSSemPost C ejecuta en salir. Haciendo SemKey 0 y entonces yo en la tarea de las
secciones C y C permite una tarea slo adquirir el recurso en un determinado estado de ejecucin de una tarea.
Recordar ejemplo 9.16, los pasos b y c para leer y descifrar los bytes desde una red. Si no hay ningn
mensaje, cmo puede ser descifrado? Revisemos ejemplo 9.16. El presente ejemplo mostrar cmo los
pasos b y c sincronizar mediante un semforo de llave de espera y envo de clave de IPC, y cmo sincronizar
los pasos a y b utilizando un semforo como bandera de sealizacin del evento.
1. /* cdigos como por ejemplo 9.16 paso I a 5 */ 2
2. /* definicin de prototipo para el semforo utilizado como recurso clave para la comunicacin entre procesos
entre el puerto y el puerto de lectura leer mensaje cifrar las tareas. */
OS_EVENT *SemKeyl; / *Semaphore necesarios cuando se utiliza como clave de recurso*/
/* cdigos como por ejemplo 9.16 los pasos 6 a 21. Sin embargo, crear el semforo SemKeylbefore llamando
OSStart () en main*/
1 = OSSemCreate SemKey (1); /*declarar el valor inicial del semforo = 1 para usarlo como un recurso
adquiriendo clave*/
/ft***************^*****^**********^***^****** *********************/

Sistema operativo de tiempo real programacin-!: MicroC/OS-ll y VxWorks

0,433

/* despus de la final de cdigos para ISR_C'harInlr. Los cdigos para la tarea_read_PORT_un redefinido
para mostrar un uso de la clave*/
Static void Task_read_PORT_A (void *taskPointer) I
5. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
4.

Mientras que (I) { /* iniciar un bucle while infinito. */


(SemFlagl OSSemPend, 0 SemErrPointer); / *esperar OSSemPost SemFlagl =1 por la funcin de
comprobacin de disponibilidad de carcter tarea */
/*adquirir recursos como actualmente SemKey > 0 y reducirlo y no permitir que ninguna otra tarea para utilizar
esta clave*/
8.
SemKey OSSemPend (I, 0, SemErrPointer)",
9. /* para la lectura de cdigos desde el puerto un bfer y almacenar en bfer nuevo, el cual ser compartido
con Task_decrypt_PORT_A y las tareas para transmitir datos a otro dispositivo descifrada */
6.
7.

/* se suelte la tecla para una tarea esperando el descifrado*/


(SemKey OSSemPost/):
11. /* para salir del bucle infinito en una tarea que se le ha asignado una mayor prioridad y dejar la tarea de
menor prioridad ejecutar call so para esperar la funcin de retardo de 100 ms (10 OS timer tick. Este es el
mtodo para permitir que las otras tareas de menor prioridad ejecutar el puerto a descifrar. */
OSTimeDly (10);
/; /* final del bucle while*/
12. )/ * al final de la tarea_read_PORT_una funcin */
10.

I* * *5i

*:* * # $ * * * * * * * # # t-? * * * #

5-t *:: ? : $$$$$!: * * * $$$$$ i>. ip. ***** * $ *

%J

/* Inicio de task_decrypt_PORT_A CDIGOS */


Static void Task_decrypt_Poit_A (void *tuskPointer) {
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez*/
13.

Si bien (!) { /* iniciar el bucle infinito */


/ Adquirir el recurso como SemKeyl > 0 y reducirlo a no dejar la tarea de lectura de puerto utilice esta
tecla*/ OSSemPend (SemKeyl, 0 SemErrPointer):
16. /* Los cdigos para task_decrypt_PORT_A o descifrar el mensaje ledo en bfer nuevo */
14.
15.

Suelte la tecla I* a una tarea esperando el nuevo bfer de transmisin de datos a un


dispositivo */
(SemKeyl OSSemPost):
OSTimeDIyResume (Task_read_PORT_APriority); /* reanudar la tarea retardada */
18. /; /* final del bucle while*/
17.

19.

} / *-aifthc Etid'^'ask_Deciypt_PORT_una funcin */

{***********##**#*###%%********* ***$$*%**$%$%$%%%$***%$%%%%$$%%%%%%%%%%%J

434|

Los sistemas integrados

Ejemplo 9,18
Uso de la ayuda en la programacin del semforo escrutinio tor la imprimacin u otro bfer enlazado problema
(problema) entre productores y consumidores (ver seccin 7.5). El uso de OSSemPosi para aumentar el recuento
y OSSeinPend para disminuir el recuento en un semforo de cuenta es como sigue. Recordar ejemplo 9.16. En
primer lugar vamos a modificar este ejemplo como sigue.
1. De paso , sobre la interrupcin que ISR_Charl ntr ejecuta. Publica un semforo a la tarea,
tarea_read_Port__A.
2. Para el paso /;, deje la tarea Task_read_PORT_A. Es para la lectura de los caracteres al buffer disponibles
en los puertos. Task_ReadPortA permiten leer una secuencia de caracteres en el bfer. Deje la tarea poner
los caracteres, mientras lee uno por uno, en un bfer enlazado (es una tarea productoras; buffer est
delimitado por un lmite, como una impresora o un bfer de pantalla).
3. Para el paso c, deje que la tarea sea tarea_decrypt. Es para descifrar y mostrar el mximo de 160 caracteres
(es una tarea que consume; es como la impresin desde el bfer de impresin).
4. Para el paso cl, deje la tarea Task_Disp!ay. Tarea Mostrar los datos descifrados en el dispositivo de
visualizacin.
5. Deje que el bfer de pantalla de 160 caracteres ser compartido por la tarea ^descifrar y limita hasta 160
direcciones en la memoria.
Este ejemplo muestra cmo los pasos b y c Sincronizar con semforo de cuenta y cmo los pasos c
a cl sincronizar.
1. Quiero ser un contador SemCouni, que cuenta el nmero de veces que una tarea se ejecut el semforo
de contabilizacin. Deje SemCount !v valor inicial es 0. Una primera seccin tarea debe ejecutar primero
OSSemPost, lo cual aumenta la SemCount a 1. Cada vez que se ejecuta esta tarea
seccin SemCouni aumenta por I. Cada vez la tarea descifra un personaje en otra tarea, disminuye por I.
2. Cuando SemCouni alcanza un valor especfico, un semforo de eventos conjuntos SemCouniLimiiFlag
bandera de sealizacin y el conteo se restablece a 0. Como no hay un sistema operativo llamado por una
funcin de retardo, la tarea de menor prioridad lor descifrando empieza a funcionar y adquiere la clave.
La clave de recurso semaphore SetnKey deja de estar disponible para las tareas de lectura y la lectura se
detiene hasta el desciframiento tarea suelta la llave y tambin ejecuta OSSemPend para
disminuir SemCount dejar el colmillo luego alcanza el lmite ejecutar de nuevo.
1. /* cdigos como por ejemplo 9,17 pasos I y 247 2 3 4
2. /* Prototipo
definiciones para uno
ISR y tres tareas*/ static
void_lSR
*IntrVectorPointer
Charlntr
static
3.
/* para(void);
tres definiciones
de tarea, pilas */
void
OS static_STK Task_read_Port__AStack
Task_read_PORT_A
[Task_read_Pori_AStackSize]; esttica
static void
(void :|:taskPointer);
OS_STK
Task_DecryptStack
Tarea_Decrypt (void *taskPointer);

[Task_DecryptAStackSize];
4.
/* para tres definiciones deesttica
tarea */ tamao de pila
Static
voidtarea_
tarea DisplayStack
.Pantalla (void *taskPointer);
OS_STK
Tarea
#define_read_PORT_AStackSize
[Task_DisplayStackSizeJ;
1001*
definir la tarea 2 tamao de la
pila*/ #Task_DecryptStackSize defme
1001* definir la tarea 3 tamao de la
pila*/
Tarea #define_DisplayStackSize 100/* definir la tarea 4 tamao de la pila*/

Sistema operativo de tiempo real programacin-I: MicroC'OS-li y VxWorks

435

5. I* Definiciones para cuatro prioridades de tareas. */


#deline Ta;:k_ ReadPortAPriority 11 /* definir la tarea 2 prioridad */
Adeline Task_DecryptPriority 121* definir la prioridad de la
tarea 3 :7 #define Task_DisplayPriority 14 /* definir la prioridad de la tarea 5 */
6. /* Prototipo definiciones para los semforos */
OS_EVENT *SemFIagl; /* es necesario cuando se utilizan como bandera semaphore foi la comunicacin entre
procesos entre 1SR y lectura de puerto las tareas. Puerto una tarea de lectura para esperar ISR notificar al
personaje en el puerto de recepcin
*/
OS_EVENT *SemCountSend; /* necesarios cuando se utiliza el semforo para enviar tarea valor de recuento
de semforo en la comunicacin inter-proceso entre leer y descifrar las tareas. El desciframiento de puerto
puerto tiene que esperar a recibir el envo de tarea */
OS_EVENT *SemKey; /* es necesario cuando se utilizan como recurso clave de semaphore */
OS_EVENT *ScmCountRecv; /* necesarios cuando se utiliza el semforo para contar el descifrado para
mostrar *!
8. /* cdigos como por ejemplo 9.7 Paso 3 a 8. Sin embargo, los semforos se crea e inicializa como se hizo
anteriormente en el paso 5 Ejemplo 9.16 */
I = OSSemCreate SemFlag (0); I* declarar el valor inicial del semforo = 0 para usarla como una bandera de
sealizacin Levent4/.
OSSemCreate SemCountSend = (0); I* declarar el valor inicial del semforo = 0 para un evento contador
Remitente */
OSSemCreate SemCountDisp = (0); I* declarar el valor inicial del semforo = 0 para usarla como una bandera
para
Pantalla */
/* declarar el valor inicial del semforo Count = 0 para el uso como un contador que indica el nmero de veces
que una tarea, que enva en un bfer que almacena una secuencia de caracteres, corri menos el nmero de
veces que la tarea que usa el personaje desde el arroyo corri desde el bfer s7
- OSSemCreate SemCountRccv (160); /* declarar el valor inicial del semforo = 160 para 160 direcciones
libres para recibir el hytes count para mostrar *1
9. /'' crear cuatro tareas como en el paso 3. tarea definida por cuatro identidades. Task_read_PORT_A.
Task_decrypt_PORT_A, Task_EncryptPortB y TASK_SendPortB y los tamaos de pila y otros parmetros de
TCB. *1
OSTaskCrecite (Tarea._read_PORT_A, void (*) 0. (void *) & Task_read_PORT_AS/f/ck
/TASK_read_Port"ASwcA'5/cey. Task_ReadPortAPriority):
OSTaskCrecite (Task_Decrypt, void (*) 0. (void *)
& Task_Decrypt57Rick
/TASK_DecryptStcickSize], Task_DecryptPriority)OSTaskCreate (Tarea_Display, void
(*)
0.(voicl
*)
y pantallas/ttck
/TASK_DisplayStcickSize], Task_Prioridad de visualizacin).
12
11.
cdigos
para
la tarea_ReadJR(fct_A
redefinirse
para utilizar
10. /4/*los
Los
cdigos
igual
que en los pasos 9 a 21
en el ejemplo
9.16 */el11semephore
como counter4/ static void Task_read_PORT_A (void *taskPointer) {
12. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez*/

J 436 I

Los sistemas integrados

Unsigned short countLimil = 160; /* declarar el tamao de bfer para los caracteres countLimit = 160 */

13. Si bien (!) { /* iniciar un bucle while infinito. */


14. / *esperar OSSemPost SemFlagl I por la funcin de comprobacin de disponibilidad de carcter tarea */
(OSSemPend SemErrPointer SemFlagl, 0):
15. (SemCountReev OSSemPend, 0 *SemErrPointer); /* ESPERE por el espacio disponible en el bfer de
recepcin) */ CountLimit = 160; /* CountLimit restablecer a 160 */
16. /*Puerto de lectura y escritura de un bfer byte byte en descifrar buffer */
- CountLimit; si (CountLimit >0){
(SemCountSend OSSemPost); /*] la liberacin SemCountSend para dejar la tarea de descifrar */ inicio
17. OSTimeDIy (10); /* para salir del bucle infinito de esta asignado a tareas de mayor prioridad que las
tareas de menor prioridad ejecutar call el SO para esperar la funcin de retardo de 100 ms (10 OS timer tick).
Este es el mtodo para permitir que las otras tareas de menor prioridad ejecutar el puerto a descifrar el mensaje
de tarea */
18. }:/* Final de cdigos para la accin en la que se alcance el lmite de poner caracteres en el bfer */
19. /; /* final del bucle while*/
20. ) / * final de la Ta$k_read_PORT_una funcin */
21. /* Inicio de task_Decrypt */
Desvincular la Task_void *taskPointer descifrar (void) {
22. I* de las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
23 Mientras que (i) [ /* iniciar el bucle infinito *7
24 /* la clave para no dejar la tarea_read_PORT_a ejecutar antes de al menos un ciclo de este bucle
while*/ OSSemPend (SemCountSend, 0 *SemErrPointer);
25. /* Los cdigos para task_decrypt_PORT_A o descifrar para mostrar mensaje de liras cuando
se coloca en el bfer nuevo fort */

OSSemPost(SemCountdisp, 0 *Err);
OSTimeDIy(10); /* para retrasar para transferir el control para mostrar tarea */
26. OSTimeDIyResume(Task_RcadPortAPrionty); /* Reanudar tarea leer un puerto */
27.1; /* final del bucle while*/
28. )/ * al final de la tarea_Decryptfunctior. */
29. /* Los cdigos para la tarea_DispIay
*/ task_static void *taskPointer DispIay
(void) {
30. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez :7
C' 31. Mientras que (1) { /* iniciar un bucle while infinito. */
32. /* para mostrar el descifrado de cdigos de caracteres */
(SemCountdisp OSSemPend, 0 *Err); /* ESPERE para descifrar el carcter */

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

33. /* Cdigo para mostrar el carcter */


(SemCountRecv OSSemPost)\.
34. (Task_DecryptPriority OSTimeDlyResume);
35. } :/* final del bucle while */
36. |/* al final de la tarea_Display funcin */

9.2.6 Funciones Mailbox-Related


Hemos visto en los ejemplos, 9.16, 9.17 y 9.18 que los semforos comunicarse uno de los siguientes.
1. La ocurrencia de un evento a otra tarea, que se espera para el evento antes de ejecutar.
2. La disponibilidad de un recurso en una tarea para dejar una seccin de cdigos en ejecutar la tarea.
3. Las apariciones de un evento varias veces antes de que se toman nota por otra tarea.
4. La disponibilidad de un recurso en una tarea para dejar una seccin de cdigos en la tarea Ejecutar
varias veces. No obstante, supongamos que el mensaje es una cadena o est en una estructura de datos o est
en un buffer o matriz. El buzn IPC
Puede ser utilizado en un puntero para comunicar esa informacin. Consulte la Figura 7.6(a). que mostr varios
tipos de buzones de correo. En MUCOS, el tipo de buzn de correo un mensaje puntero por buzn.
Quiero ser un puntero *msg para que se enve el mensaje en el buzn y otro ^mboxPointer para el evento de
envo del mensaje y recuperar el mensaje en s. Buzn MUCOS IPC funciones para las tareas conforme a la Tabla
9.6.
1. Crear un buzn para un IPC. Funcin *OSJEvent bnsg OSMboxCreate (void) es para crear un BCE en
el RTOS y as inicializar un puntero *mboxPointer a Msg msg. El puntero es NULL, si me cre inicializa
como buzn buzn vaco.
Los parmetros de la tarea de pasar Ml: *msg es mensaje puntero para que :5nibox puntero se inicialice. Por un IPC. enviar el
mensaje-puntero *mboxPointer comunica el msg.

Devolver la funcin OSMboxCreate ML () devuelve un puntero al BCE en la MUCOS y mboxPointer al BCE


apunta a msg.
Paso 8 En el ejemplo 9.19 muestra cmo utilizar la funcin OSMboxCreate.
2. Verifique la disponibilidad de un IPC despus de un mensaje en el buzn de correo. La funcin void "OSMboxAccept (SO_EVENT * mboxPointcr) comprueba la existencia de un buzn Mensaje al BCE en
un evento mboxPointcr (puntero). El puntero para el mensaje msg devuelve desde la funcin, si el
mensaje est disponible, no mboxPointer apuntando a NULL pero al msg. Despus de regresar, el buzn
se vaca, y mboxPointer apuntar a NULL en el vaciado de buzn. La diferencia con la funcin
OSMboxPend OSMboxPend suspende la tarea si el mensaje no est disponible y se espera mboxPointer
no es igual a NULL.
Los parmetros de la tarea de pasar M2: El SO_Evenl * mboxPointer pasa como puntero al BCE que se asocia
con el buzn.
Volviendo M2: La funcin OSMboxAccept ( ) comprueba el mensaje *mboxPointer y devuelve el puntero del
mensaje *msg actualmente MsgPointer. A continuacin, la funcin devuelve el puntero NULL si el puntero de
mensajes no est disponible en mboxPointer. Posterior *mboxPointer apuntar IO~NL'L, porque el buzn se vaca.
Paso 40 En el ejemplo 9.19 muestra cmo utilizar OSMboxAccept para recuperar una cadena de error, si los
hubiere, disponibles en el buzn sin especficamente esperando y bloquear la tarea.

Los sistemas integrados

Tabla 9.6 Buzn de sistema operativo en tiempo real (RTOS) Funciones de buzn para las
comunicaciones Intertask
Prototipo ('['Servicio y funcin de reloj del
sistema

Cuando es este OS liun iioii sacrificadas'.


Cules son los
parmetros que
regresan y
PassedV

OS_Event *OSMboxCreatc (void *msg)

Ml y ml

Void *OSMboxAccept (SO_evento


'mboxPointer)

M2 y M2

Para crear e inicializar un puntero de mensajes de buzn para


el BCE de un mensaje del buzn.
Para comprobar si el mensaje del buzn 'msg es apuntado por
'mboxPointer. A diferencia de la funcin OSMboxPend, docs
no bloquear (suspender) la tarea si el mensaje no est
disponible. Si est disponible, se devuelve el puntero msg * y *
mboxPointer nuevamente apunta a NULL. En el buzn de retorno se vaca

Void 'OSMboxPend
(OS_evento 'mboxPointer unsigned.
Tiempo de espera corto, unsigned byte
'MboxErr)

OS OSMboxPost unsigned byte_EVENT


*mboxPoinrcr. void :;:msg)

M3 y M3

M4 y M4

M3 y M5

Para comprobar si el buzn est disponible mensaje


pendiente: entonces el puntero del mensaje se lee y el buzn
vaciados y * mboxPointer nuevamente apunta a NULL. Si el
mensaje no est disponible i hiibo.xl'oinicr apunta a NULL)
espera, suspende la tarea e impide que se sigan ejecutando (o
hasta el nmero de tics = timeOui - 1 se produce en el
sistema-temporizador). Si la tarea pendiente, se reanud en la
disponibilidad. "Ahora boxPointer nulo. Se reanuda en el
tiempo de espera.
Enva un mensaje para una tarea actualmente en la direccin
msg colocando el puntero de direccin a la mboxPoinier.
Cambiar el contexto a esa tarea o cualquier otra tarea de
prioridad superior si tambin ocurrir. Si la casilla ya est
llena, el mensaje no se ha publicado y la informacin sobre el
error.
Vase el texto.

Byte msigned OSMboxQuery 'mboxPointer


OS_EVENT. )S__DATA_mbox 'mboxDatu)
"olumn 2 se refiere a los correspondientes prrafos explicativos en el texto de las comunicaciones intertask utilizando un buzn.

3. Esperando la disponibilidad de un IPC para un mensaje en el buzn de correo. La funcin void


*OSMboxPend (SO_Event * mboxPointer, unsigned short timeOut, unsigned byte *MboxErr) comprueba
un buzn mensaje msg puntero en el caso del BCE, puntero mboxPointer. Un puntero para recupera el
mensaje sobre el retorno, si el mensaje est disponible. mboxPointer no apunta a NULL pero apuntando
a otro msg espera hasta disponible o hasta la hora de salida, la que sea anterior. Si el argumento de valor
de tiempo de espera es 0, esto significa esperar indefinidamente hasta que el mensaje est disponible.
Tarea patSmet'.ibs pasando M3: (i) el SO_evento 'mboxPointer pasa como un puntero al BCE que est asociado
h el buzn, (ii) pasa el argumento timeOut. Esto reanuda la tarea bloqueada tras el retraso es igual a teOut - 1)
entradas de recuento (marcas) en el reloj del sistema, (iii) pasa la referencia 'MboxErr, un puntero que mantenga
los cdigos de error.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

439

Volviendo M3: La funcin OSMboxPend comprueba as como espera el mensaje * mboxPointer y devuelve
la funcin mss;. Despus de regresar, el buzn se vaca. ^mboxPointer ser ms tarde el punto nulo, porque el
buzn se vaca. Cuando el mensaje no est disponible, se suspende la tarea y bloquea mientras *msgPeinter no es
nulo. Devuelve el puntero NULL si el mensaje no est disponible (msgPointer apuntando a NULL). Las siguientes
macros devolver true, (i) OS_NO_ERR devuelve tardamente, cuando el buzn tiene xito; bsqueda de
mensajes
(ii) OS_TIMEOUT devuelve true, si el mensaje del buzn no tiene xito durante el tiempo de espera definido
para el garrapatas >0; (iii) OS_ERR_penden_isr devuelve true, si esta funcin llamada fue desde el ISR:
(iv)OS_ERR_EVENT_type devuelve true, cuando * mboxPointer no est apuntando a la variable de tipo puntero
para msg.
Paso 39 del ejemplo 9.19 muestra cmo utilizar OSMboxPend para recuperar una cadena de errores, si hay
alguno disponible en el buzn por Task_err. cmo recuperar la cadena de lectura atTask_OutPortB y
especficamente para esperar y bloquear la tarea.
4. Enviar un mensaje a un buzn de correo a travs de IPC. Funcin OSMboxPost bytes sin signo
(SO_EVENT * msgPointer. void *msg) enva mensaje del buzn en el caso del BCE, * msgPointer
puntero. El mensaje enviado est en msg. as como en mboxPointer despus de la publicacin.
Los parmetros de la tarea de pasar M4: El SO_Event *msgPointer pasa como un puntero al BCE que se
asocia con el mensaje. El puntero msg pasa a la direccin del buzn de mensajes *msgPointer.
Volviendo M4: La funcin OSMboxPost () enva el mensaje y, a continuacin, devuelve el cdigo de error
en la ejecucin de las macros como sigue: (i) OS_NO_ERR devuelve true, si la sealizacin de mensajes de buzn
es sucedido, o
(ii) OS_ERR_EVENT_type devuelve true, si *MsgPointer no indican el tipo de mensaje de buzn, o
(iii) OS_mbox_FULL devuelve true, cuando el buzn en msgPointer ya tiene un mensaje que no es aceptada o
devueltos.
Los pasos 24. 30 y 40 en el ejemplo 9.19 mostrar OSMboxPost por las tareas para enviar el mensaje a la
espera de tareas para los mensajes.
5. Buscar datos de buzn y recuperar la informacin de error de un byte sin signo. Funcin de
buzn OSMboxQuery (SO_EVENT * msgPointer, OS_mbox_DATA *mboxData) comprueba los datos
de un buzn y lugares que en mhoxData. Tambin se encuentra la informacin de error de los parmetros.
OS_NO_ERR_EVENT_TYPE para el BCE.
Los parmetros de la tarea de pasar M5: La funcin OSMboxQuery ( ) pasa (i) un puntero del buzn mensaje
creado anteriormente en ^msgPointer y (ii) un puntero de estructura de datos en mboxData.
Volviendo M5: Funcin OSMboxQuery ( ) devuelve informacin del puntero mboxData es una estructura de
datos con el contenido actual del mensaje (OSMsg) y la lista de tareas en espera para el mensaje. El cdigo de
error macro OS_NO_ERR devuelve true, cuando el mensaje del buzn consulta logra u OS_ERR_EVENT_type
devuelve true si MsgPointer no indican el tipo de buzn de msg.

Ejemplo 9.19
Deje que una tarea, tarea_read_PORT_A. despus de que recibe una cadena de mensaje (leer una matriz de
caracteres recibidos en un puerto A), use OSMboxPost enviar un IPC a otra tarea esperando (bloqueado) para
ese mensaje. Una situacin es ejemplar al recibir una llamada el nmero de telfono desde el teclado a un puerto
en el telfono mvil de una tarea y la tarea est esperando para el marcado y la transmisin de la serie despus
de cerciorarse de que el nmero no tiene un carcter no vlido. Lei las tareas en espera
ser Task_OutPortB y tarea__SendPortB. Este ltimo enva el siring para obtener el nmero de telfono al
puerto B tras la espera ha terminado.
A Task_OutPortB, no slo la tarea_read_Poit_A , sino tambin otra tarea, Task_ERR, puede enviar un
mensaje de error en la deteccin de un carcter no vlido o si el lmite de caracteres en la cadena esperada' es
exceedSl. En el presente ejemplo, la aplicacin de la funcin OSMboxPend es para una tarea de esperar un
mensaje, as como para la cadena del mensaje de error (consulte tambin esperar TaskJSenclPortB
OSMboxPend en la tarea, que se ejecuta

440

Los

sistemas integrados

Una rutina de servicio en caso de detectar la cadena de error). Por ejemplo, en un telfono
mvil, TaskjOutPortB puede ser usado como sigue. Cuando no hay ningn mensaje de error y, a continuacin,
establecer la conexin con el servicio de telfono mvil y, a continuacin, marcar y transmitir el nmero
llamado utilizando Task_SendPortB. Cuando hay un mensaje de error, Task_OutPoriB dirige el mensaje 10 otra
tarea, Task_ErrSR. Otra tarea muestra la cadena del mensaje de error advirtiendo al usuario para volver a
marcar el nmero. Los pasos de esta operacin son los siguientes.
1. Paso a: Tarea, ISRjCharlntr interrupciones en el puerto de un estado preparado sobre la disponibilidad
de un carcter. Por ejemplo, el ISR se ejecuta si se presiona una tecla en un teclado de telfono mvil
(seccin 1.10.5). El uso de semforos SemFlagl como en el ejemplo 9.16 es suficiente porque un IPC
ser justo para un evento de interrupcin bandera.
2. Paso B: task_read_Part_una espera el SemFlagl y ejecuta los cdigos que se acumulan los caracteres
en una matriz para obtener una cadena str. OSMboxPost enva un mensaje puntero para la str si ninguna
otra tecla se presiona dentro de un perodo de tiempo de espera.
3. Paso c: task_err comprueba cada mensaje ledo en un puerto y enva una cadena, errStr, en el buzn
cuando el personaje no es un carcter vlido o si el nmero de caracteres se ha sobrepasado el lmite.
Enva el mensaje en el buzn si no tiene caracteres no vlidos. Por ejemplo, el personaje no es un nmero
en caso de un nmero de telfono, el cual es ledo por la tarea en el paso b.
4. Paso cl: TaskjOutPortB espera str y errstr en el buzn. El uso del buzn para el IPCs es entre los
pasos b y d y c y d.
5. Paso e: TaskJSendPortB. Si no hay ningn error, la tarea enva el mensaje de puerto B.
6. Stepf: task_ sendee ErrSR para ejecutar una rutina en caso de error.
Itt ejemplo muestra cmo los pasos a y b por el IPC SemFlagl sincronizar, cmo las tareas en los pasos b y c y
cmo sincronizar los pasos c y d btod y sincronizar mediante el buzn de la MUCOS funciones.
1. /* Definir variable booleana y puntero nulo. Definir cdigos como por ejemplo 9,17 pasos 1 */
ivpedef char intSbit;
#define intBbit boolean false 0 -definir -definir cierto I
;i
Definir un puntero NULL */
-definir nulo (void*) 0x0000

- definir inputCharsMaxSize unsigned byte 16 /* deje el tamao mximo de la cadena de nmero de telfono ser
de 16 caracteres. */
-. /* las definiciones del preprocesador para el nmero mximo de eventos inter-proceso para dejar la MUCOS
asignar memoria para el caso de los bloques de control */
Adeline OS_MAX_EVENTS 12/* permiten eventos IPC mximo ser de 12 *1
OS #define_SEM_ES 1/* permitir la inclusin de funciones de semforo en la aplicacin. */
OS #define_EN_mbox 1/* permitir la inclusin de funciones de buzn en la aplicacin. */
/* final de comandos de preprocesador */
3. /* Prototipo definiciones para ISR y cinco tareas para los pasos a a/por encima. */
Static void ISR_CharIntr (void *IntrVectorPointer);
Static void Task_read_PORT_A (void *taskPointer);
Static void Task_ERR (void *taskPointer); ^
Task_static void *taskPointer OutPortB (void);
Task_static void *taskPointer SendPortB (void);

Sistema operativo de tiempo real programacin-I: MicroC/OS-li y VxWorks

441

Task_static void (*taskPointer ErrSR);


/* Definiciones de cinco pilas de tareas *1
OS static_STK Task_read_PORT_AStack (Task_read_PORT_AStackSize];
esttica OS_STK Task_EnrStack [Task_ErrStackSize|; esttica OS_STK
Task_OutPortBStack |Task_OutPortBStackSize]; esttica OS_STK
Task_SendPortBStack [Task_SendPortBStackSize]; esttica OS_STK
Task_ErrSRStack [Task_ErrSRStackSize];
/* para cinco definiciones de tarea */ tamao de pila
Tarea #define_read_PORT_AStackSize 100 /* definir la tarea 2 tamao de la pila*/
Tarea #define_ErrStackSize 100 /* definir la tarea 3 tamao de la pila*/
Tarea #define_OutPortBStackSize 100 /* definir la tarea 4 tamao de la pila*/
Tarea #define_SendPortBStackSize 100 /* definir la tarea 5 tamao de la pila*/
#defme Task_ErrSRStackSize 100 /* definir la tarea 3 tamao de la pila*/
4. /* Definiciones para cinco prioridades de tareas. */
Tarea_ ReadPortAPriority #define 10 /* definir la tarea 2 prioridad */
Task_EnrPriority #define 11 /* definir la tarea 3 prioridad */
Task_OutPortB #define Prioridad 12 /* definir la tarea 4 prioridad */
Task_SendPortBPriority #define 13 /* definir la prioridad de la tarea 5 */
Task_ErrSRPriority #define 14 /* definir la prioridad de la tarea 6 */
5. Prototipo /* */ definiciones de semforos.
OS_EVENT SemFlagl; / semaphore necesarios cuando se utiliza como indicador para la comunicacin entre
procesos de lSR y CharIntr_task_read_PORT_A (puerto una tarea de lectura) en el puerto una interrupcin */
OS_EVENT SemCharlnvalid; / semaphore necesarios cuando se utiliza como indicador para la comunicacin
entre procesos de task_OutPortB tarea y nmero Transmitir tarea Task_SendPortB. */
OS_EVENTsemCharCountLimitFlag; / necesarios cuando se utiliza como bandera de semforo para limitar el
nmero de caracteres en el valor de la comunicacin entre procesos entre Task_read_PORT_A y TASK_err */
6. /* Prototipo definiciones para los buzones */
OS_EVENT MboxStrPointer; / necesarios cuando se utiliza el buzn mensaje entre pasos I) e i e I y e */
OS_EVENT MboxErrStrPointer; / necesarios cuando se utiliza el buzn de mensaje entre los pasos c y <1 */

7. /* cdigos como por ejemplo 9.7 Paso 3 a S. Sin embargo, antes de que el 'OSStart ( ) ; e l semforo y
el buzn se crea e inicializa como en el paso 6 Ejemplo 9. Es. */
OSSemCreate SemFlagl = (0) /* declarar el valor inicial de semaphore - 0 para usarlo como un evento bandera
de sealizacin*/
OSSemCreate SemFlag2 = (0) /* declarar el valor inicial del semforo = 0 para usarlo como un evento bandera
de sealizacin*/
OSSemCreate semCharCountLimitFlag = (0) /* declarar el valor inicial del semforo = 0 como una
sealizacin del evento
Flag*/
OSSemCreate SemKey = (1) /* declarar el valor inicial del semforo = 1 para usarlo como un recurso clave*/
/* crear buzones para las tareas. */
8. (OSMboxCreate MboxStrPointer = NULL); /* es necesario cuando se utilizan mensajes de buzn entre

pasos
B y D para pasar una cadena de mensaje puntero*/

442

Los sistemas integrados

(OSMboxCreate MboxErrStrPointer = NULL); /* necesarios cuando utilizando el buzn mensaje entre los
pasos b y c para pasar una cadena de mensaje de error puntero*/
9.

9. /* crear cinco tareas, como se muestra en el paso 9 Ejemplo 9.7 Definicin de tarea cinco identidades,
Task_read_PORT_A, Task_ERR, Task_task_SendPoitB OutPortB y y los tamaos de pila, otros parmetros de
TCB. */ OSTaskCreate (Task_ReadJPort_A, void (*) 0, (void *1 &
Task_read_PORT_AS(acfc [Task_read_PORT_ASf"cfcSiMl. Task_ReadPort APriority);
OSTaskCreate (Task_ERR, void (*) 0, (void *1 & Task_ErrSrack (Tas^ErrStackSize],
Task_ErrPriority); OSTaskCreate (Task_OutPortB, void (*) 0, (void *) y TASK_OutPortB5tack
[Task_OutPortB5WC-k5/ce|, Task_OutPortBPriority);
(Task_SendPortB OSTaskCreate, void (*) 0,(void *) & Task_SendPortBSwck [Task_SendPortBS/ac/.'S/ze],
Task_SendPortBPriority);
OSTaskCreate (Task_ERR, void (*) 0, (void *) y TASK_EnStack [Task_Err5/"CK5ize], Task_ErrPriority/;
11-13. /* Los cdigos idnticos a los de los pasos 9 a 21 en el ejemplo 9.16. El ISR se ejecuta en cada
pulsacin de tecla Interrumpir en el puerto */

)/ * final del ISR_CharIntr funcin */

W*

* *V: * *+*

!::: vvv-v-v * vv vv '' -- : ::: :.

:::

: / v ;.

14. /* ejemplo 9.16 cdigos para la tarea_read_PORT_una redefinicin. Para utilizar el buzn*/ static
void Task_read_PORT_ /void *taskPointer) {
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez*/
char *portAdata: boolean encontrar Chrlnvalid (f | chr):
Char (]; /* portAinputSlr puerto permiten una cadena de entrada ser una matriz para contener los datos desde
el puerto A*/ chaiCounl unsigned byte = 0: T para contar el nmero de caracteres ledos desde el puerto. El
contador que indica el nmero de veces que los datos enviados en un bfer (puerto.AinputStr en este caso) que
almacena una secuencia de caracteres, corri menos el nmero de veces que la tarea, que utiliza el carcter
frente al arroyo, corri el bfer frontal */ charlnvaiid boolean = false; /* Inicializar charlnvalid bandera como
false */
Mientras ( / ) { / * iniciar un bucle while infinito y esperar SentFlagl por OSSemPost contabilizacin en
funcin de un personaje-Disponibilidad */
(SemFlagi OSSemPena, 0 SemErrPointer);
15. Port_AInputstr [chrCount] = PortAData;
16. /* Cdigo para leer un byte del bfer que el ISR_CharIntr escribi antes de postear SeniFlag 1 */
17. /* acciones en tamao mximo exceda el tamao del bfer de cadena y se encontr un carcter no vlido */
Si (> inputCharsMaxSize charCount) {OSSemPost (semCharCountLimitFlag);1 /* El Post
semCharCountLimitFlag *1
*'
(Puerto_AInputStr findChrlnvalid) { /* */ para comprobar el cdigo de retorno (chrlnvalid = true);} si
(charlnvalid = = true) (OSSemPost (Semcharlnvalid);

Sistema operativo de tiempo real programacin-1: MicroC/OS-ll y VxWorks

/* para salir del bucle infinito de mayor prioridad esta tarea asignada a lei la menor prioridad Task_ERR,
llamamos a la funcin de retardo de SO, que obliga a una espera de 20 ms (dos os timer ticks) o hasta que se
ejecuta la funcin de reanudacin de retardo. Este es el mtodo para permitir que las otras tareas de menor
prioridad ejecutar */
OSTimeDly (2); /* por retardo de 20 ms (dos garrapatas timer) para dejar la tarea de menor
prioridad_err ejecutar charCount */ /* =0; restablecer el contador de caracteres 0. */
18. ):/* Final de cdigos para la accin sobre el carcter no vlido o que se alcance el lmite de poner
caracteres en el bfer */
19. /*Deje el aumento charCount despus de un personaje ha sido puesto en la cadena manteniendo el flujo
de caracteres*/
++ charCount; I* incrementa el recuento de caracteres */
/* Si un cdigo ASCII para el inicio del texto se encuentra entonces charCount initialize = 0. */
20. Si (portAinputStr [chrCount] = = 0x02) {charCount = 0;);
21. /* otros cdigos en caso necesario */.
22. Cadena para el envo en el buzn si el nmero mximo de caracteres leer ms*
23. /* los cdigos para
Si (chrCount = = input CharsMaxSize) {OSMboxPost (MboxStrPointer. puerto InputStr); de charCount = 0.
Yo
24. /* cuando el personaje es igual al final del texto, cdigo ASCII en un puerto (por ejemplo, pulsar la tecla
Intro) se encuentra enviar el mensaje puntero cadena a la espera de mail box en task_OutPortB y hacer
charCount inicial = 0 de nuevo para la siguiente cadena*/
Si (PortAinputStr {] charCount = = 03)
{OSMboxPost (MboxStrPointer, portAinputStr); de charCount = 0);
25. J ; / * f i n a l d e l b u c l e w h i l e * / O S T i m e D l y ( 2 ) ; / * d e m o r a p a r a

permitir Task_err * / in icio


26. )/ * al final de la tarea_ReadPortA funcin */
27. /* Cdigos de task_err */
Static void Task_ERR (void *taskPointer) { / asignaciones iniciales de las variables y pre-bucle infinito
instrucciones que se ejecutan una sola vez*/
| msgBuffer unsigned byte = 0/* declarar el valor inicial de msgBuffcr = 0 */
/*DccIaration para una cadena de error para utilizar cuando en el paso dan error de carcter no vlido se
encuentra en el buzn, char | ErrSti / = "Se encontr un carcter no vlido":
/* Declaracin de una cadena de mensaje de error para la tarea en el paso d cuando se supera el lmite. */ char
| ErrSir2 = '"caracteres del mensaje ha superado el lmite declarado en la tarea de leer": Invalid Boolean =
false; /* declarar invlida la variable 'false' y se le asignar el valor 'true' en caso de que un personaje se
encuentra invlido. * /
28. Mientras que (i j {/* iniciar el bucle infinito */
29. /* Mensaje ha superado el lmite de Post Mensaje a tarea en el paso <7. */
(semCharCountLimitFlag OSSemQuery, ScmData)
30. Si (SemData -> OSCnt = = 1) {OSMboxPost (MboxErrStrPointer, ErrStr2); (semCharCountLimitFlag
OSSemAccept, 0 *OSTimeDly SemErrPointer); (2););
31. /* para la lectura de cdigos de msg */
(MboxStrPointer OSMboxPend msgBuffer = 0, MboxErrData);

32. /* mensaje de buzn de correos a la tarea en el paso d si un carcter no vlido no se detecta otro carcter
no vlido el mensaje de error Post */

444

Los sistemas integrados

33. (SemCharlnvalid OSSemQuery, SemData);


34. /* SemCharlnvalid (si >0) aceptando la SemCharlnvalid semforo. Tarea dees no suspender incluso si el
semforo no disponible (no > 0). Esta tarea ha de ejecutarse si count es invaled no.
Si (SemData -> OSCnt == 0 && chrlnvalid = = true) (OSMboxPost (MboxErrStrPointer, ErrStrl);
OSSemAeeept (SemCharlnvalid);} else {OSMboxPost (MboxStrPointer, CSTimeDly msgUuffer); (2)}; /* Si los
datos no vlidos de la cadena de error de post o un mensaje en un buzn de errores otro mensaje en el buzn
de correos */ OSTimeDlyResume (Task_ReadPortAPriority; /* reanudar la tarea puerto una carretera*
. Final del bucle while*/
' 3 | / * al final de la tarea_funcin Err */
fi. Los cdigos de la task_OutPortB */ task_static

void *taskPointer OutPortB (void) {


/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez*/ char [ | mensaje; /* declarar libre de error mensaje puntero de cadena*/ char [ | errMessage; /*
declarar el puntero del mensaje de error. */
,'S. Si bien (!) { /* iniciar un bucle while infinito. */
34. Un tiempo de espera de mensaje del buzn disponible (no nulo) */
mensaje = OSMboxPend (MboxStrPointer, 0 MboxErrPointer);
-lit. I* verificar para buzn Mensaje de error disponible (not null) */ enMcssage
= OSMboxAccept (MboxErrStrPointer); if (er;mensaje ! = NULL) {OSMboxPost
(MboxErrStrPointer, errMessage);} ELSE {
F Cdigos para enviar de nuevo el puerto B cadena de caracteres a la tarea de transmisin; el mensaje es probado
para >ee que no tiene caracteres no vlidos o que no sobrepase nunca los lmites de su tamao..*/
(MboxStrPointer OSMboxPost, mensaje);

):
Para salir de l (bucle infinito en mayor prioridad asignada la tarea para que la tarea se ejecute de menor
prioridad, llame a la funcin de retardo de SO para esperar de 20 ms (dos os ahora son ms finos las garrapatas).
Este es el mtodo para que los otros ID de tarea menor prioridad ejecutar el puerto B enviar los caracteres. */
OSTimeDly (2).
41. (TaskJErrPriority OSTimeDlyResume); /* que retrasaron la tarea de mayor prioridad err reanudar. */
/ /* final del bucle while*/
42 }/ * final de la funcin TaskOutPortB */

-5 *********S:--S*s******S******S!****=S*S::5ss:**#S*:SS=*$!S*:S*"" ***$******#*$*/

43. /* Cdigos de task_SendPortB */


."italic iv>/r/Task_SendPortB *utskPoinler (void) {
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez */ unsigned char l J mensaje'.

44.

Mientras ( / ) { / * iniciar el bucle infinito */

45.

I* Espere libre de error mensaje desde Puerto B. si est disponible,


puede recuperarlo. */ mensaje - OSMboxPend (MboxStrPointer, 0
MboxErrPointer);
45.

Sistema operativo de tiempo real programacin-I: MicroC/OS-l! Y VxWorks

1445

46. /* tor cdigos enviando el mensaje vlido a un bfer de memoria donde se guarda o a una red de
transmisin */

47. OSTimeDly (2); /* demora para iniciar la tarea de baja prioridad */ OSTimeDlyResume (Task_puerto
de desembarco//Priorily): /' reanudar retrasado Task_OutPortB */
|: /* final del bucle while*/
48. )/ * al final de la tarea_SendPortB funcin */
F' sj: * * * * * * ** *

* '-t Hs * * * * * * * amarre Sfc * * %% TGF * ** tjt jfc si! * * $ $ Sf-S'-k- $ * 5": *. T-- =>= -fi * ** si:* %j

49. Cdigos de tarea /* */ Err


Void silico Task_EiT (void *laskPoinler) {
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez
*/ char | errMessage; /* declarar el puntero del mensaje de error. */
50. Si bien (!) \ I* iniciar un bucle while infinito. */
51. /* Verifique para buzn Mensaje de error disponible (not null)
*/ errMessage = OSMboxAcccpt (MboxErrStrPointer);
55. /* Los cdigos lor la accin sobre el mensaje de error.
*/ si (.stremp (errMessage, "Se encontr un carcter no
vlido") == 0) {
/* Los cdigos para las acciones que deben tomarse cuando se encuentran caracteres no vlidos. Por ejemplo,
cdigos para mostrar "el nmero marcado no vlido. Volver a marcar" en una pantalla LCD. *1

Si (stremp (errMessage. " caracteres del mensaje supera el lmite


declarado en la tarea de leer") ==0) j
Los cdigos para las acciones necesarias en el lmite
excedido. Cdigos para mostrar en una pantalla LCD "Mensaje loo
largo para aceptar. Volver a marcar". */

OSTimeDlyResume (Tarea. SendPortB): /* reanudar la tarea_.SendPortB


54. ):/* final del bucle while*/
55.

) / * al final de la tarea_err funcin =7

9.2.7 Funciones Queue-Related


Es aprendido de ejemplo 9.18 que el semforo comunica un IPC para la ocurrencia de un evento. Es aprendido
de ejemplo 9.19 que un buzn se comunica un puntero foros mensaje, que puede ser mayor o menor. Utilizando una
cola, podemos comunicar una matriz de punteros del mensaje ihe tareas. El mensaje puede ser punteros (n, publicado
en una cola de las tareas tanto en la espalda como inar/arwor en la parte delantera como en una holgura (un mensaje
de prioridad est publicado en frente.) Una tarea puede insertar un determinado mensaje de eliminacin en el modo
FIFO o en el modo de OVNI. (Nota: La cola de IPC difiere de la estructura de datos cola con respecto a los mtodos
disponibles para insertar un elemento en una cola. El sistema operativo controla la cola de IPC).

446

Los sistemas integrados

Consulte la figura 7.12. MUCOS permite una cola de una matriz de punteros. Deje all un puntero. *:fQlop,
mensaje a una cola de punteros, y hay dos punteros, * QheadPointer y :i:QtaiiPointer, enviar y recuperar, respectivamente, el puntero de
mensajes para el mensaje. MUCOS funciones de cola para las tareas' IPCs son segn la Tabla 9.7. MUCOS permite hasta 65.536 mensajes en una cola punteros (p. ej. el tamao de la
cola MUCOS puede ser 65.536). La funcin post-frontal permite la insercin de tal manera que la tarea de recuperacin en espera LIFO del mensaje-puntero, por lo tanto del mensaje.

I. Creacin de una cola para cm IPC. = OSQCreme OSJEvetu QMsgPointer (void *"QTop, unsigned short
qSizc) se utiliza para crear un so para el BCE QTop y cola es una matriz de punteros a QMsgPointer. El
tamao de la matriz puede ser declarada como mximo 65.536 (Oth a 65,535 elemento). Inicialmente, la
matriz QMsgPointer apunta a NULL.

Cuadro 9.7 las funciones de la cola para las comunicaciones Intertask


Prototipo de servicio y
funcin de reloj del sistema
OS_Event OSQCreate
(void **'QToi>. Unsigned short
qSize)

Void *OSQPend (SO_Event


'QMsgPointer. unsigned short
timeOul. unsigned byte "Qem
*OSQFIush bytes sin signo
(SO_EVENT *QMs"Poitueri

Bytes sin signo OSQPost


(SO_EVENT:;QMsgPointer. void
*QMsg)
Bytes sin signo OSQPostFront
(SO_EVNT ^QMsgPointer, void *
QMsg)
Bytes sin signo OSQQuery
(OS_evento '-'QMsgPointer.
OS_Q_DATA *QData)

Los parmetros
devueltos y pasa

Cuando es este sistema operativo ( S O ) llamado?

RyR

OS crea una cola BCE. Esto crea e inicializa

SyS

una matriz de punteros para la cola en QTop.


Las colas pueden ser de tamao mximo =
qSize. QTop debe apuntar hacia arriba (zeroeth
elemento de una matriz). Puntos al BCE
QMsgPointer.
Consulte el texto.

TyT

UyU

Vy V

XYX

Para eliminar todos los mensajes de la cola que


se han enviado. Esta funcin calzos si una cola
tiene un mensaje en espera en la cola
(QMsgPointer puntero frente al BCE no est
apuntando a NULL). A continuacin, la funcin
devuelve todos los punteros de mensaje entre
la cola delante de puntero y cola puntero al
BCE. devuelve cdigos de error y QMsgPointer
apuntar a NULL.
Enva un puntero del mensaje al QMsgPointer
QMsg en la cola baek. El mensaje se inserta en
una cola (ail puntero en el BCE.
Al QMsgPointer QMsg enva a la cola. Apunta a
la cabeza de la cola de puntero en el BCE
donde el puntero para QMsg almacena ahora
empujando otro mensaje punteros hacia atrs.1
Para obtener la informacin de mensaje de cola
y la informacin sobre el error.

La columna 2 se refiere al prrafo explicativo correspondiente en el texto.


'Usar OSQPost OSQPostFront o funciones segn la prioridad del mensaje, si el mensaje tiene una prioridad
mayor, puesto que en la parte delantera: otro post, como es habitual en una cola. Podemos utilizar post-frontal
y las funciones para construir una cola en la que una matriz de punteros de Mensajes son almacenados y
ordenados de acuerdo a sus prioridades. Cola de prioridad se denomina entonces orden a cola. Uso de y, a
continuacin, habilitar OSQPend OSQPostFront indirectamente un modo LIFO de recuperar un mensaje
puntero al mensaje de prioridad.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

447 !

Los parmetros de la tarea de pasar R: El i sQTop pasa como puntero a una matriz de vacos. La qSize es el si/.Eof
esta matriz (nmero del mensaje punteros que la cola puede insertar antes de la lectura est entre 0 y 65.535).
Volver R: La funcin OSQCreate ( ) devuelve un puntero al BCE asignados a la cola. Se trata de una matriz
de vacos inicialmente. NULL si no hay ninguno disponible.
Ejemplo 9.20 OSQCreate explica el uso de la funcin.
2. Esperando tin I PC el mensaje en una cola. Funcin void *OSQPend (SO_Event ^QMsgPointer, unsigned
short timeOut. unsigned byte *Qerr) comprueba si la cola tiene un mensaje pendiente al BCE
(QMsgPointer QMsgPointer no est apuntando a NULL). El mensaje puntero apunta a la cola delante
(cabeza) en el BCE para la cola definida por QMsgPointer. Se suspende la tarea si no hay ningn mensaje
pendiente [hasta que el mensaje recibido o el perodo de espera, aprobada por el argumento timeOut,
termina despus (timeOut: i) las garrapatas del temporizador del sistema |. La cola puntero de cabeza en
el BCE se incremento posterior al punto hasta el siguiente mensaje despus de devolver el puntero para
el mensaje.
Devolver S: La funcin devuelve el puntero a la cola en el BCE. Tambin devuelve la siguiente sobre la
ejecucin de las macros como en: (i) OS_NO_ERR devuelve true, cuando el mensaje de la cola se realiza
correctamente: la bsqueda (ii) OS_TIMEOUT devuelve true, si la cola no recibi el mensaje durante las garrapatas
definido por el tiempo de espera; (iii) OS_ERR_penden_isr devuelve true, si esta funcin llamada fue desde el
ISR: (iv) OS_ERR_EVENT_type devuelve true, cuando 'QMsgPointer no est apuntando a la cola de mensajes.
Los parmetros de la tarea de pasar S: (i) el SO_evento "QbaekPointer pasa como puntero al BCE que est
asociado con la cola, y (ii) se pasa entero sin signo de 16 bits argumento timeOut. Se reanuda la tarea despus de
la demora es igual a (timeOut: I) entradas de recuento (lame) en el reloj del sistema, (iii) pasa "Err. un puntero para
celebrar el cdigo de error.
Ejemplo 9.20 OSQPend explica el uso de la funcin.
3. Vaciar la cola y eliminar todos los punteros de funcin de mensaje. unsigned hyte :>OSQFlush
(SO_EVENT
*QMsgPointer) comprueba si la cola tiene un mensaje pendiente en QMsgPointer (la cola de
puntero en el BCE no apunte a NULL). La funcin devuelve todos los punteros de mensajes entre colas
y puntero frontal cola puntero en el BCE. Se devuelve un error y eje QMsgPointer al BCE. Estos punto
posterior a NULL en la devolucin de la funcin.
Los parmetros de la tarea de pasar T: El SO_evento "QMsgPointer pasa como puntero al BCE que est
asociado con la cola.
Volver J: Despus de la funcin OSQFlush ( ) ejecuta macros, el error se devuelve como sigue: OS_NO_Err
devuelve true, si la cola de mensajes llusli logra, o SO_ERR_EVENT_type devuelve true si QMsgPointer no est
apuntando a la cola, cola de mensajes.
4. Enviar un mensaje puntero a la cola. La funcin OSQPost bytes sin signo (SO_EVENT *QMsgPointer.
void *QMsg) enva un puntero del mensaje "QMsg. El mensaje QMsgPointer puntero (pointer) cola cola
apunta al QMsg.
Los parmetros de la tarea pasando U: el SO_evento "QMsgPointer pasa como puntero al BCE que est
asociado con la cola cola.
Volviendo U: Despus de la funcin OSQPost ( ). El puntero del mensaje *QMsg se pasa con el mensaje
"el error macros QMsgPointer y devolver el cdigo de error de la siguiente manera: (i) OS_NO_ERR devuelve
true, si la cola lograron sealizacin, (ii) OS_ERR_EVENT_type devuelve true, si "QtailPointer no est
apuntando a la cola y (iii) OS_Q_FULL devuelve true, cuando el mensaje de la cola no puede ser publicado
(QSize no puede exceder un lmite establecido en la creacin de la cola).
. Eaampfifc9,20 OSQPost explica el uso de la funcin.
5. Enviar un mensaje puntero e insertarlo en la cola delante. La funcin OSQPostFront bytes sin
signo (SO_EVENT*QMsgPointer, void *QMsg) enva a la QMsgPointer QMsg puntero en la cola,
pero es en la cola frente puntero en el BCE donde el puntero de QMsg almacena ahora, empujando otro
mensaje punteros hacia atrs.

Los sistemas integrados

448!
Yo

Los parmetros de la tarea de pasar V: la OS..Event *QMsgPointer pasa como puntero al BCE que est
asociado con la cola. El segundo argumento es el mensaje QMsg direccin que es la direccin de la cola.
Reluming V: Despus de la funcin OSQPostFront ( ) ejecuta el siguiente error macros devuelve como en:
1
i) OS_NO_ERR devuelve true si el mensaje en la cola frente est colocado correctamente; (ii)
OS_ERR_EVENT_TYPE vtums true, si la aguja Qtai I puntero no est apuntando a la cola de mensajes: o (iii)
OS_Q"Full devuelve true si fue declarado qSize n y la cola haba n mensajes en espera para la lectura.
Ejemplo 9.20 OSQPostFront explica el uso de la funcin.
B. Consulta para buscar el mensaje de error y la informacin de la cola. La funcin del BCE unsigned hyte
OSQQuery (SO_EVENT *QMsgPoinier. OS_Q_DATA *QData) comprueba la existencia de una cola de
datos y lugares que en QData. Tambin se considera la informacin de error de parmetros, ejecutando las
siguientes macros: OS_NO_ERR y OS_ERR_EVENT_TYPE.
Los parmetros de la tarea de pasar X: La funcin OSQQuery pasadas (i) un puntero de la cola en
*QMsgPointer 't i b y ii) un puntero a la estructura de datos en *QData.
Volviendo X: QData tiene puntero al mensaje en OSMsg, nmero de mensajes a OSNMsgs. Tamao de la
cola OSQSize como en trminos del nmero de entradas permitidas y Lista de tareas en espera para el mensaje.
Despus de la funcin, las siguientes macros devuelve true: (i) OS_NO_ERR, cuando consulta consigue o :II
OS_ERR_EVENT_TYPE, si *QMsgPointer no est apuntando al mensaje de la cola.

Ejemplo 9,20
Deje que una tarea, TaskJReadPortA, recibir caracteres QMsg y poner en una cola. La tarea utiliza OSQPost para
lijar un IPC para otra tarea esperando (bloqueado) para estos caracteres. Una ventaja es que los mensajes pueden
usarse tan pronto nosotros dis la etiqueta por otra tarea sin la culminacin de toda la cadena de mensaje, como
fue el caso en el ejemplo 9.19. El buzn permite slo un mensaje a travs de un puntero de mensajes. Cola
permite que cualquier nmero de mensajes hasta que la cola se llena. Plena significa que el tamao mximo de la
matriz definida para la cola es alcanzado. Otra ventaja es que un puerto no es necesario el envo de caracteres o
bytes, pero puede ser una tarjeta de entrada de red (NIC) o cualquier otro dispositivo de entrada enviando una
palabra, bastidor o un segmento de un mensaje que debe ser enviado a otro esperando en una secuencia de tareas.
Adems, cualquier nmero de mensajes de error se ven; por la task_err tambin puede ser publicado en la misma
cola de mensajes prioritarios. Los cdigos simplificada.
A Task_MessagcPortA. no slo Task_ReadPortA sino tambin otra tarea, Task_ERR, puede enviar un
mensaje de error en delecting un carcter no vlido o si el lmite de caracteres en la cadena esperada se ha superado.
El uso de OSQPostFront es enviar los errores como la prioridad del mensaje. OSQPend se utiliza para esperar un
IPC para el mensaje as como la cadena del mensaje de error. Los pasos de esta operacin son los siguientes.
1. Paso a: ISR, ISRjCImrlntr interrumpir en el puerto de un estado de la disponibilidad de un mensaje. (Por
ejemplo, la tarea se activa si. en el puerto A, se presiona una tecla para enviar el carcter o una red de datos
o un conjunto de nmeros son claves en un teclado de telfono mvil.) coloca los caracteres por mensaje
en portAData buffer. Semforo SemFlagl (como en el ejemplo 9.16) puestos de ocurrencia de un evento
como el IPC.
2. Paso Ir. Task_ReadPortA espera el SemFlagl y ejecuta los cdigos que publique el mensaje, comprueba y,
puestos en frente del error en el mensaje de entrada en una cola comn.
3. Comprueba cada carcter o mensaje ledo en un puerto y enva una cadena, errStr, en una cola de
mensajes generales cuando el personaje o mensaje contiene caracteres no vlidos o la cola de mensajes
est lleno. Por ejemplo, si el carcter o el mensaje no es un nmero en el caso de un nmero de telfono.
4. Paso c: task_MessagePortA espera a los caracteres o mensajes como una matriz de punteros. La tarea
tambin enva los mensajes para mostrar.
5. Paso d: task_ErrLogins tambin espera el mensaje para el error publicado en una cola para los inicios de
sesin de error.

Sistema operativo de tiempo real programacin-!: MicroC/OS-ll y VxWorks

449

Este ejemplo muestra cmo los pasos a y h sincronizar el PC ( SemFlagl, cmo las tareas en los pasos h y
c usar cola sincroniza y cmo los pasos de b a d sincronizar mediante las funciones de la cola de la MUCOS.
1. /* Los cdigos son los mismos que en el paso I Ejemplo 9.19, excepto que las declaraciones se muestran
en negrita para las colas. Instrucciones relacionadas con el buzn son sustituidos por los de la cola de mensajes
relacionados. */

2. /* las definiciones del preprocesador para el nmero mximo de eventos inter-proceso para dejar la
MUCOS asignar memoria para el caso de los bloques de control */
OS #define_MAX_EVENTS 12/* permiten eventos IPC mximo ser de 12 */
OS #define_SEM_ES 1/* permitir la inclusin de funciones de semforo en aplicaciones con
mucos *1 #definir OS_Q_ES 1/* permitir la inclusin de funciones de la cola en las aplicaciones que utilizan
MUCOS */
I* final de comandos de preprocesador */
3. /* Prototipo definiciones para ISR y tareas para los pasos a, b, c y d anteriores. */ static void ISR_CharIntr
(void *!ntrVectPointer);
Task_static void *taskPointer ReadPortA (void): static void Task_MessagePortA (void *taskPointer); static
void Task_ErrLogins (*taskPointer);
4. /* Definiciones para pilas de tareas *1
OS static_STK Task_ReadPortAStack [Task_ReadPortAStackSize]; esttica OS_STK
Task_MessagePortAStack [Task_MessagePortAStackSize|; esttica OS_STK Task_ErrLoginsStack
[Task_ErrLoginsStackSizeJ;
5. Las definiciones de tarea I* */ tamao de pila
Tarea #define_ReadPortAStackSize 100 /* Definir tamao de pila de tareas*/
#defme Task_MessagePortAStackSize 100 /* Definir tamao de pila de tareas*/
Tarea #define_ErrLoginsStackSize 100 /* Definir tamao de pila de tareas*/
6. /* definiciones para las prioridades de las tareas. */
Tarea_ #define ReadPortAPriority 101* definir la tarea 2 prioridad */
Task_ErvPnority #define 11 /* definir la tarea 3 prioridad */
Task_MessagePortAPriority #define 12 I* definir la tarea 4 prioridad */
Task_ErrLoginsPriority #define 14 I* definir la prioridad de las tareas */
7. I* Prototipo definiciones de semaphore */
OS_EVENTSemFlagl', /necesarias para utilizar el semforo como una bandera para la comunicacin entre
procesos entre el estado del puerto, interrumpir, ISR_CharIntr y lectura de puerto tarea Task_ReadPortA
puerto una tarea de lectura espera hasta el semforo de pert un interrupciones y coloca el mensaje en el puerto
un buffer de datos. *1
OS_EVENT SemCowilLimiiFlag', me *necesarios cuando se utiliza el semforo como bandera para alcanzar
los lmites de recuento en el semforo de la comunicacin entre procesos entre el puerto de lectura y lectura
de puerto descifrar la tarea. Lectura de puertos tiene que esperar para lectura de puerto */
OS_EVENT *SemKey; I* necesarios cuando se utiliza el semforo como recurso clave por la task_ReadPortA
y TASK_err */
OS_EVENT *QMsgPointer; / *necesarios cuando usjng mensaje en cola entre los pasos b y d y los
pasos d y e*l
Void QMsgPointer [QMessagesSize]; / *Let el nmero mximo de mensajes en la cola ser punteros
QMessagesSize. */

|450

Los sistemas integrados

OS_EVENT *QErrMsgPointer; / 'necesarios cuando se utiliza un mensaje en cola entre los pasos c y d */ void
'QErrMsgPointer [QErrMessagesSize |; / *Let el nmero mximo de mensajes de error de los punteros en la
cola ser QErrMessagesSize. */
9. /* definir ambas colas tamaos de matriz. */
#define QMessagesSize = 64: /* Definir tamao de mensaje-puntero cola cuando lleno */
#define QErrMessagesSize = 16; /* Definir tamao de mensaje de error-puntero cola cuando lleno */
10. /* para la lectura de cdigos de entrada del puerto desde el puerto A y almacenar un carcter o un mensaje
en una cola o un tampn. Tambin puede modificar el cdigo para leer desde un puerto en NIC o cualquier otro
dispositivo o perifrico. */

11. /* cdigos como por ejemplo 9.7, los pasos 3 a 8. Sin embargo, antes de que el 'OSStart ();', el semforo y
la cola debe ser crea e inicializa como bajo: */
OSSemCreate SemFlagl = (0) /* declarar el valor inicial del semforo = 0 para usarlo como un evento bandera
de sealizacin*/
OSSemCreate SemCouniLimitFlag = (0) /* declarar el valor inicial del semforo = 0 como un evento bandera
de sealizacin*/
OSSemCreate SemKey = (1) /* declarar el valor inicial del semforo = 1 para usarlo como un recurso clave*/
12. /* declarar recuento inicial como 0 como un contador que indica el nmero de veces que una tarea, que
enva en un bfer que almacena un carcter o una secuencia de mensajes, corri menos el nmero de veces que
la tarea que usa el personaje
O mensaje del arroyo corri desde el bfer */
OSSemCreate SemCount = (0);
13. /* crear dos colas para las tareas, una cola de propsito general y otro para los inicios de sesin error
solamente. La cola de errores es mensajes enviados despus de la task_messagePortA selecciona los mensajes
de error de la cola general. */
/* Definir un comienzo del mensaje puntero array. Puntos QMsgPointer al comienzo de los mensajes para
empezar. */ QMsgPointer = OSQCreate (&QMsg [0], QMessagesSize);
/* Definir un comienzo del mensaje puntero array. Puntos QMsgPointer al comienzo de los mensajes para
empezar. */ QErrMsgPointer = OSQCreate (&QErrMsg [0], QErrMessagesSize); /* necesarios cuando utilizando
el buzn mensaje entre los pasos c y d para pasar una cadena de mensaje puntero*/
14.
14. /* Crear tareas segn el paso 3 Definicin de las tareas (Task_ReadPortA, Task_ERR, tarea_.MessagePortA
y TASK_ServiceMessage y los tamaos de pila, otros parmetros de TCB. */
(Task_ReadPortA OSTaskCreale, nula (*)0,(void *) & Task_ReadPortAStack [Task_ReadPortAS/flckS/'z<?J,
Task_ReadPortAPi iority ).
(Task_MessagePortA OSTaskCreale, void (*) 0, (void *) y TASK_MessagePortASr"c/: [Tarea_
MessagesPortASracfcSVze], Task_MessagePortAPriority)(Task_ErrLogins OSTaskCreale, void (*) 0, (void *) y TASK_ErrLoginsStack [Task_ErrLoginsS/aekStze],
Task_ErrLoginsPriority);
15. /* Los cdigos igual que en los pasos 9 a 21 en el ejemplo 9.16 */

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

451

16. )/ * final del ISR_CharIntr funcin */

**+:{!******************S}:******:!:^St** que^^^^"*****************/

17. /* Los cdigos para task_ReadPortA redefinido para utilizar la clave. Bandera y valor de 16 bits y
mailbox*/ task_static void *taskPointer ReadPortA (void) {
I* de las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez
*/*portAdata char [ ].
Char [ | msgBeginStr = "Mensajes
comienzan"; QFull Boolean = False, unsigned
short msgCount = 0.
Bytes sin signo [ ] msgBufferl *Dec!son de valor inicial de msgBuffer *1
/^declarar una cadena de error para el paso d error invalid mensaje datos encontrados a la cola. */
Char [ ] ErrStrl = "Mensaje no vlido"; se han encontrado datos
/* declarar una cadena de mensaje de error para la tarea en el paso d cuando se
supera el lmite. */ char [ ] ErrStr2 = "Tamao de matriz super el lmite. Cola
llena".
Invalid Boolean = false; /* declarar invlida la variable 'false' y se le asignar el valor 'true' al carcter o mensaje
ledo se encuentra invlido. * /
18. /* iniciar un bucle while infinito y esperar SemFlag I I por OSSemPost funcin de carcter o mensaje de
ISR_CharInt Disponibilidad */
Mientras que (I) {
(SemFlagI OSSemPend, 0 SemErrPointer)",
/* Post la cadena para iniciar el mensaje */
Si (msgCount == 0) (OSQPostFront (QMsgPointer, MsgBeginStr);)
19. /* acciones en tamao mximo exceda el tamao del bfer de cadena */
Si ( msgCount > = {OSQPostFront QMessagesSize) (QMsgPointer, ErrStr2);
Qfull = true; msgCount = ();)
/* el cdigo para controlar cualquier carcter no vlido o mensaje en el
puerto un bfer */ si (no vlido = = true) {msgCount = 0; OSQPostFront
(QMsgPointer. ErrStrl);)
};/* Final de cdigos para las acciones en alcanzar el lmite de la matriz de la cola poniendo el mensaje punteros
en el bfer o en la bsqueda de un mensaje no vlido o los datos de caracteres */
20. /* escribir el elemento de la matriz que ha devuelto como un puerto de datos en el
puerto una cadena de entrada */ si (Qfull = = false II vlido = = false)
{OSQPost (QMsgPointer, &portAdata);
/*permiten aumentar el valor del contador de mensajes despus de un carcter o mensaje ha sido puesto en la
cadena, manteniendo el carcter o secuencia de mensajes*/ msgCount ++;)
21. /*Deje Task_MessagePortA comience por retraso */
22. OSTimeDly (2).
23. I* Otros cdigos para leer el puerto tarea*/
25.1; /* final del bucle while*/
26. )/ * Fin de task_ReadPortA funcin */
27. /*
//********************************************************************

I 452 j

Los sistemas integrados

J
28.

/* Los cdigos para el

Task_MessagePortA */ task_static void *taskPointer

MessagePortA (void) {
29. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez */ void * Mensaje;
30. Mientras que (I) {/* iniciar un bucle while infinito. */
31. /* para la cola de espera de mensajes disponible Puntero (not null) */
& mensaje = OSQPend (QMsgPointer, 0 QErrPointer);
32. /* Buscar si el mensaje contiene caracteres no vlidos o los mensajes encontrados en los mensajes de
error. Compruebe que el mensaje de error de cola disponible (no nulo) */
Si (strcmp ((char *), el mensaje "Invalid mensaje DATA FOUND ")==0) (OSQPost (QErrMsgPointer
OSTimeDly, mensaje); (2)};

33.

Si (strcmp ((char *) mensaje , "excedi el lmite de tamao de la matriz. Cola llena") == 0){OSQPost

(QErrMsgPointer OSTimeDly, mensaje); (2);}; OSTimeDlyResume (Task_ErrPriority); /* que retrasa

reanudacin de tareas de mayor prioridad. */


Di mensaje = OSQPend (QMsgPointer, 0 QErr);
34. /* mientras (Strcmp (char *) mensaje, mensajes de "Begin")!
!* Cdigos de servicio como por el mensaje vlido a un bfer de memoria para guardar o en una red o para
marcar y (rnnsmit */)
35. Para salir del bucle infinito en la tarea que se le ha asignado una mayor prioridad y dejar que la siguiente
prioridad Err logins tarea ejecutar, llamemos a la funcin de retardo de SO para esperar de 20 ms (dos os timer
ticks). Este es el mtodo para permitir que las otras tareas de menor prioridad ejecutar. */
OSTimeDly (2);.
56. (Task_ReadPortAPriority OSTimeDlyResume); /* reanudar la tarea retrasada_ReadPortA */
1; /* final del bucle while*/
57.

)/ * al final de la tarea_MessagePortA funcin */

.('k*.*:^**************###**********^**#**#:!::***********##**#**:!: >5 sjc & * * * tj: $ $

5X. /* Cdigos de task_ErrLogins */

Static ro/i/Task_ErrLogins *taskPointer (void) {


. Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez*/ void errorLogged; / Declarar el puntero del mensaje de error. */
59. Si bien //)(/* iniciar un bucle while infinito. */
4, apartado 1. /* Verifique para buzn Mensaje de error disponible
(not null) */ ikeiTorLogged = OSQPend (QErrMsgPointer, 0
QErrPointer);

41. /* Los cdigos para la accin como por el error registrado en */


42. Si (errorLogged = = " Mensajes no vlidos datos encontrados") {
/* Los cdigos para las acciones necesarias de carcter no vlido o mensaje encontrado. Por ejemplo, cdigos
para mostrar "el nmero marcado no vlido. Volver a marcar" en una pantalla LCD. */

13. Si (errorLogged = = " Tamao de matriz super el lmite. Cola llena ") (

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

44. /* Los cdigos lbr acciones necesarias en el lmite excedido. Cdigos para mostrar en una pantalla LCD
"Mensaje demasiado largo para aceptar. Volver a marcar". *1

OSTimeDly Reanudar (Task_MessagePortAPriority); /* */ ServiceMessage reanudar la


|: /* final del bucle while*/
45. | / * al final de la tarea_MessagePortA funcin */

9.3

VxWorks RTOS

Por
sofisticados
sistemas
integrados,
hay
un
popular
RTOS,
VxWorks
de
WindRiver {hup:// www.winclriver.com/). VxWorks es un sistema de alto rendimiento, escalable y Unix-like
RTOS. y apoyo a brazo, ColdFire, MIPS. Pentium, Intel X-Scale, Super H y otros procesadores populares para el
diseo de sistemas integrados. Diseo VxWorks RTOS es jerrquica (Seccin 8.9) y es difcil para las aplicaciones
en tiempo real. Soporta el modo kernel la ejecucin de tareas para la ejecucin rpida de cdigos de aplicacin.
VxWorks es compatible con potentes herramientas de desarrollo que hacen que sea fcil y sencillo de usar.
VxWorks soporta muchas arquitecturas de procesador avanzado. VxWorks admite Device Software
Optimization", que, segn se dice, es una nueva metodologa que permite el desarrollo y el funcionamiento del
software del dispositivo ms rpido, mejor y ms fiable. VxWorks ha demostrado ser el ms popular de las RTO
en una encuesta en 2006 (http://\m\\\embedtled.a>m/colunms/showArticle.jUtinl?artk'lelD=IK7203). VxWorks
6.x es la versin ms reciente.
VxWorks proporciona las siguientes.
1. Entorno multitarea con scheduler que soporta el estndar IEEE POSIX scheduler y que tambin soporta
el programador desarrolladas en la empresa.
2. Admite la posibilidad de ejecutar dos sistemas operativos simultneos en una sola capa de procesamiento.
3. Varios sistemas de archivos (Seccin 8.6.2) y de los sistemas que permiten la funcionalidad multimedia
avanzada.
4. Sincronizacin mediante una gama completa de opciones de IPC (Seccin 7.9) que incluye: (i) la
sealizacin del evento llag. (ii) mutuamente excluyentes acceso mediante clave de recurso (mutex), (iii)
para contar con tres tipos de semforos en las tareas, (iv), (v) la cola de socket y isr e incluye el estndar
POSIX semforo y otros IPCs (Secciones 7.8.3, 7.9 a 7.15 y 8.12). Tambin admite procesos en tiempo
real IPCs. Tambin apoyo openSource T1PC (transparente inter-proceso-communicalion) protocal para
redes y sistemas en cluster de medio ambiente. [PTT l.l es ltimo lanzamiento en diciembre del 2007 para
Linux y VxWorks.]
5. Contexto diferente mecanismo de ahorro para las tareas y los iSRs (tareas independientes y apila TCBs,
ISR y utilizar una pila comn debido a la imbricacin de las llamadas).
6. Temporizadores de vigilancia.
7. 10 dispositivos virtuales incluyen tubos y conectores (apartados 7.14 y 7.15).
8. Las funciones de gestin de memoria virtual.
9. Las funciones de gestin de energa que mejoran la capacidad para controlar el consumo de energa, y
deteccin y notificacin automtica de la memoria comn y otros errores.
10. Las funciones de interconexin que admite un gran nmero de protocolos, incluyendo !Pv4/IPv6 de doble
pila preparada de modo api.

4541

Los sistemas integrados

VxWorks TCB guarda la siguiente informacin de tareas para cada tarea.


1. Informacin de control para el sistema operativo que incluye prioridad, pila sire, estado y opciones.
2. Contexto de la CPU de la tarea que incluye PC, SP, registros de la CPU y las variables de la tarea.
VxWorks tambin ofrece:
1. Los controladores del tubo para el IPCs y tubo 10 es un dispositivo virtual.
2.Tomas de red transparente.
3.Drivers de red para memoria compartida y Ethernet.
4.RAM 'Disco' los controladores de archivos residentes en memoria.
5.Para los controladores SCSI, teclado, pantalla VGA, disco y puerto paralelo de un sistema informtico,
disco duro, disquetes, cintas, teclado y muestra.
6.VxWorks 6.x disposiciones para la capa de abstraccin del procesador. Permite la aplicacin de diseo del
sistema por el usuario cuando utiliza nuevas versiones de una arquitectura de procesador.
VxWorks 10 sistema incluye tambin el estndar POSIX y 10s asincrnica estndar UNIX tamponado IOs.
Tambin prev simulator (VxSim) (Seccin 14.2.3), el software analizador de lgica (WindView), herramienta de
estudio de cobertura de cdigo, MemSeope, el estetoscopio (Seccin 1.4.7 Tabla 1.2) instalaciones de red entre
VxWorks y sistemas de red TCP/IP. Para muchas otras instalaciones, podemos referirnos a VxWorks
Programmer's Guide y la Gua del programador de VxWorks Red proporcionada con el producto.

9.3.1 Caractersticas bsicas


Un resumen de las caractersticas ms importantes de VxWorks que son esenciales en un sofisticado diseo de
sistemas integrados son como sigue:
1.VxWorks es un sistema operativo escalable (slo las necesarias funciones so forman parte de los cdigos
de las aplicaciones, lo que reduce los requisitos de memoria). La funcin configurable en tiempo de
ejecucin proporciona un mayor rendimiento en VxWorks. La functisons necesarios para la tarea de
mantenimiento, IPC y as sucesivamente deben estar definidos en un archivo de configuracin incluida en
los cdigos de usuario. Minimizacin de latencia preventiva est all como no todas las funciones estn en
el kernel (Seccin 8.1).
2. RTOS jerarqua incluye temporizadores, seales, sockets TCP/IP, la biblioteca de funciones de cola. NFS.
RPCs. Puerto de Berkeley y sockets (Seccin 7.15), tubos (Seccin 7.14). Cargador compatible con Unix,
intrprete, shell, herramientas de depuracin y la vinculacin de la pala para Unix. (Estas son similares a
las tareas del sistema. El planificador ejecuta estos, como se ejecuta el ISR).
3. Para multitarea, likeMUCOS, VxWorks emplea un planificador preferente (Seccin 8.10.3). VxWorks es
un planificador basado en prioridad preferente. Disposiciones de 256 niveles de prioridad dentro de 0 a
255. Una tarea contexto guarda rpido cuando el acceso a la CPU cambia a una prioridad superior. Sin
embargo. VxWorks ofrece una flexibilidad que puede haber un conjunto de tareas (tareas distintas de la
misma prioridad), que se ejecutan en tiempo de corte (round robin) modo (Seccin 8.10.2). Cada tarea en
un conjunto de tareas ejecutndose round robin se ejecuta para un determinado nmero de tics del reloj del
sistema y tras el tiempo de espera se convierte en el ltimo en una cola del conjunto. Podemos usar
prioridad preferente y time-slicing programar simultneamente. (Nota: la preferencia y prioridad de
planificacin FIFO POSIX son idnticos).
4. Consulte Ejemplos 9.19 y 9.20. La bandera de interrupcin de ISR fue comprobado y restablecer de nuevo
Interrumpir en ISR_CharIntr e ISR pas un semforo (mensaje) para ejecutar la tarea Task_ReadPortA
esperando. VxWorks RTOS planifica el lSRs~sep:!f'ately y tiene funciones especiales para el manejo de
interrupciones [Refirase a la seccin 9.3.3 Tabla 9.10}.
5. VxWorks tiene funciones de nivel de sistema para RTOS iniciacin y start, tictacs de reloj del sistema
(interrupciones) y la iniciacin de las funciones de ISR, ISR conectando al vector de interrupcin y
enmascarar funciones. Recordar las secciones 7.8.4

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

6.

7.

8.
9.

10.

11.

12.

13.
14.
15.

Y 8.10.3. Por die critical section (Seccin de cdigos que tienen acceso a los recursos compartidos o
variables) en el ISR. VxWorks se interrumpe la activacin y desactivacin de funciones que se ejecutarn
en entrar y salir de la seccin, respectivamente (semforo funciones pendientes como el evento bandera
de sealizacin y el recuento no deben ser invocadas en el ISR).
Si una tarea est esperando un mensaje de otra tarea, que est siendo eliminado mediante la funcin de
eliminacin de tareas y, a continuacin, RTOS inhibe la eliminacin cuando una opcin denominada
'Borrado seguro' es utilizado.
VxWorks hits tarea funciones de servicios (Cuadro 9.8). VxWorks creacin de la tarea (Iniciacin) por s
mismo no realiza una tarea en una lista de tareas activas. Tarea activa significa que se encuentra en uno
de los tres estados; listo, en ejecucin o en espera (bloqueo o pendiente). VxWorks no slo tiene la tarea
de crear, ejecutar, lamentos (bloqueo o espera hasta que un tiempo de espera o hasta de los recursos
disponibles), la suspensin de la ejecucin de la tarea (inhiben) y reanudar, sino tambin las funciones de
la tarea del desove (creacin, seguida por la activacin). VxWorks tambin incluye la tarea pendiente de
la suspensin y cum cum pendiente con tiempo de suspensin de funciones. VxWorks dispone tambin
de las tareas que tienen un estado y una prioridad heredada (Seccin 7.8.5).
VxWorks tiene funciones de retardo de tareas y retrasar la tarea cum suspender la funcin (seccin 9.3.2).
VxWorks tiene las funciones de asignacin de memoria compartida y limita la asignacin del bfer de
anillo para compartir la memoria y bferes entre las tareas y los ISRS. Para mejorar el rendimiento de
VxWorks RTOS, proporciona una direccin de memoria compartida para todas las tareas. Esto permite
un acceso rpido a travs de los punteros. Un tubo no necesita asignar un espacio de memoria
independiente. Por supuesto, existe un riesgo debido a un posible acceso ilegal.
VxWorks IPC tiene funciones que son ms sofisticados que MUCOS funciones. Recordar que .VIUCOS
tiene idnticas funciones semforo de banderas de sealizacin de eventos, resburce-adquisicin de claves
y contando los semforos. Recordar la utilizacin del semforo y OSSemPost OSSemPend SemKey con
funciones en SemKey. SemKey fue utilizada como un recurso-Adquiriendo clave por las diversas tareas
en ejemplos de 9.17 a 9.20. VxWorks proporciona tres tipos de semforos por separado (IPCs y TIPCs
POSIX son adicionales).
VxWorks tiene caractersticas especiales para la exclusin mutua en una regin crtica. Utilizamos un
semforo mutex para la clave de recurso cuando se utiliza VxWorks. |Slo la tarea que tiene la clave de
recurso a travs de un semforo mutex puede liberar (o post) dan la clave. Ninguna otra tarea puede
liberarlo. Esto proporciona la exclusin mutua. | Un tipo de semforos utilizados como mutex tiene las
siguientes caractersticas especiales: (i) una tarea pueden ser protegidos de ser eliminados por cualquier
otra tarea. Por lo tanto, desprotegidos eliminacin no ocurre cuando se utiliza una funcin semaphore
mutex con la opcin de borrado seguro. En el mutex creacin se selecciona la opcin para incluir la
eliminacin de proteccin, (ii) Cuando una tarea adquiere la clave utilizando el mutex inversin de
prioridad puede prevenirse con la opcin ms segura de inversin prioritaria. La asignacin de prioridad
de la tarea de alta prioridad ahora pueden heredar (durante la ejecucin de la seccin crtica) para que en
caso de pre-emption por intermedio de una tarea prioritaria la tarea de alta prioridad no se bloquean
(Seccin 7.4). Esto evita la inversin de la prioridad de las situaciones durante la ejecucin de la seccin
crtica.
Desbloquear la cerradura ( ) y ( ) funciones estn disponibles para las tareas y las interrupciones, para
desactivar otra tarea pero no interrumpe o activacin pre-emption (conmutacin de tareas) como
alternativa al bloqueo de recursos por el semforo mutex.
Las funciones de bloqueo y desbloqueo en VxWorks no causan el problema de la inversin de prioridad
(Secciones 7.8.5 y 8.10.3). La prioridad hereda primero y, a continuacin, regresa a las originales.
Recordemos la figura 7.4(a) de la Seccin 7.7.6 para entender P y V semforos mutex utilizados para el
bloqueo de los recursos. VxWorks proporciona para P y V tambin funciones de semforo.
A diferencia de MUCOS, VxWorks no tiene funciones separadas para el buzn que distinguen el buzn
de la cola de mensajes. VxWorks los mensajes pueden colocarse en la cola. Se prev el envo de mensajes
de longitud variable en las colas. (Las funciones de la cola MUCOS permitir slo un puntero para un

Los sistemas integrados

Y una cola de mensajes es una matriz de punteros). MUCOS mensajes mensajes puede insertar tales que
recuperar en el mtodo FIFO o LIFO en el mensaje si el puntero est asentado en la parte delantera en lugar
de en la parte posterior cuando un mensaje es de alta prioridad. VxWorksalso admite este post y postfrontal caractersticas como en mucos. Hay caractersticas especiales adicionales con las colas de mensajes
de VxWorks.
16. Adems de las colas. VxWorks proporciona el IPCs a travs del tubo (Seccin 7.14) en el que el ISR o
tarea pueden escribir mediante la invocacin de funciones para tubo abierto (). Tarea puede leer desde un
tubo mediante el uso de open ( ) y ( ) funciones de lectura. Un VxWorks tubo es un virtual 10 funciones de
dispositivo (consulte Seccin 9.3.4).
17. Las caractersticas de diseo del programador compatible con POSIX 1003.lb pueden tambin ser
utilizados. La biblioteca POSIX puede ser incluido en el sistema operativo VxWorks.
18. Los cronometrajes adoptadas por los diversos RTOS funciones son similares a las dadas en la Tabla 8.12.
Las siguientes subsecciones describen las funciones VxWorks especfico. .

9.3.2 Biblioteca de Gestin de tareas en el sistema de archivo de encabezado de


la biblioteca
Cada tarea se divide en ocho estados (lugares). Primeros cuatro de stas tambin estn disponibles en mucos tareas.
1. Suspendido (estado idle justo despus de su creacin o estado donde la ejecucin est inhibido). [Consulte
el uso de la funcin para FirstTask OSTaskSuspend en el paso 12 del ejemplo 9.8).
2. Listo (a la espera de ejecucin y el acceso a la CPU en el caso previsto por el programador, pero no espera
un mensaje a travs de 1PC).
3. (la tarea pendiente est bloqueado, ya que espera un mensaje del IPC o desde un recurso: slo entonces el
poder de CPU para procesar ms adelante). [Consulte OSMboxPend OSQPend OSSemPend, y funciones
en 9.16 a 9.201 Ejemplos.
4. Retrasada (enviado a dormir durante un determinado intervalo de tiempo). [se refieren a la utilizacin de
ejemplos OSTimeDly 9.16 a 9.20 J.
3. + Retardada suspendido (retrasado y luego suspendida si no se paraliz durante el perodo de retardo).
6. Pendiente de un IPC + suspendido (pendiente y luego suspendida si el estado bloqueado no cambia).
7. Pendiente de un IPC + retrasado (pendiente y luego adelantado tras el retraso en el intervalo de tiempo).
8. Pendiente de un IPC de un IPC + + retrasado (pendiente suspendido y suspendido despus del intervalo de
tiempo de retardo).
VxWorks y las funciones de la biblioteca del ncleo estn en los archivos de cabecera, vxWorks.h' y 'kernelLib.lf.
Tareas y funciones de la biblioteca del sistema estn en 'taskLib.h' y 'sysLib.h'. Para el registro, la funcin de
biblioteca es logLih.lf. Las funciones de biblioteca son dadas en las tablas 9.8. 9.9 y 9.10. El cuadro 9.8 muestra la
tarea-funcin Slate transiciones. El cuadro 9.9 presenta la creacin de la tarea, denominacin y funciones de control.
La tabla 9.10 da la interrupcin establezca las funciones de vicepresidente.
I. Creacin y activacin de una tarea por TaskSpawn funcin. La funcin de creacin y activacin de tareas
es taskSpawn ( ). Uso de prototipos es unsigned int = taskSpawn taskld (nombre, prioridad, opciones,
stacksize.
Principales, argO, argl, Arg8, arg9). Una memoria asignada a la pila, as como a la TCB. La tarea
Identificado por tasklD se asignar una pila de tamao stacksize con argO a arg9 pasan a la pila. Tambin se
le asigna un puntero de TCB, que seala el punto de entrada de la funcin principal del sistema que se ejecuta
en primer lugar.
Recordar que en mucos estbamos accediendo a una tarea por su prioridad, por ejemplo, argumento
OsTimeDlyResume (Task_ReadPortPriority). Tenemos acceso a una tarea en VxWorks por su
ID, taskiD. [Ver argumento TaskID a las funciones en las siguientes subsecciones). El id es un nmero positivo de
32 bits. Adems, cuando una tarea de taskiD = 0 se refiere, VxWorks asume que la tarea llamada se refiere. ^
Nueva tarea taskiD obtiene el nombre, la prioridad, opciones y tamao de la pila en el desove. Si el puntero nulo
se utiliza como argumento de nombre y, a continuacin, convencionalmente el nombre tiene dos caracteres tN
(carcter t seguido por nmero N) con el prefijo del nombre.

I
457
j

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

Cuadro 9.8 Funciones para las transiciones de estado de tarea


Funcin

VaskResume ( )

Estado actual

Suspendido

TaskActivate taskResume ( ) o ( ).
Suspendido
TaskSuspend ( )
Retrasado
TaskSuspend ( ) despus de un tiempo de
Retrasado
espera
TaskSuspend (J despus de una espera de Pendiente
recursos foros
MsgQSend semGive ( ) o ( ).
Pendiente
O msgQReceive semTake () ()
Listo
TaskDelay ( )
Listo
TaskSuspend ( )
Listo
Tasklnit ()
Desconocida
Salir ()'
Suspendido
TaskDelete ( )'
Suspendido

Siguiente rancio

Retrasado o
pendiente
Listo
Suspendido
Listo
Suspendido
Listo
Pendiente
Retrasado
Suspendido
Suspendido
Terminado
Eliminado

L
____

Funcin anterior llamadaJ antes de


que la llamada o estados anteriores

Tasklnit ( ) (tarea debe haberse


iniciado desde el estado inactivo)
Tasklnit ( )
O taskActivate taskSpawn () ()
Suspendido
Listo
Suspendido
Aplazado o suspendido
Pendiente o Suspendido
Retrasado o pendiente

"Terminar la tarea.
Terminal^ ihe Iree y tareas de la
memoria.

Cuadro 9.9 Creacin de la tarea, Denominacin y funciones de control


Funcin

Descripcin

TaskSafe ( )

Protege la llama de la eliminacin de tareas

TaskUnsal'c ( ).
TaskDelete ( )
TaskRestart ( )
TaskActivate ( )
TaskSpawn ( )

Permite la supresin de la tarea anteriormente protegidas


Elimina una tarea
Reinicia (Crear nuevo)" la tarea en ejecucin como el anterior run
devolvi
un error
Tarea activa
si inicializado anteriormente
Se crea as como activa
Devuelve el nombre de la tarea que se asocia con el pasado como
argumento
Devuelve eltaskiD
taskld que se asocia con el nombre de tarea pasa su
argumento
Verdades si una tarea de taskiD en el argumento est disponible
Devuelve el id de la tarea
Devuelve una matriz de todo listo tasksIDs
Devuelve informacin (parmetros de la tarea)
Devuelve los registros de la tarea
Establece el registro de la tarea
Establece las opciones de la tarea
Devuelve las opciones de tareas definidas anteriormente
Comprueba si la tarea est en un estado de suspensin
Comprueba si la tarea est en estado listo
Devuelve el puntero al bloque de control de tareas

LuskName ( )
TaskNamelD ( )
LasklDVerify ( )
TaskIDSelf( )
TaskIDListGei ( )
Tasklr.foGet ()
TaskRegsGet ()
TaskRegsSet ()
TaskOptionsSet ( )
TaskOptionsGet ()
TasklsSuspended ()
TasklsReady ()
TaskTcb ()

(Canid)

458

Los sistemas integrados

Yo Funclioi
LaskPriorityGet ( )
TaskLock ()
TaskUnlock ( )

LaskPriorilySet ( )
NumTicks kemelTimeSlice (int)

Descripcin
Devuelve la prioridad de las tareas
Se utiliza al principio de la seccin crtica. Se desactiva otras tareas (no ISRsj y
reprogramacin.' prioridad preferente cuando se ejecuta la tarea tbe
Se utiliza en er.d de la seccin crtica en una tarea y permite a otras tareas y, por lo tanto,
la reprogramacin.' prioridad preferente cuando la tarea se est ejecutando despus de que
la seccin crtica
Establece la prioridad entre 0 y 255
Define el intervalo de tiempo por tarea tras activar el round robin de la ejecucin de
las tareas. Cuando numTicks = 50, despus de 50 reloj del sistema interrumpe definir
el perodo de tiempo para cortar en rodajas

"asignar la memoria asignada a la pila y bloques de control al principio.


2programador no bloquear cuando se ejecuta la tarea, aunque una mayor prioridad debe ser programado. 'Scheduler puede bloquear cuando la tarea est en marcha y cuando una
tarea de mayor prioridad debe ser programado.

1. Funcin 'unsigned int taskldSelf ( )' devuelve la identidad del llamado tarea.
2. Utilizando una funcin "unsigned int [ J = taskldListGet listTasks ()' devolver el encargado de la lista de
todas las tareas necesarias en la matriz, lisiTasks.
3. Funcin (taskld tasklDVerify) comprueba si la tarea taskld existe.
El sistema tiene la tarea 99 prioridades y tareas de prioridad ms alta es 100 por defecto. Las prioridades de las
tareas de usuario estn entre 101 y 255. Prioridad ms baja significa tarea de prioridad 255. En VxWorks, el
esquema de numeracin de prioridad inferior es el nmero, ms baja es la prioridad. En POSIX. El esquema de
numeracin de prioridad es el inverso de VxWorks (cuanto menor sea el nmero, menor ser la prioridad). Los
nmeros de prioridad por debajo de 100 se utiliza para el programador de nivel de sistema y procesos de nivel en
mucos VxWorks (a nivel de sistema y procesos de nivel programador utilizar el mayor y el menor ocho ocho
prioridades reservado para ellos).
Una tarea puede utilizar funciones prioritarias. Por ejemplo, existen tres funciones en laskLib. Una funcin
puede encontrar la prioridad utilizando 'taskPriorityGet (taskld. Apriority)". Podemos cambiar la prioridad de las
tareas de forma dinmica. Funcin 'taskPriorityPut (taskld, Nueva prioridad)' volver a asignar
la prioridad = nueva prioridad para la tarea que taskld identidades.
Las opciones definibles en el desove son los siguientes.
1. Una opcin es VX_PRIVATE_ENV. Esto significa que la tarea debe ser ejecutada en el entorno privado.
La tarea no es entonces un entorno pblico tarea.
2. Una opcin es VX_NO_STACK_relleno. Significa que no hay ninguna pila llena con los bytes
hexadecimales (IxEE. (PilaStacksize. VxWorks reservar una parte de la pila como un amortiguador para
proteger la pila de desbordamiento, lo que puede provocar un comportamiento impredecible del sistema. Para
empezar, llena la pila de tarea bytes OxEE. Simulador (cuando se utiliza para la aplicacin VxSim VxSim
VxWorks, agrega un adicional de 8000 bytes para el stacksize. As, las pilas de interrupciones que simula
tambin estn disponibles.) Una funcin de biblioteca, 'unsigned int (taskld checkStack)" devuelve el uso de
la pila. Primero se encuentra el rea de pila no utilizados mediante el recuento del nmero de bytes desde el
extremo con OxEE y, a continuacin, resta cuenta desde el stacksize. - ,;v .(es
3. Una opcin es VX_FP_TASK. Esto significa que la tarea debe ejecutarse con el modo de punto flotante
del procesador. (La precisin es mayor cuando se utiliza el procesador de punto flotante. El tiempo es
menor cuando se utiliza un nmero entero de procesamiento para operaciones de punto flotante).

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

4. Una opcin es VXJJNBREAKABLE. Esto significa desactivar el punto de interrupcin en la tarea


durante la ejecucin: (Los puntos de interrupcin se proporcionan para ayudar durante la depuracin).
\
En lugar de los nombres de opcin, los valores hex, 0x80,0x100. 0x8 y 0x2, respectivamente, pueden utilizarse
forthetfeur opciones descritas anteriormente. Varias opciones pueden darse como un argumento. Por ejemplo, el
VX_PRIVATE_ENV4 VX_NO_STACK_fill selecciona ambas opciones en una tarea cuando el desove. Como la
tarea prioritaria, las opciones pueden reasignarse utilizando alsb taskOptionsSet taskOptionsGet () y () funciona.
(El signo es utilizado entre varias opciones, porque & Sign en C se refiere a la direccin del xito variable).
El argumento principal es la direccin de la rutina principal. MUCOS y para muchos RTOSes, principal () es
la funcin que se invoca por el RTOS primero. Consulte Ejemplo 9.7. La funcin principal es utilizado para crear
una tarea que ejecute primero, FirstTask. FirstTask, cuando se ejecuta posteriormente, inicia el temporizador del
sistema. A continuacin se crea (activa), as como las tareas de aplicacin y suspende a s mismo para dejar que el
sistema operativo programar y ejecutar la aplicacin Tareas. En VxWorks, el principal () funcin analgica puede
ser utilizada. Es programar ().
Cuando se utiliza el sistema operativo VxWorks, a diferencia del sistema operativo Unix o MUCOS (), todas
las tareas pueden ser creadas como pares (es decir, cada tarea es independiente y ninguna tarea llamadas o genera
otra tarea). Esto significa que una tarea se puede es similar a la del ejemplo FirstTask 9.7; a iniciar la tarea (tarea
principal) no necesitan ser engendrado primero. La tarea inicial genera hija las tareas y, a continuacin, se suspende
automticamente para prevenir la programacin del progenitor en mucos. Las hijas en una tarea principal son
engendrados en VxWorks slo cuando el padre es una tarea de servidor que procesa simultneamente la tarea
dependiente.
Diez argumentos de argO a arg9 se pueden incorporar en la rutina principal. Estos argumentos dan a los
parmetros de arranque.
Un punto importante a tener en cuenta es que MUCOS OSTaskCreate crea la tarea, as como la activa (lo pone
en la lista de tareas programadas). Estas funciones son independientes de VxWorks. El taskActivate tasklnit () y ()
tambin puede ser utilizado por separado en lugar de taskSpawn funcin. Sin embargo, a menos que un mayor
control de la programacin es necesario primero por la creacin y, posteriormente, mediante la activacin de una
aplicacin, preferimos utilizar taskSpawn funcin en primera instancia.
Ejemplo 9.23 se explica el uso de la funcin taskSpawn.
2. Suspensin y reanudacin de tareas funclions. Funcin (taskld taskSuspcnd) inhibe la
ejecucin de la tarea identificada por taskld. Funcin laskResume (taskld) reanuda la ejecucin de
tarea identificada por taskld. Funcin taskRestait (taskld) primero se termina una tarea y, a continuacin, genera
de nuevo con sus argumentos originales asignados. Esta funcin se utiliza en determinadas situaciones. La prioridad
podra haber sido reasignado entre, y ahora la prioridad original se restaura. Asimismo, los parmetros de arranque
podra tener que ser restaurado.
3. Eliminacin y protegiendo de eliminacin. Function (taskld taskDclete) no slo inhibe permanentemente
la ejecucin sino tambin anula la asignacin del bloque de memoria para la pila de tareas y TCB. Supresin as
libera la memoria. La tarea eliminados es uno identificado mediante un argumento taskld. Funcin 'exit '
(cdigo) elimina la tarea en s pero que almacena el cdigo en un campo de TCB exitcode. El depurador puede
examinar el TCB utilizando el cdigo.
Una tarea no debe eliminarse cuando se tiene un recurso clave, porque la clave puede nunca ser liberados
en caso eliminado. La proteccin est disponible para la tarea utilizando una funcin taskSafe () antes de entrar
en la regin crtica y utilizando la funcin taskUnsafe funcin () al final de la regin. Cuando se utiliza el
semforo mutex, podemos tambin seleccionar una opcin, SEM_DELETE_safe en el momento de su creacin
(consulte Seccin 9.3.4).
Por qu usamos la tarea eliminar o salir de la funcin? Es debido a que muchas veces los recursos del
sistema tienen que ser reclamados para la reutilizacin; la memoria puede ser un recurso escaso para la
aplicacin dada. La TCB y apilado son los nicos recursos que se recupera automticamente. No hay tareas de
ahorro generado por otras tareas por el kernel. Cada tarea debe ejecutar los cdigos para los siguientes.
1. La asignacin de memoria.
2. Asegurarse de que la tarea de espera obtiene el IPC deseado.
3. Cerrar un archivo, el cual fue abierto antes.

460.

Los sistemas integrados

4. Retrasar una tarea para que una tarea de baja prioridad obtener acceso. La funcin 'int sysClkRateGet"
() devuelve la frecuencia (sistema de garrapatas y as el sistema de reloj de interrupciones por segundo). Por lo
tanto a 0,25 segundos de retardo, la funcin taskDelay (sysClkRate Get ( )/4) se utiliza. Recordar la utilizacin de
OSTimeDly y posteriormente reanudar en mucos OSTimeDly (ver ejemplos 9.16 a 9.20). Esto permite una tarea
de baja prioridad para ejecutarse. VxWorks taskDelay (N.s_Wait) permitir que otras tareas de la misma prioridad
o Bajar para ejecutar (porque el intervalo de tiempo de espera es cero). No retrasa la reanudacin de tareas es
necesaria en la otra tarea prioritaria que se ejecuta despus de esta funcin. Funcin nanosleep (1.000.000) va a
retrasar la tarea por el IMS. Es una funcin POSIX. Argumentos enteros define el nmero de nanosegundos por
la demora (dormir).

9,3.3 VxWorks Funciones del sistema y Tareas del sistema


La primera tarea que un planificador ejecuta UsrRoot es desde el punto de entrada de usrRoot () en el archivo
install/dir/target/config/all/usr/Config.C. Engendra VxWorks herramientas y realiza las tareas siguientes: La raz
termina despus de todas las inicializaciones. Cualquier tarea raz puede ser inicializado o terminado. El conjunto
de funciones, tLogTask, registros de los mensajes del sistema sin tarea actual contexto IO. El daemon (un conjunto
de gran nmero de funciones) apoya la tarea- nivel las funciones de la red. Las funciones de control de excepciones
se encuentran en tExcTask. Tiene la prioridad ms alta. No debe ser suspendido, eliminado o asignado prioridad
menor. Mediante ella, el sistema informa de las condiciones excepcionales que surgen durante la ejecucin y el
planificador de tareas.
Un importante conjunto de funciones que son tambin metas especficas es tWdbTask. El usuario crea a las
solicitudes de servicio de tornado servidor destino. Es una tarea del agente de destino.
'. El reloj del sistema y funciones relacionadas con el Watchdog Timer. VxWorks sysLib es el sistema de
biblioteca y est en su archivo der kemelLib.h. Las siguientes funciones estn presentes.
1. Funcin sysCIkDisable ( ) desactiva el reloj del sistema interrumpe y sysClkEnable ( ) permite que el reloj
del sistema se interrumpe.
2. Funcin numTicks sysClkRateSet (tick) establece el nmero de pulsos por segundo. As, define el nmero
de interrupciones por segundo del reloj del sistema. Funcin sysClkRateGet () devuelve las garrapatas del
sistema (system clock) interrupciones por segundo. sysClkRateSet (100) se establece el sistema de reloj
despus de cada 1/100 segundos (10 ms). Esta funcin debe ser llamada en el principal ( ) o el arranque
FirstTask o como una funcin de arranque. Hay una variable global de 64 bits, 'vxAbsTicks.Baje'.
Descenso variable que aumenta despus de cada marca y vxAbsTicks. Variable "vxAbsTicks.upper" que
aumenta tras cada 2-12 de garrapatas. 'Tick' se define por tipo def de la siguiente forma.

Typedef struct ( unsigned long inferiores; unsigned long superior;


Garrapata )
Marque vxAbsTicks;
/ * Funcin unsigned long tickGet'' ( ) devuelve vxAbsTicks.baje. */
3.
4.

Funcin sysCIkConnect () conecta una funcin C para el reloj del sistema se interrumpe.
Funcin sysAuxClkDisable () desactiva el sistema auxiliar de interrupciones de reloj y sysAuxClkEnable
( ) permite al sistema auxiliar de interrupciones de reloj.
5. Funcin (numTicks sysAuxCIkRatcSet) establece el nmero de pulsos por segundo para un reloj auxiliar.
Se define as el nmero de auxiliares del sistema de reloj de interrupciones por segundo. Funcin
sysAuxClkRateGet () devuelve el sistema auxiliar de tics del reloj (reloj del sistema interrumpe) por
segundo.
6. Funcin sysAuxClkConnect ( ) se conecta una funcin de C para el sistema de interrupciones de reloj del
sistema auxiliar.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

7. L-'unttion 'WDOGJD wdCreate ()' crea un temporizador watchdog. Declaracin wdCreate wdtlD = ();'

crea un temporizador watchdog, que ms tarde se identifica por wdtlD. Hay una uncin (estado,
detayNumTicks wdStart (wdtlD, wdtRoutine, wdtParameter). El temporizador creado comienza en
llamar a esta funcin. Los parmetros que deben pasar los argumentos de esta funcin son los siguientes:
(i) wdtlD para definir la identidad del temporizador watchdog; (ii) para dejar que el detayNumTicks
ahora son ms finos se interrumpe despus de que el nmero de interrupciones del reloj del sistema del
sistema igual a detayNumTicks: (iii) , una funcin denominada wdtRoutine (no tarea o ISR) en cada
interrupcin wdtParameter; (iv) un argumento, que pasa a wdtRoutine. Inicia un temporizador watchdog,
wdtlD cancela el estado de llamadas (wdtlD wdCancel). Un temporizador watchdog, wdtlD de-asigna la
memoria en estado de llamadas (wdtlD wdtDelete).
2. Definicin de cal del intervalo de tiempo del round robin cortes. Funcin de programacin numTicks
kernelTimeSlice (int) controla la planificacin round robin y el reparto del tiempo se enciende y apaga de
planificacin de prioridad preferente para las tareas de igual prioridad. Supongamos que hay un sistema de reloj
cada milisegundo. kernelTimeSlice (50) establecer el perodo de intervalo de tiempo de 50 ms. Este es el tiempo
que cada tarea se pueden ejecutar antes de que la CPU cede el control a otro igual prioridad a la tarea.
Los cdigos #define sysClkRateGet TIMESLICE sysClkRateSet ( ) y ms tarde (1000); (T1MESLICE
kernelTimeSlice); = TIMESLICE TIMESLICE/60'; se establece el intervalo de tiempo = 1000/60 ms.
3. Funciones de manejo de interrupcin. Tabla 9.10 da la interrupcin de las funciones relacionadas con el
servicio. Consulte Seccin 4.4.1. Un dispositivo de hardware interno o fuente de interrupcin (interrupt) grupo de
origen genera automticamente una direccin del vector de interrupcin, ISR_VECTADDR segn el dispositivo,
por ejemplo, el temporizador. Las excepciones se definen en el software de usuario. Para las excepciones,
ISR_VECTADDR necesita ser definido por intVecSet () funcin. Funcin intConnect () conecta el
ISR_VECTADDR a una funcin de C para que el ISR. Controlador de dispositivo utiliza esta funcin como sigue:
una funcin de bloqueo utilizados como 'int = int Lock Lock ();' desactiva las interrupciones. Devuelve un entero
de bloqueo. Utilizando los mismos nmeros enteros como argumento de la funcin unlock, permitimos a las
interrupciones. Una funcin de desbloqueo utilizado como 'intUnlock (bloqueo): permite a las interrupciones.
VxWorks proporciona un diseo de ISR que es diferente de una tarea de diseo.
I. Los ISRs tienen las mximas prioridades y puede adelantarse a cualquier tarea en ejecucin. surge porque
el ISR es necesaria debido a los eventos del dispositivo interno (e. g., de temporizadores on-chip) y porque
de excepciones y seales (interrupciones de software definido por el usuario en ciertas condiciones de
Cuadro
9.10 VxWorks interrumpir las funciones de servicio
error).
Funcin

Descripcin

Funcin

IntLock ()
IntVecSet ()

Deshabilita las interrupciones'


Defina la opcin interrupt vector1

IntUnlock ( )
IntCount ()

IntVecGet ( )

Obtener el vector de interrupcin

IntVecBaseSet ( )

IntVccBaseGel ( )

Obtenga la direccin base del


vector de interrupcin

IntLevelSet ( )

IntContcxt ()

Devuelve True cuando la funcin


de llamada es un ISR

IntConnect ( )

~**Tf * T -j-'r i i xrtiDescripcin


Permite interrupcionesCuenta el nmero de interrupciones
anidan
Establece la direccin de base del vector
de interrupcin
Establece el nivel de mscara de
interrupcin del procesador.
Conecta una funcin C para el vector de
interrupcin

, como

' - Los significados de estos ha sido explicado en el texto. Consulte tambin la seccin 7.7.2. Puede ser utilizado en una
regin crtica (preguntar como ltima opcin, porque aumenta la latencia intemipt perodos de todas las fuentes.
' para 'excepcin' solamente. Dispositivo interno de hardware interrupciones. los vectores de interrupcin son fijos, no se puede
configurar.

462

Los sistemas integrados

. ____

2. Un ISR inhibe la ejecucin de tareas hasta el retorno.


3. Un ISR no se ejecuta como una tarea y no tiene contexto de tareas peridicas. Tiene un especial contexto
ISR.
4. Mientras que cada tarea tiene su propio TCB que incluye su propio puntero de pila, a menos que, y que de
otro modo no permitido por una arquitectura de un sistema speeial o procesador, todos los ISRs utilizan la
misma pila de interrupcin. En caso de este tipo de arquitectura especial, en lugar de interrumpir el
mantenimiento de las funciones de apoyo, VxWorks pilas de ISR puede utilizarse similares a las pilas de
tareas y se pueden definir cdigos similares a los utilizados en los ejemplos 9.19 y 9.20 para la MUCOS
tareas. Cpu 80x86 y R6000 son ejemplos de la especial tirchitectures.
5. Un ISR no debe esperar para tomar el semforo u otros IPC (un ISR no puede utilizar la funcin semTake).
Un ISR no deben llamar 'melloc" () para la asignacin de memoria que utiliza la funcin de semforos.
ISR no deben usar el semforo mutex. ISR puede utilizar contando el semforo para dar (Posting) los
semforos.
6. ISR debe escribir los datos necesarios en la memoria o buffer o post (enviar o dar) un IPC o realizar una
escritura sin bloqueo a una cola de mensajes (Seccin 7.12) para que tenga los cdigos de acceso y la
mayora de sus cdigos, que no son crticos y tomar mucho tiempo, ejecutar en las tareas.
7. ISR no deben utilizar las funciones de punto flotante que stas tengan ms tiempo para ejecutar. Deje que
estas funciones sean pasados a la tarea que se ejecuta los cdigos ms tarde.

J.3.4 funciones IPC


La tabla 9.11 da una lista y una descripcin de las funciones entre procesos. Recordar las Secciones 7.7.1, 7.7.2.1
y 7.7.5. La tabla proporciona las funciones de semforo, Message Queue y tubo.
Las seales de interrupcin de software y funciones son las siguientes: Funcin 'void sigHandler sigNum (int);'
declara . rutina de servicio de seal para una seal identificada por sigNum y una rutina de servicio de seal
registra una seal como ollows: seal (sigNum, sigISR). Los parmetros que pase son sigNum (para identificar la
seal) y seal- el nombre de la rutina, sigISR ervicing. Funcin sigHandler pasa sigNum , as como un cdigo
adicional. La igHandler.Cdigos asociados con sigHandler. Un puntero 9pSigCtx asociados con el contexto de la
seal. El contexto de seal guarda registros de CPU incluyendo PC y SP como un contexto ISR. El regreso de los
estores sigHandler contexto guardado.
Deje sigISR ser una funcin C que servicios de interrupcin de la seal. Deje que su direccin sea ISR_ADDR.
Supongamos que la seal se lentified por sigNum. La funcin 'intConnect (I_NUM_para_IVEC (sigNum), sigISR.
sigArg)' conectar la rutina de servicio de interrupcin (seal) de la seal sigISR identificadas por sigNum al
ISR_ADDR. l_NUM_para_IVEC sigNum) es una funcin que utiliza el argumento de sigNum para encontrar el
contador de programa (PC) asignacin del vector iterrupt y lo utiliza para ISR_ADDR. El argumento sigArg pasa
por utilizar la funcin C.
La sigISR puede llamar a las siguientes funciones.
1. Llamar 'taskRestart ()' para reiniciar la tarea, lo que gener el sigNum. Reiniciando asigna el contexto
original de su creacin. PC original, SP, argumentos y opciones para una tarea restaurar ahora.
2. Llamar 'exit ()' para terminar la tarea, lo que gener el sigNum.
3. Llamar 'longjump" (). Esto se traduce en el inicio de la ejecucin de una ubicacin de memoria. La
ubicacin es el nico que se salv cuando la funcin setjump () se llama.
VxWorks ofrece tres tipos de semforos binarios (flag), mutex y recuento. Tambin semaphore mutex ikes
atencin el problema de la inversin de la prioridad en la seleccin de una opcin en el momento de su creacin.
El uso de un semforo binario proporciona una ventaja sobre desactivacin de interrupciones es que limita
(bloquea) el uso de los recursos asociados eeded en las secciones en las que se requiere de semforo que slo ha
de tomarse.
Una cola se utiliza cuando los mensajes se comi ponen en cola de espera para una o ms tareas. Las funciones
de la cola VxWorks re en una biblioteca, msgQLib, que incluye al usuario antes de usar estos. Para comunicacin
full dplex entre el vo tareas, debemos crear dos colas, una para cada tarea. La mqPxLib funciones son compatibles
con POSIX 003.1 b. Una descripcin detallada de los tres tipos de VxWorks semforos y colas de mensajes es
dada a continuacin.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

Tabla 9.11 VxWorks funciones de comunicacin entre procesos

Funcin

Descripcin

SemBCreate ( )
SemMcreatc ( )
SemCCreate
SeniDelete ( )
SemTake ( )
SemGive ( )
SemFlush ( )
MsgQCreate ( )
MsqQDeletc ( >
MsgQSend ( )
MsgQReceive ( )
PipeDevCreate ( )
Seleccione ( )

Crea un semforo binario1


Crea un semforo mutex1
Crea un semforo de cuenta1
Elimina un semforo
Toma un semforo
Libera un semforo
Reanuda todos esperan tareas bloqueados
Asigna e inicializa una cola para los mensajes
Elimina la cola de mensajes por liberar memoria Ihe
Enva a una cola.
Recibe un mensaje en la cola2 * *
Crea un dispositivo de tubo5
Una tarea espera varios tipos de mensajes, de canalizaciones para los sockets y
serial IQs'1
1
podemos especificar una opcin SEM_Q_PRIORITY para el orden en el que el semforo debera betaken
si hay nmero de lamentos de tareas para el mismo semforo. Especificar SEM_Q_FIFO para definir a tomar
el semforo en modo FIFO. La tarea ms larga espera desde geles que primero.
-La tarea llamada bloquea el mensaje si no est disponible, de lo contrario, el IHE mensaje es ledo por el
lask. Segn el parmetro Option, inserciones en una cola puede ser un pedido uno con prioridad como
parmetro o pedidos para una FIFO basado leer.
'statement estado = pipeDevCreate C/tubo/nombre'. max_msgs, maxjength) crear una named pipe con
nmero mximo de max_nisgs mensajes en longitud de tubera mxima maxjength bytes.
4
bloques de una tarea si el mensaje no est disponible en la cola o manguito y el tubo y buffer estn vacos,
cuando el lask intenta leer el tubo de cola, toma y 10 buffer.
I. Crear un semforo binario del PIPPQ. La funcin 'SEMJ D initialState semBCreate (opciones)' crea tin
sealadas por el BCE SEMJD. Una de las dos opciones mencionadas siguiente debe pasar la llamada a la
funcin.
Paso de parmetros: (i) la opcin! S): Una opcin, que puede ser seleccionada es sem_Q_PRIORITY. (ii) la
otra es sem_Q_FIFO. Supongamos que en un instante, varias tareas estn en el estado bloqueado y ;uc esperando
(pendiente) para un semforo binario para su contabilizacin. Una tarea puede tardar esperando el semforo en
una de las dos maneras siguientes: (a) una tarea de prioridad superior que los dems esperan que toma el primer
semforo, y esto se hace posible por SEM_Q_PRIORITY, opcin, o (b) una tarea que fue fir! Bloqueados y
alcanz el estado de espera, toma el primer semforo entre la espera y esto es posible por el SEM_Q_FIFO opcin.
El estado inicial del semforo binario pasa por argumento initialState. Es SEM_EMPTY cuando se utiliza el
semforo binario como una bandera de sealizacin del evento. Por Ihe initialState. Dos opciones pueden
elegirse: SEM_FULL en la que cre el estado inicial del semforo se inicializa como no disponible y ya
ha tomado: y SEM_EMPTY. en la cual el estado inicial del semaphore creado se inicializa como disponible no
tomados. (Recordar el uso de semforos y en mucos SeniKey SemFlag.) Hay disposicin semaphore mutex es
diferente del de MUCOS SemKey. En MUCOS, y SemKey SemFlag difieren slo valores iniciales definidas para
ellos, el resto de las operaciones son idnticas. El semforo initialState opcin define el estado inicial cuando se
cre.Devolver el parmetro: La funcin semBCreate () devuelve un puntero, *SEM_ID. Devuelve null en caso
de error para el BCE asignada al bitjgry semforo, si no hay ninguno disponible.
Ejemplo 9.21 explica el uso de semBCreate. Supongamos que el RMC_Char!NTR es una rutina de servicio
de interrupcin cuando un byte disponible en un puerto y una tarea lee ese byte despus de esperar la
disponibilidad de semforo de ISR_Charlntr.

Los sistemas integrados

Ejemplo 9.21
1. /* incluyen VxWorks cabezal Hie as como funciones de semforo de una biblioteca.
# Incluir "vxWorks.h"
# Incluyen
''semLib.h" h incluyen
"taskLib.h"
2. /* */ declaraciones los parmetros de la tarea

Ri

2 T- Declarar un semforo binario que se utiliza como indicador. */


SJI.M_fD semBCharlntrFlaglD;
4 I* Cree y pase el semforo binario seleccionado las opciones elegidas. */
'I-mBCharlntrFlaglD = semBCreate (SEM_Q_emp0R1ty, SEM_EMPTY);/* mayor prioridad tareas espera cun
tomar primero. Su estado inicial no est disponible. */

2. T- ISR cdigos de creacin */


<). R- Cdigos para ISR_Charlntr, por ejemplo, para el puerto puttig byte en un bfer */

7. /* al final, realice el semforo binario SEM_FULL de SEM_EMPTY utilizando semGive ()*/


(semBCharlntrFlaglD semGive); /* Seccin 9.34 explica SemGive */
/* el resto de cdigos para el ISR. */ S.

S. /* Fin de ISR_CharIntr cdigos */


Para utilizar semephore binaria, los siguientes puntos arc cuidado.
Ta> declarar el valor inicial como SEM_EMPTY (no disponible)
<b> Utilice semTake ( ) en una tarea, lo que hace que el SEM_FULL para indicar un evento a
otra tarea
Tc) Utilizar semGive ( ) en espera para el evento tareas ejemplo 9.21 mostraron los cdigos cuando utilice
semBCreate ().
2. Estoy esperando una PC para binarios o de otro tipo de liberacin de semforo o comprobar la disponibilidad
de un PC
Su liberacin. La funcin 'STATUS semTake (timeOmY semld, es para dejar una tarea aullad hasta el evento
release
Puedo publicar el cdigo binario o otro tipo de semforo. Espere hasta tanto se contabiliza Semld (dado) por una
tarea o hasta la fecha
Ut ocurre, lo que ocurra primero. Un uso ejemplar es semTake (semBCharlntrFlaglD, WAIT_Forever).
T'A! L'_FOREVER significa timeout = -I y el perodo es infinito. semTake es como funcin OSSemPend
F MUCOS. (En MUCOS. time out = 0 significa esperar para siempre).
Paso de parmetros: (i) semfD es el semforo para que una tarea suspendida espera; (ii) el perodo de tiempo
de espera es meout. Una opcin que puede ser seleccionado es WAIT_FOREVER si espera debe ser hecho para
la contabilizacin de rmID. La otra opcin es NO_WAIT. En MUCOS OSSemAccept Recall function. Cuando
esta tarea es :heduled por el planificador y se llama a esta funcin, tome el semforo identificadas por SemID si
est configurado como vailable SEM_FULL. La tercera opcin, esperar para el intervalo de tiempo de espera. .
,ps
Devolver el parmetro: La funcin semTake () devuelve el estado. Devuelve el estado = OK en el caso de tomar
la semID iccess; de lo contrario, devuelve el error en el caso de un error. Despus de la funcin ( ) iblocks semTake

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

3. Enviar un PC despus de un binario o mutex o conteo semaplioiv release (Posting). La funcin 'STATUS
semGive (semltl)" es para dejar una tarea post (publicar) el binario u otro tipo de semforos. Despus de esto, una
waiung-iask puede desbloquear. La tarea que desbloquea depende de la opcin definida mientras crea el semforo
publicado. Desbloqueo puede ser por opcin SEM_Q_FIFO o como por SEM_Q_PRIORITY.
Pasando el parmetro: winII). Ahora hay que esperar por esta u otra tarea.
Devolver el parmetro: La funcin semGive ( ) devuelve el estado. Devuelve el estado = OK En caso de xito
en la adopcin de las semID. De lo contrario, devuelve "ERROR" en caso de un error que semID no es vlido.
4. Teniendo el semforo varias veces hasta disponible antes de la prxima publicacin. Estado de la funcin
(semFlagll semFlush) es para acallar. Tardar varias veces el semforo hasta disponible antes de la prxima
publicacin. Permite que cualquier tarea de espera no espere ms. Se desbloquea no slo la llamada, sino tambin
todas las dems tareas, esperando tomar el semforo, semFlagID.
El paso de parmetros: el semFlagID pasa como SEM_ID puntero al BCE que se asocia con el semforo.
Devolver el parmetro: La funcin semFlush ( ) devuelve el estado y hace que el estado del semforo
SEM_FULL (disponible) a sem_EMPTY significado no disponible. Devuelve el estado = OK, en el caso de xito
en la limpieza del semforo y haciendo estado semFlagID SEM_EMPTY. Si no, devuelve "ERROR" en caso de
un error de tiempo de espera no est disponible o el semforo el semforo identidad no es vlida. La funcin ( )
semFlush desbloquea todas las tareas en espera esperando este semFlagID (estado = semFlagID SEM_FULL
anteriormente).
5. Crear un semforo mutex para I PCs semaphore Mutex es necesario cuando existe una seccin crtica, que
comparte una estructura de datos o utiliza un recurso compartido con el resto de tareas, por ejemplo, los bytes en
un bfer entre una tarea de envo y recepcin de una tarea o utilizando la memoria flash para operacin de escritura
o escribir en un dispositivo de display). All tambin se pueden compartir los archivos o dispositivos de hardware
entre las dos tareas.
(a) Un uso ejemplar en que estamos usando semforo binario para la exclusin mutua es como sigue:
(i) SEM_ID semMKeylD:
(ii) = semMCreate semMKeylD (SEM_Q_PRIORITY. SEM_FULL).
(b) La funcin SEM_ID semMCreate' (Opciones) es para crear un BCE seala el SEM_ID. Los usos de las
funciones arc semGive semTake y como se ha explicado anteriormente. Supongamos que cuando se entra
en una regin crtica en una tarea (semMReadPortAKey semTake) ejecuta y al salir de la regin crtica.
semGive (semMReadPortAKey) lor utilizando el semforo mutex. semMReadPortAKey. Aqu, debemos
evitar la inversin de prioridad situacin (Seccin 7.8.5) eligiendo una opcin. Otra opcin es para
seleccionar
SEM_Q_FIFO
o
sem_Q_PRIORITY.
Sin
embargo,
cuando
se
seleccionan SEM_SAFE_inversin debemos seleccionar la opcin SEM_Q_pri0R1ty. (razn por la que el
uso de I firmar en lugar de y en el caso de pasar varias opciones por un solo argumento se dio antes en la
seccin 9.3.2).
(c) Otro ejemplo del uso de tres opciones en funcin semMCreate argumento es como sigue. Aqu, la opcin
impide la inversin de la prioridad de la situacin as como protege la tarea de eliminacin de cualquier
otra tarea hasta el semforo est vaco (no adoptado) al final de la regin crtica de una tarea. Las tres
opciones son seleccionados de la siguiente manera.
SEM_ID semMReadPortAKey;
SemMP.eadPortAKey = semMCreate (SEM_Q_PRIORITY |' SEM_inversin_SAFE
| SEM_DELETE_SAFE);
Paso de parmetros: (i) el uso de la opcin entre SEM_Q_PRIORITY y SEM_Q_FIFO es idntica a la del
semforo binario, que se describi anteriormente, (ii) el uso de SEM_inversin_SAFE hace la seccin crtica
mediante la exclusin de la inversin de prioridad situacin segura (seccin 7.8.5). Esto significa que el estado
inicial del semforo creado se inicializa como SEM_FULL (disponible), (iii) Recordar la utilizacin
SEM_DELETE_SAFE. Protege la supresin de esta tarea cuando en la regin crtica.
Devolver el parmetro: La funcin semMCreate () devuelve un puntero, *SEMJD para el BCE asignados al semforo
mutex. Devuelve null en caso de error si no hay ninguno disponible.
Ejemplo 9.22 muestra los cdigos usando semMCreate (). semGive semTake () y ().

466
__ /

Los sistemas integrados

Ejemplo 9.22
1. /* incluyen VxWorks archivo de encabezado, as como la tarea de semforo y funciones de una biblioteca.
*/
# Incluir "vxWorks.h"
# Incluir "semLib.h"
# Incluir "taskLib.h"
/* Declarar un semforo clave para ser utilizado como mutex. */
2. SEM_ID semMReadPortAKey;
/* crea el mutex y pasar las opciones elegidas seleccionado para l. */
= semMCreate semMReadPortAKey (SEM_Q_PRIORITY I SEMJNVERS!ON_SAFE); /* Esto hace el
semforo mutex completo y disponible como conjunto SemKey como yo en mucos. */ semGive
(semMReadPortAKey);
3. /* */ Cdigos de creacin Taskl
4.

/* cdigos iniciales para la Tarea I */

/* Tarea 1 cdigos iniciales termina */


5. Tarea /* */ cdigos de bucle while

6.
(semMReadPortAKey semTake, WAIT_FOREVER): /* Seccin Crtica (recurso compartido o seccin
de datos comienza) */

7.
8.
9.

10.

(semMReadPortAKey semGive); /* Seccin Crtica (recurso compartido o seccin de datos extremos) */


/* restante cdigos de Tarea I */
Tarea2 /* */ Cdigos de creacin

/* cdigos iniciales para la tarea 2*/

/* Tarea 2 cdigos iniciales final */


II.

/ * Tarea 2 bucle while cdigos */

12. (semMReadPortAKey semTake, WA1T_F0REVF,R); /* Seccin crtica


(recurso compartido o seccin de datos comienza) */

13'. semGivtf(semMReadPortAKey); /* Seccin Crtica (datos o recursos compartidos


La seccin extremos) */
14. /* tarea restante 2 cdigos */
J*

* * * * * * * * * * * * * * * * * * * * * * * El sfc * * * * * * * * * * * * * * % * * * * * * * * * * * * * * * * * * * * * *
* * t-f

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

467

Para usar mutex, los siguientes puntos son atendidos.


(a) La seccin crtica que utiliza mutex para la proteccin de los recursos no debera ser innecesariamente
largo y debe ser tan corto como sea posible.
(b) Declarar el valor inicial como SEM_EMPTY (disponible) y usar las opciones para
SEM_DELETE_segura si alguna tarea utiliza taskDelete () cuando se usa seinBCreate.
(c) Utilice la opcin SEMJNVERSION_SAFE si alguna inversin de prioridad situacin pueda surgir y
afectar el funcionamiento del sistema.
(d) Utilice semTake funcionan de la misma tarea semGive al comienzo y al final de una regin crtica en la
que existen recursos compartidos. semTake puede utilizarse de forma recursiva, pero el nmero total de
veces que un semTake ejecuta debe ser igual al nmero de veces que se ejecuta semGive.
(e) No utilice semGive () para la contabilizacin mutex fuera de la regin crtica.
(f) No utilice semFlush () (su uso es ilegal cuando se utiliza el semforo mutex).
6. Crear un semforo de cuenta del PIPPQ. VxWorks contando del semforo (Seccin 7.7.5) es similar a la
del semforo POSIX (Seccin 7.8.3). Se incrementa el desplazamiento (dar) y disminuye en la toma (en espera)por el semforo. Este semforo de contabilizacin hasta 256 veces est permitido antes de tomarla. El estado pasa
a ser igual al valor inicial del semforo de cuenta slo cuando el nmero de veces de semaphore dado equivale al
nmero de veces que se ha tomado. El semforo de cuenta ayuda en bfer enlazado problema, ring-buffer
problema y problema de consumidores y productores (Seccin 7.8.3). Esto lo hemos visto en el ejemplo 9.18. Si
recuento inicial = 0, entonces una tarea esperando al semforo de bloques.
La funcin SEM_ID semCCreate (opciones. unsigned byte initialCount) es para crear un ' BCE seala el
SEM_ID. Una de las dos opciones se debe pasar en la llamada a una funcin. Un uso ejemplar es como sigue:
semCCharlntrFlaglD = semCCreate (SEM_Q_PRIORITY, SEM_EMPTY);\
(a) SEMJD semCID;
(b) = semCCreate SEMJD (SEM_QJ'riority (Prioridad) situado, 0); /* para recuento inicial = 0. */
Paso de parmetros: (i) una opcin que se puede seleccionar es sem_Q_PRIORITY y el otro es sem_Q_FIFO.
Para las primeras obsoletos, se puede elegir dos opciones: o bien initialCount debe pasar como 0 o debe ser un
valor fijo. Depende de si el semforo se utiliza para disminuir el recuento de las tareas que ya estn bloqueados o
(b) para incrementar el escrutinio.
Devolver el parmetro: La funcin semCCreate () devuelve un puntero, *SEM JD. Devuelve null en caso de
error para el BCE asignados a la cuenta .semaphore. Null si no hay ninguno disponible.
Recordar Mucos de ejemplo 9.18, los pasos 11 a 21. Ejemplo 9.23 muestra cmo utilizar VxWorks
semCCreate funcin. Tambin muestra el uso de las dems funciones de VxWorks para tarea de desove y
semforos.

Ejemplo 9.23
1. /* Igual que en los pasos 1 y 2 de ejemplos 9.21 y 9.22. */
2. /* Declarar y crear los semforos funcionan, las variables de identificacin. */
/* declarar SemFlagllD como argumento que pasa a la tarea cada vez que sea necesario. Declarar y
SemMKeylD SemCCountID como mutex y contando los semforos. */
SEMJD SemFlagllD, SemMKeylD, SemCCountID;
3. /* Crear Semaphore bandera y declarar el desbloqueo de las tareas prioridad sabio. Declarar inicialmente
bandera semaphore indisponibilidad. */
= seinBCreate SemFlagllD (SEM_Q_PRIORITY, SEMJEMPTY);
4. / * Crear Semaphore mutex y declarar el desbloqueo de las tareas prioridad sabio. Inicialmente semaphore
mutex est disponible por defecto. */
= semMCreate SemMKeylD (SEM_Q_PRIORITY); /* SEM_Q_PRIORITY I SEM_DELETE_SAFE

Los sistemas integrados

Dos opciones pueden tambin ser utilizados. No obstante, que prolonga el tiempo de ejecucin. No estamos
usando la opcin segura como taskDelete () funcin no se utiliza. Semforo inicialmente (mutex) est disponible
por defecto. */
5. /* crear semforo para contar y declarar el desbloqueo de la prioridad de tareas-sabio,
unsigned initialCount byte = 0.
= semCCreate SemCCountID (SEMLQ_FIFO, initialCount); unsigned
short COUNTJUMIT = 80: /* declarar limitar Count = 80 */
6. /* Declarar y crear la funcin de semforos, sus variables y parmetros. */ void
Task_ReadPortA (SEM_[D SemFlagllD)",
Int readTaskID = Error; /* permiten ID inicial hasta ser generado
ninguno */ int TaskJReadPortAPriority = 105; /* que se d prioridad
a 105 */
Mt Task_ReadPortAOptions = 0; /* que no haya opcin. Espera la SemFlagllD del ISR (ejemplo 3.21). */
Int TaskJReadPortAStackSize - 4096; /* que tamao de la pila es de 4 kB de memoria */
4. /* crear e iniciar una tarea de lectura en el puerto A. El nombre de tarea comienza con 't\ la tarea llamada
funcin es Task_ReadPortA */
= taskSpawn readTaskID ("tTask_ReadPortA", tarea__task_ReadPorlA RcadPorlApriority, Opciones,
Task_ReadPortAStackSize, nula (* Task_ReadPortA) (SEM_ID ), SemMKeylD SemFlagllD,
SemCCountID, &initialCoimt, COUNTJUMIT, 0, 0, 0, 0, 0. 0); I* pasar SemFlagllD como argumento de la
funcin de la tarea y pasar otros argumentos y SemMKeylD SemCCountID como argO y argl. Los argumentos
restantes son 0s. */

Otros cdigos /* */

5. I* Los cdigos para la tarea_ReadPortA redefinido para utilizar la clave. Bandera y contrarrestar*/
-i.nic void Task_RcadPortA (SEM_ID ) { SemFlagllD
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez */ /* : declarar el tamao de bfer para los caracteres countLimit = 80 */ imCount = 0:

-. Mientras que (i)

l /* iniciar un bucle while infinito. Tambin podemos utilizar siempre en lugar de mientras que (I). */
S. *esperar SemFlagllD / cambio de estado a sem_FULL por semGive funcin de disponibilidad de caracteres
Calce tarea */
(SemFlagllD semTake, WAJT_FOREVER);
9. I* tome la clave, de manera que otra tarea, puerto descifrar no desbloquear. Esa tarea necesita SemMKeylD
para desbloquear y urn */
(SemMKeylD semTake, espere^FOREVER); /* SemMKeylD no est ahora disponible y la regin crtica comienza
*/
10. Si (Count > = contar. Lmite) {

YJ* Final de cdigos para la accin en la que se alcance el lmite de poner los caracteres en el bfer */

Sistema operativo de tiempo real programacin-1: MicroC/OS-ll y VxWorks

II.

J 469

/* para la lectura de cdigos desde el puerto A y almacenar un carcter en una cola o bfer*/

12. (SemCCountID semGive); Count ++; /*Vamos contando semaphore aumento de valor porque un
carcter
Se ha puesto en el bfer que contiene el flujo de caracteres. initialCount aumenta debido a la necesidad de
Comparar posteriormente con el COUNTJJMIT*/
13. (SemMKeylD semGive); /* regin crtica termina. Suelte el mutex SemMKeylD para dejar que el
prximo ciclo de
Este bucle inicio */
14.1; /* final del bucle while*/
15. } /* al final de la tarea_ReadPortA funcin */

Un punto que cabe destacar es que no existe ninguna disposicin para establecer el lmite hasta el cual un
Semforo de cuenta puede ser dada (publicado). Se fija en 65.535 en mucos. Por lo tanto, nosotros
Tienen que utilizar COUNTJJMIT variable y comparar con la variable de conteo, que
Incrementos despus de cada funcin 'semGive (SemCCountID)" llamada.
/sts**!{!*
1:*********************:|:****:i:*********:ie**:i:/

**********************-

7. Utilizando semforos POSIX. POSIX funciones semforo tambin puede ser utilizada para VxWorks
contando los semforos. La funcin 'semPxLiblnit (') inicializa el VxWorks biblioteca para permitir el uso de
estos. Las funciones son sem_open ("). sem_close () y sem_UNLINK () para inicializar, cerrar y quitar un
semforo denominado, respectivamente.
Las funciones sem_post ( ) y sem_wait ( ) Bloqueo y desbloqueo de un semforo. Las acciones de estos dos
son similares a semGive y semTake en VxWorks contando semaphore OSSemPend orOSSemPost y funciones de
MUCOS semforos. La funcin sem_getvalue ( ) Recupera el valor de un semforo de POSIX. Las acciones de
la funcin es similar a la OSSemQuery en mucos.
Funciones Semforo POSIX semjnit ( ) y sem_destroy ( ) inicializar y destruir. Destruir los medios de
Sem_trywait ( ) es intentar bloquear un semforo si no disponible y bloqueado por otra tarea.
8. Creacin de una cola de mensajes para el mensaje del PIPPQ. La funcin 'MSG_Q_ID (int maxNumMsg
msgQCreate. int, int qOptionsY maxMsgLength se utiliza para crear un BCE seala el MSG_QJD. Una de las dos
opciones mencionadas siguiente debe pasar la llamada a la funcin. La asignacin de memoria en el buffer, que
contiene los bytes de los mensajes est segn maxNumMsg y maxMsgLength (parmetros para el mximo nmero
y longitud).
Un punto a tener en cuenta es que el mensaje puntero pas en una matriz de punteros en mucos de mensaje
(por ejemplo, 9,20).
En una cola de mensajes, el nmero mximo de mensajes = 2-" - 1 y el nmero mximo de bytes en cada
mensaje es 211 - 1 bytes.
Paso de parmetros: (i) a la funcin maxNumMsg pasa el nmero mximo de mensajes que pueden ser
enviados a la cola, (ii) maxMsgLength pasa el nmero mximo de bytes permitidos para ser enviado como
mensaje.'(iii) una de las opciones que se pueden seleccionar PRI_MSG_NORMAL, cuando el mensaje es enviado
al

Cola para recibir como FIFO. El primer mensaje enviado se lee primero. La otra opcin es MSG_PRI_(JRGENT.
Cuando se enva el mensaje a la cola con esta opcin, el mensaje se recibe como LIFO. Mensajes urgentes

470

Los sistemas integrados

Como inicios de sesin error se envan con esta opcin seleccionada. El ltimo mensaje enviado se lee primero,
(iv) otra opcin que se ha seleccionado es MSG_Q_PRIORrTY. La otra es de MSG_Q_F1F0. Ns permiten
suponer que en un instante, varias tareas estn en el estado bloqueado y estn esperando (pendiente) para un
mensaje desde la misma cola para su colocacin (envo). Espera la tarea puede tardar desde la cola en una de dos
formas: (a) una tarea de prioridad superior que el otro espera, lleva el mensaje de la cola primero. Esto es posible
mediante la MSG_Q_antes!opcin TY, (b) una tarea, la cual bloquea primero y ha alcanzado el estado de espera,
toma el mensaje de la cola de espera en primer lugar entre los queridos. Esto es posible por MSG_Q_FIFO
opcin.
Devolver el parmetro: La funcin msgQCreate ( ) devuelve un puntero *MSG_Q_1D. Devuelve null en
caso de error para el BCE asignados a la cola de mensajes. Null si no hay ninguno disponible o en error.
Considerar las tareas en un dispositivo de mano. Las tareas post los mensajes en cola usando msgQsend ().
Un bfer de escritura en la memoria flash en una tarea recibe los bytes utilizando MsgQReceive ().
9. Enviar un IPC despus de enviar un mensaje a la cola. La funcin 'STATUS msgQSend (msgQkl,
&buffer, numByles, timeOut msgPriority)" se utiliza para dejar una tarea enviar a la cola.
Paso de parmetros: (i) La cola identifica por msgQM. (ii) Mensaje puestos a un bfer dirigido. El nmero de
bytes enviados en el bfer = numBytes. (iii) El tiempo de espera es el perodo que media hasta la publicacin del
mensaje es esperado en el caso de que la cola est llena, (iv) se especifica como msgPriority MSG_PRI_NORMAL
o MSG_PRI_URGENTE, dependiendo de si el mensaje se inserta ms adelante para recuperar en el modo FIFO
o LIFO, respectivamente.
Devolver el parmetro: La funcin msgQSend ( ) devuelve el estado. Devuelve el estado = OK En caso de
xito en la adopcin de las msgQId; de lo contrario, devuelve "ERROR" en caso de un error que msgQId no es
vlido.
Ejemplo 9.24 muestra cmo utilizar las funciones de la cola para crear y enviar.

Ejemplo 9.24
1. /* Los archivos de encabezado en Fnclude ejemplo 9.22 Paso 1, as como las funciones de la cola de una
biblioteca. *1
2. # incluir "msgQLib.h"
3. /* declarar la identidad de la cola de mensajes y Mensajes tipo o estructura de datos. */
4. MSG_Q_ID portAlnputlD\
5. Bytes sin signo portAdata;
6. Void * Mensaje; /* Puntero para el bfer de mensaje */
7. I* crear la identidad de la cola de mensajes y pasar los parmetros y opciones elegidas seleccionados para
ti y deje que el nmero mximo de mensajes sea 80 y el mensaje sea de I byte cada uno.
Supongamos que task_ReadPortA lee un byte desde un puerto y lo enva a otra tarea que recibe los
mensajes de una cola tras esperar la disponibilidad de mensaje de cola. */
8. PortA/nputID = msgQCreate (80,1, MSG_Q_F1F0 I MSG_PRI_NORMAL)
9. /* Los cdigos de Creacin de Tarea como en el ejemplo 9.23. */
10. .
11. .
12. /* Inicio Cdigos para task_ReadPortA. */
13. Void Task_ReadPortA {
14. .
15. Si bien () {
16. (SemFlagllD semTake, WAIT_FOREVER);
17. /* la clave para no dejar puerto descifrar desbloquear y ejecutar tareas. Por lo tanto, esta tarea tambin
necesita
SemMKeylD para correr. */
ff>
18. (SemMKeylD semTake, WA1T_F0REVER); /* SemMKeylD no est ahora disponible y la regin crtica
comienza */

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

471
V __

19. .
20. .
21. /* al final, el enviar el byte, que es ledo en el puerto A. Es enviado como un mensaje a la cola
PorlAlnpullD.
22. *MENSAJE = portAData;
23. (portAinputID msgQSend, &mensaje, YO NO_Rfaga, MSG_PRI_NORMAL);
24. /* los cdigos restantes para la tarea. */
25. .
26. .
27. }
28. }/* final de Task_ReadPortA cdigos */
10. Esperando en una cola para disponibilidad de tnessage. La funcin 'int msgQReceive (msgQId,
&buffer,
MaxBytes, timeOut)" se utiliza para dejar una tarea espere hasta el envo (Posting) de un mensaje. Espere
hasta bien msgQSend
Funcin enva el mensaje en una tarea o hasta que ocurra una de cal, lo que ocurra primero.
Paso de parmetros: (i) cuando el planificador horarios esta tarea y se llama a esta funcin, hay un
Espere a que aparezca un mensaje sealado por msgQId. (ii) buffer es la direccin de la reserva, (iii) es el
mximo maxBytes
Nmero de bytes aceptable por mensaje por funcin msgQReceive, (iv) el tiempo de espera es el perodo de
tiempo de espera. Uno
Opcin que se puede seleccionar es el wa1T_F0REVER si espera debe ser hecho para enviar el mensaje por
msgQSend
Funcin. La otra opcin es NO_WAIT. En MUCOS OSQFlush Recall function. NO es simplemente la opcin
Wait
Utilizado para la comprobacin de la disponibilidad de un mensaje. Mensaje recibido desde el bfer si se ejecuta
la tarea de otra disponible
Otros cdigos posteriores. En caso de mensaje de error, por ejemplo, no hay que esperar, especialmente para el
mensaje.
Slo comprobar el mensaje de error es necesaria.
Devolver el parmetro: La funcin msgQReceive () devuelve un entero para el nmero de bytes recuperados
Desde la direccin de bfer.
9.25 Ejemplo muestra cmo utilizar la funcin msgQReceive.

Ejemplo 9.25
I. A 9. /* Los cdigos segn se indica en los pasos 1 a 9 en el ejemplo 9.24 */
10. /* Los cdigos para la tarea_MessagePortA */
Task_static void *taskPointer MessagePorlA (void) {
II. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
15.
);/* final
MaxBytes
int =del
80;bucle while*/
16.
)/
*
al
final
tarea_MessagePortA
funcin */
*/
12. Si bien (!) {de
/*la
iniciar
un bucle while infinito.
//**********************************************************************
13.
/* Espere un mensaje de la cola de envo o disponibilidad. *1
(msgQId msgQReceive, mensaje maxBytes, WAIT_FOREVER); /* WAIT_FOREVER significa
Timeout = -1 y el perodo es infinito. */
14. /* */ Cdigos restantes

472

Los sistemas integrados

11. Utilizando colas POSIX. Puntos importantes en el uso de las colas de POSIX son como sigue.
(a) La funcin mqPxLiblnit ( ) inicializa la biblioteca VxWorks para permitir el uso de colas de POSIX.
(b) Las funciones mq_open(), mq_closc( )una<J mq_unlink() inicializa, cerrar y quitar un nombre de
cola.
(c) La funcin mq_setattr ( ) establece el atributo de una cola de POSIX.
(d) Las funciones mq_send ( ) y MQ_receive ( ) Bloqueo y desbloqueo de una cola.
(e) La funcin mq_notify () de seales a una sola tarea espera que el mensaje est ahora disponible. El
anuncio es exclusivo para una nica tarea, que ha sido registrado (registered notificacin foros
significa ms tarde toma nota del mq_notify). Esta disposicin es muy til para una tarea de servidor.
Una tarea de servidor recibe la notificacin de una tarea de cliente a travs de un manejador de seal
como una funcin (ISR).
(0 La funcin mq_getattr () recupera el atributo de una cola de POSIX.
(g) La funcin POSIX de colas MQ_UNLINK ( ) no destruye la cola inmediatamente pero impide que
las dems tareas de uso de la cola. La cola se destruyo slo si la ltima tarea se cierra la cola. Destruir
los medios de asignar la memoria asociada con la cola BCE.
VxWorks colas tienen las siguientes caractersticas adicionales: (i) la opcin de tiempo de espera puede ser
utilizado, (ii) dos opciones, FIFO y la prioridad de las tareas para colas espere por mltiples tareas. POSIX colas
tienen las siguientes caractersticas adicionales: ask notificalion en caso de una nica tarea de espera est
disponible y puede ser de 32 niveles de prioridad de mensaje en lugar de un nivel de prioridad urgente en
VxWorks.
12. Creacin de un dispositivo de tubo para leer-escribir en mi PC. Cuando una tarea se crea, un taskID asigna
(Seccin 9.3.1). Cuando se utilizan las funciones relacionadas con la tarea, el nmero facilita la tarea de identidad.
Anlogamente, un tubo (Seccin 7.14) o hembra (Seccin 7.15) o archivo (Seccin 8.6.2) cuando se crea un
descriptor de fichero se crea la estructura de datos y un nmero, por ejemplo, FD se asigna para identificar el
dispositivo creado. El nmero es asignado despus de examinar el conjunto de los nmeros ya asignados. Cuando
se utilizan las funciones relacionadas con el dispositivo, el nmero facilita la identidad de dicho dispositivo. La
funcin del dispositivo ejemplos son abrir o leer o escribir u obtener el atributo o conjunto de atributos o cerrar
(Seccin 8.6).
Un tubo en VxWorks es una cola FIFO, el cual es administrado por la cola no tengo PC funciona pero por las
funciones de controlador de dispositivo. VxWorks tiene funciones de administracin para un tubo conductor (como
un controlador de dispositivo)pipedrv. Esto es anlogo a la named pipe conductor en Unix. Tambin tubos de
implementar el enlace unidireccional entre un conjunto de tareas.
Funcin pipcDevCrcate ('tp\pdpipe Nombre'. maxMsgBytes maxMsgs) crea un dispositivo llamado tubo . Para
mxima tnaxMsgs peName mensajes. Cada mensaje puede ser de tamao mximo maxMsgBytes. entra en una lista
de los dispositivos de creacin, devs ( ) Esta funcin recupera la lista de dispositivos con el nmero de dispositivo
asignado
cada dispositivo, incluyendo dispositivos de tubo.
Considere un ejemplo para crear un tubo denominado pipeUserlnfo. Suponga que puede tener un mximo de
mensajes Tour: nombre de usuario, contrasea, nmero de telfono y direccin de e-mail ID. Cada uno de estos
puede ser de un tamao mximo de 32 bytes. Una variable global fd es un nmero entero para un descriptor de
archivo que identifica un dispositivo entre un nmero de dispositivos en el sistema 10. El dispositivo puede ser un
archivo o un tubo u otro dispositivo. Ejemplo 9.26 explica los cdigos para la creacin, la escritura y la lectura.

's

Ejemplo 9.26
1. # incluir "fioLib.h" /* Se incluyen las 10 funciones de
biblioteca. */ pipeDrv ( *); yo Instale un tubo conductor. *1
2. /* declarar el descriptor de fichero. */ int fd',
3. Modo I* se refiere a los permisos en un servidor de archivos de red (NFS). Se reinicia en modo 0 para
permiso irrestricto. */
Int mode;
4. I* crear una canalizacin nombrada como pipeUserlnfo para 4 mensajes, cada uno de 32 bytes como mximo.
*/

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

("IpipdpipeUserlnfo pipeDevCreate", 4, 32): modo = 0x0;


Los mensajes pueden ser escritos en un tubo por la funcin abriendo primero un tubo, dispositivo y, a
continuacin, escribiendo en eso. La funcin de apertura est abierto ('Ipipdpipe User Info", rdwrFlag, modo).
Definimos indicador = 0_RDWR, que permite leer y escribir. Pabelln 0_RD0lo permite la opcin Slo
lectura y pabelln 0_WR0lo permite la opcin de slo escritura. Recuerde que despus de abrir un tubo,
cuando se termine de usar el inodoro, debe utilizar la funcin 'STATUS cerrar ()". Escrito a un tubo es similar
a escribir en un dispositivo 10. Para escribir, la codificacin es como sigue.
5.1* Abrir dispositivo de lectura-escritura de la USI ng, un tubo denominado pipeUserlnfo con mode=0 para
permiso irrestricto.
*/
Fd '= abierta ("/tubo/pipeUserlnfo_RDWR", 0, 0); /*un descriptor de archivo es usado para un archivo o un
tubo o un dispositivo de serie o cualquier otro tipo de dispositivo. */
6. /* Escribir un mensaje, info de IBytes. */
Char [ ] info'. Deje que el mensaje sea una cadena de
caracteres. */ int IBytes;
IBytes =12;
Escritura (fd, info, IBytes);
El mensaje se puede leer desde un tubo abierto por la funcin 'int leer (fd, &buffer, IBytes)1.
Lectura de un tubo es anlogo a la lectura desde un dispositivo 10 como por el descriptor de archivo.
J
Para leer, la codificacin es como sigue.
Ji
7. Int numRead; /* Un nmero entero que indica el nmero de bytes ledos con xito.* /
Ml
IBytes =12;/* dejar el mensaje de bytes para leer = 12*1
NumRead = Lectura (fd, info, IBytes);

Ml

13. Encontrar el conjunto de dispositivos abierto en una instancia desde el nmero de dispositivos en el
sistema. recapitular las funciones del evento en la seccin 8.4. Asumir que todos los bits son borrados en el
momento de la creacin de un grupo de bandera. Un registro guarda los bits que en la ocurrencia de los eventos
de la serie de fuentes. Cada evento establece un bit. Una tarea puede esperar para establecer cualquier o todos los
eventos del grupo.
Anlogamente, hay FD_SET. FD_SET Establece una funcin de descriptor de archivo. Cada dispositivo en
un sistema con un nmero de dispositivos establece un bit en el fdSet. (un descriptor de archivo se utiliza para un
tubo o socket o dispositivo serie u otro tipo de dispositivo. Deje que un descriptor de fichero fd = n; hay una matriz
de bits en la que el n-simo bit corresponde a fd = n).
Funcin ahora, FD_SET (n, &fdSet) define la estructura de datos , al ejecutarse fdSet har ensimo bit = set.
FD_SET (m, &fdSet) hace que el mth bit = set. FD_CLR (n, &fdSet) harn del ensimo bit = claro. FD_ZERO
(&fdSel) hace que todos los bits de matriz = 0. FDJSSET, &fdSet (n) devuelve true si el n-simo bit en la matriz
est establecida y false si se restablece en fdSet.
Ahora, examinemos cmo una tarea selecciona y encuentra el nmero de dispositivos activos en una instancia.
Tarea encuentra si un tubo, pipeUserlnfo est activo o un pipeResponse est activo. La funcin a seleccionar es
"int seleccione (pointerReadFds pointerWriteFds numBitWidth,,,,) pointerTimeOut pointerExceptFds. Los
argumentos que se pasan son los siguientes: numBitWidth = nmero de bits para examinar en la matriz de bits en
dos punteros, y pointerReadFds pointerWritedFds. Examen segn el valor en una estructura que almacena el
valor NULL si esperar eternamente o un valor de tiempo de espera. Timeout es el nmero de interrupciones de
reloj del sistema hasta que la espera ha terminado. Seleccione la funcin () bloquea la tij.l a l^ist un dispositivo en
la matriz de dispositivos est listo o hasta la hora de salida, lo que ocurra primero. Seleccione borra todos los bits
que corresponden a los dispositivos que no estn preparados y devuelve el nmero de dispositivos activos. Devuelve
el error en un error.

474

Los sistemas integrados

Resumen
El siguiente es un resumen de lo que hemos aprendido en este captulo.
Las funciones bsicas de la RTOSes y tipos de RTOSes.
Es una necesidad para utilizar un bien probado y depurado RTO en un sofisticado sistema integrado de
multitarea. MUCOS y VxWorks RTOS importante son las dos.
Elegancia de cdigo es uno de los mejores en mucos y el suministro de potentes funcionalidades es uno de
los mejores de VxWorks.
Creacin y eliminacin de tareas MUCOS, suspender y reanudar las funciones son utilizados para las tareas
de control y funciones de programacin.
Hay funciones para iniciar el temporizador del sistema en mucos. A partir de un sistema multitarea por una
primera tarea y posteriormente suspender para siempre se muestra como una tcnica de programacin en
un sistema multitarea.
MUCOS gestiona y planifica las tareas y asas de ISR y planificacin preventiva.
No ate la demora y demora en mucos reanudar las funciones. Estos han demostrado ser tiles para permitir
que una tarea de baja prioridad.
MUCOS el IPC tiene funciones para la bandera del evento grupo, semforo, buzn y cola. La sencillez
caracterstica de MUCOS es que la misma se usan funciones semforo por semforo binario, para
sealizacin de eventos bandera, para clave de recurso y el recuento.
MUCOS tiene funciones de buzn y una sencilla funcin que un puntero tiene un mensaje de buzn por
buzn. Puede haber cualquier nmero de mensajes o bytes, siempre el mismo puntero accede a ellos.
MUCOS tiene las funciones de la cola. Una cola de tareas desde un remitente recibe una matriz de punteros
de mensaje. Mensaje de insercin punteros' pueden ser tales que posteriormente se puede recuperar en el
mtodo FIFO, as como en el mtodo LIFO de una cola. Depende de si el post fue utilizado o post-frontal
funcin fue utilizado, respectivamente. Esto ayuda a tomar nota de un mensaje de alta prioridad en la cola.
VxWorks es un popular se centr ampliamente RTOS debido a sus potentes herramientas de desarrollo,
apoyo a las arquitecturas de procesador avanzado y optimizacin del software del dispositivo.
VxWorks es compatible con varios sistemas de archivos, sistemas que permiten la funcionalidad multimedia
avanzada y entorno multitarea con VxWorks scheduler, POSIX Scheduler o Planificador desarrollado en
casa.
VxWorks es compatible con la capacidad de ejecutar dos sistemas operativos simultneos en una sola capa
de procesamiento (por ejemplo, VxWorks y Windows o VxWorks y Linux incrustado).
En lugar de crear una funcin, VxWorks tiene tres funciones: la tarea de crear, activar la tarea y la tarea
desovar (crear y activar).
VxWorks tambin proporciona funciones de temporizador del sistema auxiliar del sistema, funciones de
reloj, Watch Dog Timer funciones, retardo y reanudar las funciones de retardo.
VxWorks gestiona y planifica las tareas y funciones para el ISR de manera diferente. Asigna prioridades
mximas para el ISR sobre las tareas y proporciona isr anidados y, por tanto, una pila comn de la ISR.
VxWorks tiene un IPC llamado signal. Se utiliza para el control de excepciones o interrupciones del
manejo de las tareas. VxWorks tiene rutinas de mantenimiento de seal. Una rutina de servicio de seal
es una funcin de C. Se ejecuta sobre la ocurrencia de una interrupcin o excepcin. Una funcin de
conexin conecta la funcin con los vectores de interrupcin.
Las excepciones son las interrupciones de software. Una seal de valor es equivalente a un valor de marca
en el caso de interrupciones de hardware.
VxWorks proporciona para la planificacin preventiva as como el round robin en rodajas de tiempo
programacin de tareas asignadas de igual prioridad.
VxWorks prev dos formas en las que una tarea pendiente entre las tareas pendientes puede desbloquear.
Uno de ellos es segn la prioridad de las tareas y el otro es como un FIFO al aceptar (tomar) un IPC.
VxWorks tiene tres diferentes funciones semforo para uso como IPC para la sealizacin del evento
bandera, clave de recurso y el recuento de semforo. VxWorks tambin admite semforos POSIX.
VxWorks, en lugar de poner en la cola el mensaje slo punteros, ofrece para la cola de mensajes. Las colas
pueden utilizarse como como en MUCOS LIFO. VxWorks tambin admite la utilizacin de tubos y colas
de POSIX. VxWorks tubos son la cola FIFO que pueden abrirse y cerrarse como un dispositivo de archivo.
Los tubos son como 10 dispositivos virtuales que almacene los mensajes como FIFO.

Sistema operativo de tiempo real programacin-I: MicroC/OS-ll y VxWorks

475

Palabras clave y sus definiciones


Contando el
semforo de
sealizacin de
eventos pabelln
exception handling
ED set
Descriptor de
archivo
Archivo de la cola
de mensajes del
buzn de correo del
dispositivo
Seal
El tubo
Sofisticado sistema
embebido
multitarea
Colas de semforos
temporizador
sistema.
POSIX POSIXdel
clave
de recurso

Retraso de
tarea
Tarea MUCOS
desove VxWorks
creacin de
tareas
La eliminacin
de tareas
reanudacin de
tareas de
suspensin de
tareas

Es un semforo que se incrementa cuando el IPC est dada por una tarea o
una seccin de
La tarea. Se reduce cuando una tarea espera desbloquea y comienza a
ejecutarse.
Una bandera, que establece sobre la ocurrencia de un evento y se restablece
en respuesta al evento. Un
Semforo binario o evento grupo llag bit puede ser utilizado como bandera
de sealizacin del evento.
Ejecutar una funcin al recibir una seal. Error tambin se gestiona a travs
de un
Funcin de control de excepciones.
Los descriptores de archivo de todos los dispositivos existentes en una
estructura de datos FD. Los bits
Corresponde a los dispositivos activos son establecidos y los dispositivos
inactivos se borran.
Un tubo o socket o archivo (Seccin S.6.2) cuando se crea un descriptor de
archivo, una base de datos
Se crea la estructura y un nmero, por ejemplo. Id se asigna para identificar
el
Dispositivo creado.
Bloque de memoria(s) en la cual el archivo de lectura, escritura de archivo
Archivo, Abrir y cerrar las funciones de mosaico
Funciona como en el caso de archivo en un disco.
Un IPC en el bloque de control de eventos en los que una tarea o ISR enva
un mensaje
Puntero, que se recupera por otra tarea esperando que.
Un IPC ennotificando
el bloque dea control
eventos
el que un de
grupo
de puestos
Bandera
RTOSdepara
el en
desarrollo
determinadas
los mensajesdurante
en la cola
situaciones
un run
Puntero
o mensajes
urgentes
en lamediante
parte delantera,
puntero,
que son
Que
necesitan
una atencin
urgente,
la ejecucin
de una funcinrecuperados
por otro de seal.
ISR
como manejador
Tareasistema
llorando que
por eso.
Un
tiene necesidades de multitarea con mltiples
Un dispositivo desde el que una tarea obtiene los mensajes y la otra tarea
caractersticas y en el que el
pone el
Las
tienenVxWorks
plazos que
respetarse.
Los tareas
mensajes.
esdeben
un tubo
de cola FIFO en el que operan las
Un
reloj del
sistema que puede ser configurada para interrumpir en
funciones
lOdevice.
intervalos
preestablecidos.,el
sees
actualiza
Tirar y recibir
mensajes desdetiempo
un tubo
como el de un archivo.
Regularmente
el [PC
sistema
Funciones de laycola
segninterrumpe
el estndar peridicamente.
POSIX funciones.RTOS geles
Funciones
tambin
el Semforo
control de segn
la CPUel estndar IEEE POSIX funciones.
Un semforo
quepre-emption
restablece en
el inicio de la ejecucin
de un
cdigo de
Examinar
si los
o reprogramacin
de la deuda
es necesario.
regin crtica
establece
Prioridad
de laytarea
proporciona
Al finalizar
estas.
Prioridad
para
funciones de temporizador del sistema, funciones de retardo
y reanudar las funciones de retardo.
Deje que una tarea espere un tiempo mnimo definido por el nmero de
garrapatas del sistema pasa
Como atgument a la funcin Delay.
Creacin y activacin de tareas.
Un RTOS pC/OS-ll de Micrium de Jean J. Labrosse.
Un RTOS de Wind River Systems.
Tarea es un TCB alJotted y una identidad. Creacin
tambin inicia y planificaciones en
Creacin en mucos.

Los sistemas integrados

476

TCB

Bien probado y depurado RTOS

Tarea comrol bloque, que tiene los parmetros de la tarea, de modo que en la
conmutacin de tareas
Parmetros permanecen guardados y cuando RTOS re-cambia de nuevo, se puede
ejecutar la tarea
Desde el punto en que lo dej. La tarea es, pues, un proceso independiente.
Un RTOS, que est completamente probado y depurado en un nmero de situaciones.

Preguntas de repaso
1. Cules son las ventajas de un bien probado y depurado de amplia focusscd RTO. que tambin es muy popular y de
confianza? (l: Embedded software tiene que ser de la ms alta calidad y no debera ser ms rpido el desarrollo de software.
Necesidad de complejas habilidades de codificacin necesaria en el equipo de desarrollo de controladores de dispositivos,
memoria y dispositivos de red, administradores de tareas, manejo de excepciones, vectores de prueba, API y as
sucesivamente).
2. Cmo puede un mensaje del buzn difieren de una cola de mensajes? Puede usar cola de mensajes como un semforo de
cuenta?
3. Explicar el BCE.

Ejercicios de prctica
Nota: Los ejercicios 5 a 12 corresponden a MicioC/OS-II y 14 a 2j para VxWorks.

4. Buscar en la web (p. ej. www.eet.com) y encontrar las mejores RTOS productos.
Dibuje cinco cifras que muestran los modelos de cinco ejemplos 9.16 a 9.20 en la seccin 9.2 para el evento bandera,
semaphore mutex, contando semaphore, cola de buzn y la comunicacin entre procesos.
6. Dibujar las cifras que muestran los modelos para la comunicacin entre procesos en procesos en una cmara digital. ACVM
y orquesta robot ejemplos en las secciones 1.10.4. 1.10.2 y 1.10.7. respectivamente.
7 Clasificar y listar los archivos de cdigo fuente, que dependen del procesador y aquellos que son independientes del
procesador?
};. Disear una tabla que proporciona caractersticas de MUCOS.
. MUCOS tiene un tipo de semforo para utilizar como recurso clave. como bandera, como contar y semaphore mutex. Cul
es la ventaja de la simplicidad?
Yo >. Cmo se PUEDE configurar el reloj del sistema utilizando la funcin void OSTimeSet (unsigned im cuenta)?
: I. Cuando utilizas OS_ENTER_CP.ITICAL ( ) y OS_EXIT_CRITICAL l )?
\ Cmo se establecen las prioridades y parmetros. 0S_L0WEST_pr!0 y OS_MAX_TAREAS. para la planificacin preventiva
de las tareas?
13. Una tarea inicial se crea por primera vez, lo cual crea todas las tareas necesarias, inicia el reloj del sistema y, a continuacin,
que la tarea est suspendida. Por qu esta estrategia debe utilizarse?
14. VxWorks kernel incluye ambas interfaces estndar POSIX y VxWorks interfaces especiales. Cules son las ventajas de
interfaces especiales para los semforos y colas?
15. Cmo iniciar el round robin de tiempo de programacin slice? Dar 5 ejemplos de la necesidad de planificacin round robin.
16. Iniciar Howdo planificacin preventiva y asignar prioridades a las tareas de programacin? Dan 10 ejemplos de la
necesidad de planificacin preventiva.
17. Cmo se utilizan las seales y utilizar la funcin void sigNiim sigHandlcr (ini), seal {.sigNiim,
sigISR) y intConnect [l_NUM_para_IVEC (sigNum), sigISR, sigArgl? Dar ejemplos vivos de sus usos.
18. Cmo puede crear un semforo de cuenta?
19. OS dispone que todos los ISRs comparten una sola pila. Cules son las limitaciones que impone?
20.
Cmo se puede crear, eliminar, abrir, cerrar, leer, escribir y lO controle un dispositivo utilizando RTOS funciones?
Tome un 'Simple 4V de un tubo entregando un 10 stream desde un dispositivo de red.
21. Explicar el uso del descriptor de archivo para 10 dispositivos y archivos.
22. Cmo permitir que una tarea de menor prioridad se ejecutan en un programador preventiva? Dar cuatro ejemplos de
embobinado.
23. Cmo se generan las tareas? Por qu debera usted no puede eliminar una tarea a menos que exista una limitacin de
memoria?
24. Escribir cdigos ejemplar para utilizar las funciones POSIX para temporizacin, semforos y colas.

Sistema operativo de tiempo


real programacin-II OSEK,
Windows CE y Linux
funciona en tiempo real I-

1-

Hemos examinado los siguientes puntos importantes


relativos a la RTOSes en los captulos anteriores.

Un RTOS tiene funciones bsicas (servicios) de proceso


(rosca o tarea) y gestin de memoria, permite el
intercambio de recursos y datos, permite el uso de los
temporizadores y el reloj del sistema, la asignacin del tiempo y no
de-asig- C
Acin para alcanzar mejor utilizacin del tiempo de
la CPU bajo
Dada la falta de tiempo para las tareas, gestiona la
comunicacin entre procesos (IPC) (comunicacin entre el ISR,
tareas y funciones del SO) y 10 ^
Los subsistemas, gestiona
los dispositivos y tonteras y
Proporciona en tiempo real e interrumpir la
programacin de tareas- control latencia. RTOS permite duros y
blandos en tiempo real
Las operaciones. RTOS
proporciona una distribucin predecible
Comportamiento del sistema (en la mayora de los
casos, en el caso) y la predictibilidad de la
sincronizacin de las tareas mediante la asignacin de
prioridades de las RTO disposiciones para las
prioridades de la herencia.
Un programador utiliza funciones RTOS en aplicacin
Software y API. RTOS tambin permite IOs
asincrnica. RTOS sincronizar las funciones

Ejecucin de procesos (tareas o subprocesos), fast-nivel ISR, lentonivel de subprocesos de servicio de interrupcin (ISTE).
3. MUCOS y VxWorks son dos importantes RTOSes. MUCOS y
VxWorks funciones proporcionan programacin para el ISR y
tareas (procesos).
4. Cdigo la elegancia y la fiabilidad es uno de los mejores en mucos y
provisin de potentes funcionalidades es uno de los mejores de
VxWorks. VxWorks es un popular se centr ampliamente RTOS
debido a sus potentes herramientas de desarrollo, apoyo a las
arquitecturas de procesador avanzado y optimizacin del software
del dispositivo. VxWorks es compatible con varios sistemas de
archivos, sistemas que permiten la funcionalidad multimedia
avanzada y entorno multitarea con VxWorks scheduler, POSIX
Scheduler o Planificador desarrollado en casa. VxWorks es
compatible con la capacidad de ejecutar dos sistemas operativos
simultneos en una sola capa de procesamiento.
Trataremos las siguientes RTOSes popular en este captulo.
1. Windows CE fnr sistemas y dispositivos electrnicos de consumo
2. OSEK-un RTOS fiable para el sistema de electrnica de automocin Open
source Linus en tiempo real
4. RTLinttx
10.1

WINDOWS CE

Windows CE (WCE) es un RTOS lor ordenadores de bolsillo y los sistemas mviles,


desarrollado por Microsoft. Percepcin del diseador de Microsoft Word para el uso de
la CE es que la CE representa las propiedades que es compacto, conectable, compaero
compatible y eficiente. WCE tambin pueden ser percibidos como Windows para
sistemas de electrnica de consumo, sin embargo, las aplicaciones no se limitan a los
sistemas de electrnica de consumo.
WCE es hoy en da uno de los sistemas operativos ms populares para los sistemas
porttiles.
Una mejora de WCE es Windows CE.NET. [dot net framework proporciona para
compilar el cdigo administrado. El cdigo administrado es uno que est compilado en el
CIL (Common Intermediate Language). Proporciona la plataforma CPU independiente
neutral como la compilacin de cdigos de bytes. Un entorno de tiempo de ejecucin
convierte las instrucciones de cdigo de bytes en la plataforma y las instrucciones
mquina nativas. Cuando diferentes CPU incrusta en el sistema, el entorno de tiempo de
ejecucin diferentes. Por lo tanto, se puede ejecutar cdigo de bytes en diferentes
plataformas y ser distribuida. En tiempo de ejecucin, el ejecutar .NET

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ; 479

Windows CE.NET es utilizado como un sistema operativo de tiempo real para handheld eomputers anil
sistemas mviles. Es WCE.NET deseribed detalladamente en Douglas Boling Programming Microsoft
WINDOWS CE.NET. Microsoft. Ee.Uu., 2003. Seccin 10.1.1 describe brevemente las caractersticas y funciones
bsicas de WCE. La figura 10.1 muestra las caractersticas bsicas.

10.1.1 Caractersticas de Windows CE


WCE plataforma proporciona las siguientes caractersticas.
1. Proporciona una plataforma de Windows para los sistemas que tienen limitaciones de recursos de energa,
la memoria, la pantalla tctil o el tamao de la pantalla y velocidades de procesamiento. Plataforma
Windows permite al usuario sentir, mirar e interactuar con el sistema mediante interfaces de una manera
similar a un PC con Windows.
2. Es una abierta, escalable y pequeo tamao los SO de 32 bits.
3. Permite la ejecucin de aplicaciones PocketPC como Outlook, Explorer. Pocket Power-Point. Palabra y
Pocket-Excel Pockct- lor mailing. Internet, PPT y presentaciones de diapositivas y aplicaciones de Office.
PocketPC es un Handheld PC basado en WCE. ltima versin CE 6.0 es para el hogar, as como los
sistemas de oficina y proporciona conectividad de redes celulares. WCE utilizando sistemas permiten
ejecutar de multimedia, interfaces de usuario de voz ( VUIs), smartphone y aplicaciones de juegos. (Voz
de las interfaces de usuario facilitan la interaccin y entradas usando comandos de voz almacenados o
melodas, y las entradas
de comandos
de voz
del usuario).
Windows
CE abierta,
escalable
y pequeo tamao de 32 bits OS

' un subconjunto
de Win32
Api
y
Visual C++,
Visual Basic y
NET Compact
"marco de trabajo
.para
dispositivos j

La multitarea
Y multi-roscado
OS funciones con
Interrupcin de
bajalatencias y
Las
disco
Sistema
de
tiempo real
Aplicaciones
|

Una 80x86 o
SuperH o
Brazo o otros
Procesador en
Dispositivo de
IHE

Pantalla tctil y
Dispositivo
pequeo
Pantallas
Y las entradas
de
Teclado
o lpiz
ptico
Y
como
Windows
Mens

| | Serial OBEX, |
! Bluetooth, IrDA.
Yo TCP/IP. IPv6 y :
Ethernet y otros j !
J I los protocolos
populares,
j
Red celular
I: conectividad

J 1 i

PocketPC Outlook. Word, Excel, PowerPoint y aplicaciones


Explorer i
_ Multimedia, smartphone, VUIs y API de juego j -----Fig. 10.1 Funciones bsicas de Windows CE

4. Procesador de WCE utilizando system puede ser un 80x86 o SuperH o ARM o MIPS o SH4. WCE sistema
optimiza el rendimiento del procesador.
5. Funciona como sistema operativo multiproceso y multitarea. Multitarea significa que hay una serie de
procesos que pueden ejecutarse simultneamente. Cada proceso puede tener mltiples subprocesos y tiene
al menos un subproceso. Un subproceso es una unidad bsica de clculo utilizando los recursos que son
proporcionados por WCE. WCE presta apoyo a 256 niveles de prioridades de rosca. WCE tambin prev
tiempo ajustable quantum para las roscas. Roscas iguales se asignan prioridades una fraccin de tiempo
(Seccin 8.10.2) cada uno durante el funcionamiento del sistema.
6. WCE tiene bajas latencias de interrupcin debido al uso de ISTs adems de ISR. El tas se ponen .en
priorit;^ Cola de subprocesos en espera de ejecucin. (Secciones 4.2.3 y 8.7.3). Un 1ST es la lentitud del
nivel de servicio de interrupcin rosca de un rpido nivel de ISR. Esto da WCE funcionalidades para disco
de programacin en tiempo real y control de latencia de interrupcin. WCE admite Anidar ISR.

480

Los sistemas integrados

7. Permite el uso de un subconjunto de la API de Win32. Visual C++, Visual Basic y .NET Compact
Framework (en Windows CE.NET). El software puede ser creado usando Microsoft Visual Studio 2005.
El cdigo est desarrollado en Visual C++. Software para dispositivos mviles (sistemas) con el
smartphone y la conectividad celular se desarrollan con el SDK de Windows Mobile.
8. Los programas pueden ser probados en el PC familiar 80x86 con procesador antes de incrustar en el
sistema. Edicin de emulacin puede utilizado para emular una aplicacin en un PC. Kit de evaluacin se
utiliza para probar el programa hefore incrustar en el hardware real del sistema con l u otro procesador.
9. Es compatible con la pantalla tctil. La pantalla tctil muestra as como acepta la entrada a travs de un
lpiz ptico. (estilete es un escrito de ncleo de lpiz con forma de objeto para un usuario de dispositivo
o sistema como alternativa al ratn y teclado. El usuario toca la punta en el men de la pantalla o el teclado
que aparece en pantalla para introducir los comandos o texto, respectivamente).
10. Soporte de red y protocolos de comunicacin, por ejemplo, Object Exchange (OBEX), Bluetooth, IrDA,
UDP, TCP/IP, IPv6 y ethemet y muchos otros protocolos populares.
11. Origen compartido y acceso al cdigo fuente son proporcionados por Microsoft.
Hay com/ionentization. Hay dos capas de software. Una subcapa consta de Microsoft desarroll los
cdigos fuente de WCE kernel y es compartida con el fabricante del dispositivo o sistema. A continuacin,
el fabricante aade la parte restante del ncleo segn el hardware del sistema. La parte restante es la capa
de abstraccin de hardware. Adems, Microsoft ofrece libertad para modificar objetos a nivel de kernel
tambin sin compartirlos con Microsoft.
12. Soporta Power Manager, la memoria virtual, basado en archivos de registro y varios sistemas de archivos
(por ejemplo, basado en memoria flash file system). (Power Manager es un software para reducir la
disipacin de energa al reducir la velocidad de reloj o ejecutando esperar o dejar de instruccin u
optimizar el uso de las cachs o detener o disminuir la intensidad de la pantalla se muestra despus de
espera limitado para la entrada del usuario. Son las direcciones de memoria virtual asignada para
almacenar programas que pueden tener un tamao mayor que el tamao de la memoria fsica. Seccin
8.6.2 explica el concepto de sistema de archivos).
Tabla 10.1' da a las nuevas caractersticas mejoradas de WCE en Windows CE 6.0. Windows Mobile 6 y
Windows
Automotive 5.0.

10.1.2 Programacin Windows CE


Las siguientes son las diferencias en la programacin con WCE y Windows. WCE disposiciones lor la toliowing.
1. Slo el subconjunto de la API de Win32 (p.ej. ninguna de las funciones relacionadas con el medio
ambiente y el medio ambiente no se bloquea, la informacin del directorio actual en el subconjunto).
2. El sistema de pantalla pequea.
3. Sistema de pantalla tctil.
-I. No hay disco duro. Baja y el uso de memoria RAM y memoria flash ROM en el sistema.
5. Procesador del sistema puede ser x86 o ARM o SuperH. o cualquier otro.
6. Los caracteres Unicode de 16 bits (unsigned short) de modo que los caracteres internacionales y lenguas
puede ser utilizado.
7. Reduce el nmero de controles de Windows en WCE en comparacin con el ordenador personal.
8. Nuevo formato de controles de Windows (clases que admiten un nmero de las funciones de la GUI del
comando, men, barras de herramientas proporcionado en una lnea debido a la pequea pantalla) y los
nuevos controles [por ejemplo, selector de fecha y hora, calendario, selector auto edit para capitalizar el
primer carcter de una palabra al teclear, teclado virtual y organizador (p. ej., la tarea de hacer)].
9. Los controladores de dispositivos importados como los archivos DLL (Seccin KXI.7)".
10. No soporta la administran la herencia y ciertos atributos de seguridad.
11. Descomposicin en piezas (Seccin 10.1.1).

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

481

Tabla 10.1 con Windows CE 6.0, Windows Mobile 6 y Windows Automotive 5.0 Caractersticas mejoradas

S.No. Caracterstica

Pt'scripiiim

Windows CE 6.0 Nmero de procesos 21'1 (curlier 32). Baje la memoria virtual (VM) de 2 GB (32 MB) las direcciones
anteriores por proceso, superior 2 GB de espacio virtual del kernel, controladores de dispositivo
ejecutando en modo usuario y modo kernel (.En la seccin <3.1.2), los componentes del
sistema que hasta ahora se han convertido en el ncleo de EXEs a DLL (Seccin 10.1.7), que
se cargan en el espacio del kernel en tiempo de ejecucin lateral, nueva infraestructura de
seguridad, 802.11 y 802.11 i e inalmbricas LAN Support, nuevo ncleo celular lor
eellularjietworks y fciles conexiones de datos, el sistema de archivos UDF 2.5 y el sistema de
archivos exFAT. Integrado con el IDE de Visual Studio 5.0 y dirigida a la empresa de
herramientas especficas como los controladores industriales y dispositivos de electrnica de
2
Windows Mobile, Mobile
Offfice 2007. smartphone con pantalla tctil, la mejora de la pila Bluetooth, VoIP 6
consumo.
Segunda edicin con cancelacin de eco acstico (AEC), soporte para cifrado de datos almacenados en las tarjetas
de almacenamiento extrables externas, utiliza filtro inteligente para una rpida de archivos, correo electrnico,
contactos y buscar canciones, y puede ser configurado como mdem para el porttil.
Me

Windows

Basado en Windows CE 5.0 y bloques de construccin para la industria del automvil de


servicio fuera de la board.
Automocin Automocin 5.0 user interface toolkit (AUITK). ampliar la memoria virtual para permitir la creacin de
complejos grficos 3-D y pantallas de navegacin avanzada, administracin de energa
mejorada y rpidos tiempos de arranque en fro, actualizaciones de trfico en tiempo real,
indicaciones de cmo llegar a la gasolinera ms barata y rendimiento mejorado.

Una aplicacin basada en Windows programa est escrito para responder o activar o cambios en el estado
actual en el empuje de notificacin(s) desde el sistema operativo. Se produce una notificacin de un evento. La
notificacin se enva el mexs<ii;c (Secciones 8.1.2 y 8.4) para el programa de aplicacin en Windows. Los
mensajes se colocan en cola (Seccin 7.12) para las ventanas de la aplicacin. El sistema operativo controla todas
las fuentes de entrada |ej. lpiz toca. virtuales (en la pantalla tctil) o pulse la tecla fsica]. El sistema operativo
notifica que se ha pulsado una tecla o se ha hecho clic en un botn o comando ha sido recibida de rediseo de la
pantalla de Windows, Unix de aletas: es al revs. El programa de aplicacin pide inpul lor la(s) desde el sistema
operativo foros de carcter o de comandos o entradas desde el teclado. |
Instancia define la clase de ventana de una ventana" (objeto). La ventana tiene coordenadas bsicas ,v e y. y ,v
parmetro. La ventana ; especifica si est por encima y por debajo de otras ventanas. La ventana tiene
especificaciones de visibilidad (Mostrar u ocultar o sin activar). La ventana tiene especificaciones de jerarqua
primario-secundario. Procedimientos de la ventana compartir los atributos, por ejemplo. Commandshow.
Procedimientos de Windows estn all para responder a solicitudes y todas las notificaciones enviadas a las
ventanas.
WCE no admite manejar la herencia. [Windows utiliza la manija en muchos procedimientos (funciones). El
mango proporciona la referencia a una interfaz, por ejemplo, por una ventana, o archivo de rosca o puerto. Un
ejemplo es la instancia de una ventana. Es un objeto, el cual es usado como un identificador. Una interfaz es un
procedimiento incumplidas (funcin o mtodo), los cdigos sobre los cuales se definen en la clase, que utiliza la
interfaz. Mango es tambin utilizado como un puntero, denominada opcin puntero. La opcin puntero es el
puntero que seala a un puntero de uno de los varios conjuntos de los cdigos, que se ejecutan en la opcin seiecting.
Compatibilidad con Windows (WCE) no manejar la herencia, lo que significa un mango puede ser extendido para
crear un nuevo controlador, que hereda las variables, propiedades y procedimientos de paient mango y
agrega, reemplaza y sobrecargas nuevas variables, propiedades y procedimientos.]

482

Los sistemas integrados

10.1.3 Windows y Windows Management


Hay muchas ventanas en una pantalla. Una pantalla superior (desktop) es una ventana. Una herramienta cominandbarra de tareas es una ventana. Un botn es una ventana. Las ventanas estn relacionados entre s. Puede haber una
(jerrquica) relacin padre-hijo en las ventanas. Puede haber una relacin de hermanos o relacin de propiedad del
propietario.
Hay un nivel superior de la ventana principal. La ventana principal no tienen un padre. La ventana principal
puede tener ventanas secundarias. Cuando un progenitor es movido o eliminado, todas las ventanas secundarias
tambin deber mover o eliminar. Ventana secundaria es invisible excepto en los bordes. CreateWindowEx o Crear
ventana crea una ventana y utiliza los mismos mensajes y procedimientos como la principal. Un parmetro de estilo
32 bits dwStyle cuando se establece como WS_CHILD se crea la ventana secundaria. Un parmetro de estilo 8 bits
bMenu parmetro se utiliza en la ventana secundaria y equivale a la ID de esa ventana. (El prefijo dw significa doble
palabra y b significa byte como tipos de datos).
Ejemplos de funciones de gestin para las ventanas son FindWindow (para encontrar una ventana y obtener el
controlador para que), GetParent para encontrar al padre y GetWindow para consultar y obtener el propietario, hijos
y hermanos.

10.1.4 Gestin de memoria


Windows CE 6.0 permite la memoria virtual (VM) con un lmite de 2 GB (anteriormente 32 MB) para cada proceso
y superior de 2 GB de espacio virtual como espacio de VM del ncleo. Extended VM permite la creacin de
complejos grficos 3-D en WCE los dispositivos y, por tanto, animacin y aplicaciones de juegos.
WCE proporciona para la memoria del sistema entre I MB y 64 MB y os necesita un mnimo de 512 kB y 4 kB
de memoria RAM. WCE tambin proporciona para gestionar las condiciones de poca memoria.
WCE considera la RAM en dos secciones: la memoria de programa (llamado sistema heap) y almacn de
objetos. La memoria se asigna al programa a partir de un pool de memoria sin usar la zona denominada el montn.
Ejecuta el programa de aplicacin que utiliza la pila y pilas. Una aplicacin se asignan bloques de memoria (en lugar
de las pginas) de la pila y se encuentra en el espacio de memoria virtual reservada regin. Un bloque de montn
tambin puede ser liberado ms tarde cuando no es necesario. Un montn puede ser un montn local de 188 kB o un
montn aparte en el caso de la exigencia de mayor nmero de bloques de memoria.
Almacn de objetos (256 MB) es un disco RAM virtual para el almacenamiento permanente, que est protegida
de apagar. Cada archivo puede utilizar hasta 32 MB en el caso de RAM como objeto ms. Gestor de informacin
personal (PIM) de datos es aiso almacenados en la tienda. PIM incluye datos de contactos, calendario y tareas a
realizar. Un contacto incluye nombre, direccin, e-mail ID. nmeros de telfono de casa, oficina y mvil. Un
dispositivo PocketPC tiene una batera de respaldo, que proporciona alimentacin al objeto de almacenar datos y
archivos. WCE durante el encendido busca en el almacn de objetos previamente cargados en la memoria RAM y
utiliza dicho objeto si est disponible. El objeto STORE Almacena los archivos de registro y bases de datos (WCE
Secciones 10.1.5 y 10.1.6).
WCE guarda en la memoria ROM ejecutar en lugar de archivos. Ejecutar en el lugar es un archivo en la
memoria ROM de ejecucin que no se pueden abrir y leer con funciones estndar de archivo abrir y leer (Seccin
8.6.2).
WCE admite virtual y pgina de memoria. Memoria virtual puede estar en la flash o disco. El programa de
aplicacin utiliza las direcciones fsicas en la RAM. Un sistema de gestin de memoria virtual asigna las direcciones
virtuales de las pginas con las direcciones fsicas de las pginas despus de las pginas del programa ha sido cargado
en la memoria RAM. Una pgina es una unidad de memoria de tamao fijo, que se carga desde el disco o la memoria
flash a la memoria RAM. WCE utiliza el tamao de pgina de I kB o 4 kB. Depende del procesador del sistema.
Tres tipos de pginas virtuales son compatibles con WCE. Comprometidos es una pgina reservada para la aplicacin
y los mapas directamente a la.RAM adchsss. conservado en la pgina de direccin virtual no se puede utilizar en la
aplicacin. Una pgina libre puede usarse y se asigna durante la carrera.

Las asignaciones estticas WCE asigna dos asignaciones, uno de slo lectura y otro para
leer/escribir datos.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

483

Pilas pila almacena las variables temporales y los registros del procesador lor la aplicacin y el sistema operativo.
WCE prev pila independiente para cada subproceso (Seccin 7.2) WCE prev 58 kB como mximo tamao de
la pila y pila de 6 kB para proteger la pila de desbordamiento o subdesbordamiento. Una aplicacin puede
especificar tambin el tamao de la pila de subprocesos.

10.1.5 El registro y los archivos


Los archivos son creados por una funcin CreateFile. Tiene los siguientes argumentos:
1. Puntero Largo de cadena de caracteres,
2. 32 bits, parmetros de acceso deseado
3. De 32 bits en modo compartido especificado.
4. Aguja larga para atributos de seguridad.
5. 32-bits para especificar la creacin y distribucin.
6. 32-bit especificar banderas y atributos y
7. Asa para mosaico de plantilla.
Los argumentos se asignan de la siguiente manera:
1. Cadena de caracteres utilizada para el nombre de archivo.
2. WCE parmetro acceso al archivo GENERIC_READ o GENERIC_WRITE o ambos,
3. WCE crear archivo de 32 bits puede establecer el modo compartido de la especificacin como 0 o
FILE_SHARE_READ.
FILE_SHARE_WRITE.
4. WCE crear archivo debe utilizar aguja larga para atributos de seguridad como nulo.
5. WCE creacin y distribucin de archivos especificado por 32 bits CREATE_NEW, OPEN_EXISTING,
CREATE_siempre (nuevo archivo tras truncar existente). OPEN_siempre (Crear nuevo archivo si no
existe ms abierto) o TRUNCATE_existente.
6. Especificar 32 bits WCE distintivos y atributos FILE_FLAG_WRITE_THROUGH. FILE_FLAG_
RANDOiVLACCESS, FILE_ATTRIBUTE_NORMAL. FILE_ATTRIBUTE_READONLY. Atributo
de
archivo,ARCHIVE.
FILE_ATTRIBUTE_SYSTEM.
FILE_ATTRIBUTE_oculto.
FILE_ATTRIBUTE_NORMAL Y
7. Asa para el archivo de la plantilla es NULL US WCE no admite la plantilla de archivo.
WCE archivos difieren y tienen similitudes en aspectos siguientes para otros sistemas operativos Windows.
(1) Utiliza la mayora de las API de archivo de Win32.
(2) Utiliza 10 procedimientos de archivo estndar CreateFile. OpenFile. ReadFile.WriteFile. Y CloseFile
SetEndOIFile (Seccin 8.6.2). Estas funciones crear, abrir, leer, escribir, truncar y cerrar los archivos (no
para ejecutar en colocar archivos en la ROM).
(3) WCE archivos utilizan el mismo atributo Hags como en Windows. Algunos ejemplos son las banderas
para slo lectura, comprimido y el sistema de archivo oculto.
(4) WCE utiliza hasta 256 dispositivos de almacenamiento o particiones en los dispositivos de
almacenamiento. Un controlador del sistema de archivos instalable puede instalarse para flash y otros
sistemas de archivos.
(5) Utiliza el almacn de objetos como un defecto del sistema fiie basado en RAM.
(6) Concepto de directorio actual faltante. Un nombre de archivo y la ruta de acceso completa de la
especificacin (mximo de 260 bytes de longitud MAX_PATH) es necesaria en WCE. No se menciona
como unidad C o D cuando utiliza los archivos. Un archivo tiene formato de extensin de tres caracteres
despus del signo de puntos. La extensin define el tipo de archivo. Por ejemplo, .txt para un archivo de
texto.
(7) Archivos asignados en memoria y objetos son compatibles para la lectura de los archivos como flujos de
bytes.
(8) Usa compact flash y RAM con batera de reserva.

Los sistemas integrados

I 484

WCE registro usa la API de registro estndar. Registro API es una API de base de datos del sistema. Utiliza
las funciones de registro de archivo estndar. Las funciones son como sigue: RegCreateKeyEx. RegOpcnKeyEx,
RegSetValueEx, RegQueryValueEx. Y RegDeleteValueEx RegDeleteKeyEx, RegCloseKey.
El sistema de registro tiene claves y sus valores en una tabla hash. Las llaves pueden contener las claves. Hay
varias teclas de nivel. Tipos de datos permitidos para el registro son nmeros de 32 bits, string o libre (para datos
binarios).

10.1.6 Bases de datos Windows CE


El cuadro 10.2 proporciona los mtodos (funciones) y propiedades de WCE bases de datos.
La etiqueta 10.2 Funciones de Windows CE en WCE Bases de datos
S.nn.

Caracterstica

Descripcin

El formato de la base de datos


Serie de ONU-bloqueable con guardar registros de la(s) propiedad(es) y datos juntos
en un registro. Ningn registro contiene otro registro dentro de ella. Cada registro
tiene cuatro niveles de ndices para ordenar.
216- 1 y 217

2
3

6
7

8
9

10
11
N

13
14

Nmero mximo de registros y


tamao de registro
Los tipos de datos de propiedades El doble de 64 bits firmado, boolean, coleccin de bytes. 0-temined cadena Unicode
del registro de base de datos
de 16 bits firmado, sin signo de 16 bits. 32 bits firmado. Sin signo de 32 bits,
estructura de fecha y hora
Funcin de Windows CE
CeMountDBVoI
Funcin CeCreateDatabaseEx
Windows CE
Funcin de Windows CE
CcOpenDatabaseEx
Funcin de Windows CE
CeSeckDatabascEx

Para montar un flash externo o medios en un volumen de base de datos, que


almacena los archivos de base de datos (no objeto de almacenar archivos 1
Crear nueva base de datos
Para abrir la base de datos creadas
Para ajustar el puntero a un registro de la base de datos

Para establecer el orden de la base de datos abierta.


Funcin de Windows CE
CeSetDatabaselnfoEx
Registro CeRead Props Ex funcin Para leer un registro de propiedad dada
Windows CE
Funcin CeWriteRecordProps
Funcin CeDeleteDatabaseEx
CfoseHandle ()

Escribir nueva propiedad de registro


Para eliminar registros, propiedades y una base de datos completa
Para cerrar el asa

CeUnmountDBVol Windows. CE A ONU-montar un Hash externo o medios forman un volumen de base de datos, que
se mont anteriormente
{uncin
Notificacin de Windows CE
Notificar a un proceso que un subproceso ha modificado la base de datos.

10.1.7 Los procesos, subprocesos y IPCs


WCE tiene archivos ejecutables Win32, llamados mdulos en dos formas, uno de los archivos .exe y el otro las DLL
(bibliotecas de enlace dinmico). Los archivos .exe son archivos compilados y se carga por primera vez en la memoria
del sistema para su ejecucin. La DLL se carga en tiempo de ejecucin a peticin del otro archivo .exe o DLL. La
carga es mediante una lista de archivos DLL y la lista de funciones dentro de la dll en una tabla de importacin en el
archivo .exe. La DLL tiene tambin la tabla de importacin para otros archivos DLL y sus funciones.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y RealTini^.

WCE es una multiproceso multitarea (Secciones 7.1. 7.2 y 7.3) OS. En una multitarea^
Consta del nmero de procesos. El proceso es una instancia de una aplicacin. All
Las copias de los mismos procesos. En un sistema operativo multiproceso multitarea, un
proceso puede crear'
Que se ejecutan de forma simultnea. Hay al menos un subproceso que se crea por proceso. Hay
Entre las roscas de los mismos procesos o subprocesos de un proceso a otro proceso.
Bajo el control de la ejecucin del kernel es la rosca. Cada subproceso tiene contexto separado (para
la CPU registei'
Y el puntero de pila) y stack para guardar el contexto, cuando el subproceso se bloquea y para recuperar
el thieaiJi?
Al menos cuatro procesos WCE carga en el arranque. Estos son FileSys.exe (para sistema mosaico
functioiSj);
Tabla 10.3 propiedades y funciones de Windows CE para los procesos y subprocesos
(para las funciones de la GUI). Device.exe (para cargar y mantener controladores de dispositivo) y
NK.exe (por ncleo!
S.No.
Caracterstica
1 cuadro
El
10.3 proporciona
los procedimientos y las propiedades de los procesos
Propiedades
de rosca
Las roscas de los .mismo proceso comparten el espacio de memoria y
y subprocesos.

Las prioridades de los subprocesos

Nmero mximo de procesos y el


tamao de la memoria

WCE funcin CreateProcess

Funcin TerminateProcess
Windows CE

Funcin OpenProcess Windows


CE
Funcin CreateThread WCE

8
,1*

Windows CE ExitThread function

Descripcin

administrar permisos de acceso V'. Las asas se utilizan para objetos de


sincronizacin (objetos), comunicacin entre procesos y objetos de memoria de
archivo. Un subproceso primario puede crear subprocesos secundarios.
Cada subproceso asignado prioridades de uno en ocho niveles1: a nivel de
sistema llircad.s y los controladores de dispositivo tas) utilizar maysculas 248
niveles ol prioridades. Nmero Total de niveles de prioridad es de 256 y el valor
de la prioridad 0 es la ms alta y la ms baja es de 255. Hilo de mayor prioridad
se anticipe subproceso de menor prioridad. La inversin de la prioridad (Seccin
7.8.5) est cuidado durante la ejecucin.
Windows CE 6.0 admite el nmero de procesos 2U' (anteriormente 32) con cada
proceso lmite de memoria virtual de 2 (o anterior) de 32 MB y hasta 2 GB
inferior anterior (32 MB). All tambin se encuentra en la parte superior de 2GB
(anteriormente 32 MB), que es el espacio virtual del ncleo de IHC.
Para crear un nuevo proceso con cuatro parmetros necesarios en los argumentos
(largo punteros para la ApplieationNaine. Siring Commamllme (Unicode), y la
de 32 bits y Proecsslnlbrmatotr CrcaiionFIcigs-" (para especificar rancio
inicial sobre la carga).
Para terminar un proceso. Dos argumentos arc asa para proceso y 32-bit exil
cdigo para el proceso. El cdigo de salida del proceso se obtiene de
GclExitCodeProccss funcin.
Para abrir un proceso utilizando proeessld como argumento. Se obtiene a partir
de GetWIndowThneadProcessId Processld .
Para crear un nuevo proceso con los siguientes parmetros requeridos en los
argumentos: ?2-bit SlackSize. aguja larga para THREAD_START_rutina (una
direccin de rutina para iniciar la ejecucin de los subprocesos), aguja larga para
el parmetro especificado por la aplicacin de parmetros de rosca), 32-bit
CreationFlags-1 (para especificar el estado inicial de la carga) y 32 bits
(Threadld thread id).
Para terminar un subproceso mediante un argumento, que es 32-bil cdigo de
salida de la rosca. El cdigo de salida de la rosca se obtiene de
GetExitCodeThread

Funcin.

(C(ff ltd)

I 486!
F

.s'. Mi.
9

Los sistemas integrados

Caracterstica

SetThread-i'riority
(Prioridad) situado

En

CeSetThread-Priurity

II

ObtengaThrcadPrioriry
CeGetThread-Priority

12
13

CeSetThread-Quantum

14
Es

CeGetThread-Quantuni
El sueo

16
17

SuspendThread
ResumeThread

Descripcin

Para establecer la prioridad del subproceso en ocho niveles. Asa para hilo
anti valor de prioridad que se establece son los argumentos. Valor = 250 para
roscas establecida a nivel de prioridad normal.
A sot thread priority valor entre 256 valores entre 0 y 255. Manejar lor rosca y
el valor de la prioridad son los argumentos.
Rosca de gel a nivel de prioridad. Asa para subproceso es el argumento.
Para obtener el valor de la prioridad de rosca entre 256 niveles entre 0 y 255. Asa
para subproceso es el argumento.
Para establecer el intervalo de tiempo de rosca valor. Asa para rosca y 32-bit slice
cal en milisegundos son los argumentos.
Para obtener hilo valor segmento de tiempo. Asa para subproceso es el argumento.
Para retrasar la ejecucin de los subprocesos para un perodo. 32-bit el segmento
de tiempo en milisegundos es el argumento.
Para suspender un subproceso. Asa para subproceso es el argumento.
Para reanudar un subproceso suspendido. Asa para subproceso es el argumento.

Ocho niveles estn inactivos (= normal - 4). Por encima del ralent {= normal - 3). menor (= normal - 2). Por debajo de lo normal
(= normal - I). normal, superior al normal (= normal +1). mayor (= normal + 2) y momento crtico (= normal +3h
Consta Processlnlormaton ol un objeto identificador lor proceso, un objeto identificador de subproceso. 32-bit y 32-bit processld
threadld 'CrcationFlags = 0 para procesos estndar. = crear_SUSPEND para crear y suspender. = CREATE_NEWCONSOI.E
para crear una consola nueva. = Proceso de debug_proceso para pasar informacin de depuracin al proceso de llamada y =
DEBUG_ONLY_this_PROCESO proceso para pasar la informacin de depuracin slo de este proceso y no a los procesos hijo.
CrcationFlags = 0 de rosca estndar. = crear^Suspender para crear y suspender (debe utilizar RcsumcTItrend si se suspende el
subproceso creado) y = S fACK_SIZh_!JARAM_JS_A_reserva para erwahng rosca con holgura reservada si/.e.

Excepciones, notificaciones y objetos IPC Synchronization WCE prev excepciones eales y


seales de notificacin (Seccin 7.10). Ejemplos de notificacin son notificaciones de
temporizador, dispositivo serie letect, potencia, evento del sistema. La notificacin puede
generar un dilogo y un sonido o ejecutar una notificacin de responder la uncin.
WCE tambin proporciona identificadores de los objetos IPC. Un objeto IPC en un sistema multitarea o
multiproceso s utilizados para generar un objeto de sincronizacin y el objeto da la informatidn sobre determinados
conjuntos de omputations terminar un proceso o subproceso y dejar el otro proceso o subproceso en espera de ese
objeto a, et informacin sobre el acabado de los clculos que tome nota de la informacin. Un objeto se libera [PC
enviado), lo que significa que un proceso o subproceso, programador de tareas o ISR) genera informacin por o
valor r genera una salida de modo que permite a otro proceso de espera para ese objeto, a fin de tomar nota o utilice
el jeto. Un kernel disposiciones para las funciones para crear, liberar y esperando los objetos IPC (Seccin 7.9).
Objetos IPC en un sistema multitarea o multiproceso son eventos (Seccin 8.4), semforos incluidos lutex
semforos (Seccin 7.1 l)y colas de mensajes (Seccin 7.12). WCE proporciona para los eventos, semforos mutex
tcluding semforos y colas de mensajes para sincronizacin de subprocesos. El cuadro 10.4 proporciona a estos
para xceptions, notificaciones de eventos, semforos, mutex y colas de mensajes.

0.1.8 Entradas de teclas, pantalla tctil o el ratn


. El teclado se utiliza para introducir muchos personajes, comandos o texto grande. Teclado fsico es un
inconveniente en un dispositivo andheld. Hay un teclado virtual. Controla y simula el teclado virtual en la pantalla
tctil. Un

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

; 487 i

.....

-.7

La aplicacin del gel puede pysieal de entrada desde el teclado o desde el teclado blando. Una funcin SetPocus se utiliza para
especificar la ventana centrada de forma que la entrada se dirige a esa ventana. Windows enva una serie de mensajes de la
ventana seleccionada. Cada tecla o accin tiene un valor asignado. Por ejemplo, un valor de tecla virtual VK.LBUTTON que
pasa un valor 01 en un lpiz toca. Un valor de tecla virtual VK.Volver. Que pasa un valor OD cuando se pulsa la tecla Intro.

Tabla 10.4 Funciones de Windows CE para excepciones, notificaciones de eventos, semforos, Mutex y MessageQueues
S.No.

Descripcin

Caracterstica

/ sealizacin (excepcin)
funciones

RaiseException utilizando el cdigo de excepcin de 32 bits, excepcin Hags,


nmero de argumentos y constante de 32 bits para la matriz de aguja larga para
los argumentos.
Erich argumento pasa los datos a la rutina de respuesta excepcionales (como
ISR).

(notificacin de sealizacin!
Funciones

1. CeSelUserNotificationEx usando el mango de la notificacin.


CE_N0TIF1CAT10N_TR1GGER object1 y CE_USER_NOTIFICATION
object (objeto puntero define la accin de banderas, ttulo de dilogo, dilogo
de texto, sonido y otros detalles).
2. CeGetUserNotificationEx usando el asa para la notificacin y la aguja larga
lor CE_USER_NOTIFlCAT10N objeto.
3. CeClearUserNolificationEx usando el mango de notificacin para confirmar
una notificacin mediante notificacin responder funcin.

Seccin Crtica funciones

Iniliali/.eCrilicalSeclion llo inicializar la seccin crtica).


EnleiCriiical.Sccliun (para entrar en una seccin crtica). (Para salir
LeavcCrilicalScction scciionJ.TiyEnierCriticalScclion crtico (para intentar entrar
en una seccin crtica) y DcIcleCriticalSeelion (para eliminar una seccin crtica).

Funciones Semforo (para


los subprocesos de un
proceso!

5
Las funciones de la cola de
mensajes

Las funciones del evento (por los


subprocesos de un proceso)

CrcatcSeaniphore (para crear el semforo). (versin ReleascSemaphore semforo


para dejar el cdigo del subproceso en espera desbloquear). CrealeMutex (para
crear la exclusin mutua). {ReieaseMutex release mutex para permitir
desbloquear el cdigo del subproceso en espera).
Llo CrealcMsgQucue crear la cola de mensajes". OpenMsgQucue (para abrir una
cola de mensajes). ReadMsgQueue (leer desde el queuel. GelMsgQueuelnlb (para
consultar la cola). WriicMsgQueue (para escribir en la cola). (CloseMsgQueue
para cerrar un mensaje abierto queueI.
CrcaicEvent (para crear el evento). SciEvent (eventos para indicar la ocurrencia
de eventos (l y no auto-reset hasta el subproceso en espera desbloquea) (evento
ttuto- restablece el desbloqueo de rosca), ResetEvent (Forzar resei del evento y
desbloquear el hilo lamentos para ti). PulseEvent (para establecer el evento y
luego restablecer el evento por el desbloqueo de todos los subprocesos que
esperan para ese evento). Con el evento SelEveniData-mango y de datos de 32
bits en los argumentos. Con el evento GelEventData-asa para obtener los datos
del evento.

. W.ajr-Sinrtjt, funciones de objeto

WaitForSingleObject utilizando el identificador de objeto de 32 bits y el valor de


tiempo de espera en milisegundos j en los argumentos.
(Contit)

Yo

Los sistemas integrados

S.No.
8

Caracterstica

Lamentacin para varios


objetos.

Descripcin

Utilizando WaitEorMullipieObjccts contar el nmero de objetos (o eventos). muiexcs


puntero a array de identificadores de objetos, booleano WailAII (si es verdadera,
entonces espere Ibr todos. En WCE debe estar establecida en false) y 32 bits el valor
Tiempo de espera en milisegundos en los argumentos. Cada identificador de objeto es
una aguja larga. Valor de tiempo de lamentaciones = infinito se desactiva el tiempo de
espera especificado para la lamentacin para varios objetos.

Espere para objetos de mensaje Utilizando MsgWaitForMultipleObjeclsEx contar el nmero de objetos de mensaje
largo puntero a array de identificadores de objetos, booleano WaitAII (si es verdadera,
entonces espere para todos. En WCE debe estar establecida en false), 02-bit gemidos cal
valor en milisegundos en los argumentos y marcadores de 32 bits para WakeMask.2

( ENOTIEIC A10N objeto TRIGGER puntero define el tipo y los detalles de la notificacin de notificacin notificacin tipo,
tamao, evento de notificacin, aplicacin de notificacin notificacin notificacin, argumentos, hora de inicio y Hora de
finalizacin de notificacin. WakeMaskFlags = QS_ALLINPUT para cualquier mensaje recibido. QS.Timer para WM.TIMER
(Windows Manager ahora son ms finos) mensaje. QS.pintura para WM.Paint Manager de Windows Paint.
QS_SENDMESSSAGE (un mensaje enviado fuera de la lista icceivcd). QS.POSTMESSSAGE (un mensaje publicado fuera de la
lista recibida), QS.MOUSE un mouse o lpiz niove haga clic o toque recibido, QS.MOUSEMOVE mover un mouse o lpiz mover
recibido. QS.MOUSEBUTTON un clic de ratn o lpiz toca re vcd.

Un ejemplo de funcin del teclado es corto GeiKcySialc iVirtKey (int) para consultar una tecla del teclado. Un
applicaiion puede simular eventos clave.

Entradas de pantalla tctil o ratones pantalla tctil para la entrada es equivalente a un solo
botn de entrada de ratones. Adems, los ratones golpea un cursor. Cuando se pulsa un
mouse, la ventana se ha enviado el mensaje WMLBUTTONDOWN sobre leli abajo rido
liberacin de WMI.Bl'TTONUP sobre botn izquierdo del evento.
WM.MOUSEMOVE mensaje es enviado cuando el lpiz se mueve dentro de la misma ventana. Cuando el
lpiz o draggetl fuera de la ventana de enfoque, el slop mensajes WM MOUSEMOVE. Si el procedimiento se
denomina SetCapture entonces, mensajes WM MOUSEiVIOVE continuar. ReleaseCaplure deja de enviar los
mensajes de la carpeta \VM_ MOUSEMOVE.
Gr tMouseMovePoinls enva los mensajes para cada punto trazada por el lpiz sobre la pantalla desde el
principio hasta el final. GctMouseMovePoints reconocedor integrado con la aplicacin se puede utilizar la escritura
a mano en el PocketPC para escribir el texto o comandos o mensajes.
WM.LBUTTONDBLCLK mensaje es enviado en la doble vuelta del lpiz. Para cada mensaje los parmetros
IParameter = dos de 16 bits toque la pantalla valores de posicin horizontal y vertical .v e y. y wParameter = 16 bits
lor las banderas correspondientes a qu tecla Maysculas o Control pulsado o no.
Clic con el botn derecho del mouse se simula mediante lpiz ptico cuando se mantiene presionada la tecla ALT
mientras tocas.

Windows controla cada ventana utiliza un nmero de clases, denominados controles. Un


control tiene un nmero de elementos de interfaz de usuario. Los ejemplos de interfaz de
usuario son button, checkbox y radio. Los elementos de interfaz de usuario predefinidos para un control y existe
una biblioteca de controles de Windows. Biblioteca Predefinilion y ayuda en cada ventana de la aplicacin tiene el
mismo tacto y aspecto.
Un control es tambin una ventana y est creada por CreateWindow o CreateWindowEx. Un control puede ser
control de esttica. Muestra un texto (segn la alineacin definida) o icono o mapa de bits. El control es un control
de barra de desplazamiento.
Control ms potente para la interfaz del usuario es el botn. Botn apariencia puede ser ajustado. Una ventana de
propietario tambin puede dibujar el propio botn.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y RealTime

1. Es un simple botn pulsador. Cuando el lpiz toca el botn, ste genera afi mensaje con un
parmetro de 16 bil wl'arameter lor El Hag BN_CL1CKED. BN_CLICI se haga clic en
ese botn.
2. Botn de casilla de verificacin es un cuadrado con crculo lleno o vaco o una etiqueta
mediante la cual t eleccin por toque stylus en ese punto y que alterna entre el vaco y el
lleno, alterna entre dos estados.
3. Botn de radio es un botn para permitir que el usuario seleccione entre las opciones
interrelacionadas : selecciona el otro puede deseleccionar. Aplicacin activa o desactiva
una radio bulton.
4. Botn de cuadro de grupo. Es una caja vaca con una etiqueta de texto. En el cuadro de texto
proporciona la programacin.
El control es un control de cuadro de lista. Se usa para seleccionar entre la lista de elementos que se
muestran en el texto. WCE s una cadena constante estilo de datos en el control de cuadro de lista. El estilo
se llama lbs_EX_C0NSTSTR1NGDATA. Yo puntero a la cadena guarda en la ventana y no la cadena.
La aplicacin debe gestionar ese s _ r
El control es un control de edicin. Se usa para teclear el texto y modificarlo. El texto tecleado en upper
qasejs i CUANDO ES_style est en maysculas. Cuando ES_minsculas es el estilo, la edicin de texto aparece
como inferior' de los casos. El texto tecleado es visible como *** CUANDO ES_PASSWORD style se establece.
El control es un control de cuadro combinado. Se pueden utilizar dos o ms controles en el cuadro
combinado. En un cuadro combinado desplegable WCE o lista desplegable. Es desplegable Editar un campo de
texto con un botn de control en el lado derecho. Cuando se hace clic en este botn de un cuadro de lista de
Los
mens
de Windows
WCE es
mens
estn
en lacada
barra
comandos
de
seleccin
aparece.
Lista desplegable
una lista
de textos,
uno de
con mens
un botnoenbarra
el ladode
derecho.
El estilete
control.
TheCreateMenu.
vueltas en cualquiera
de lo elija. AppendMenu, InsertMenu son pmeedtires en WCE para crear,

agregar o insertar un elemento de men. CreatePipupMenu es un procedimiento para anidar


los mens. Ventana genera WM_COM.VIAND mensaje y el parmetro ID del elemento de
men
10.1.9es enviado.
Redes y comunicaciones
WCE puerto serie es un controlador de dispositivo de stream, que tambin est abierto por CreateFile (Seccin
10.1.4). WCE litis las funciones para borrar errores, consulta de estado, configuracin y obtencin de valores de
tiempo de espera, la consulta, el controlador de serie y el control de la comunicacin. El cuadro 10.5 proporciona
la comunicacin serie lunctions Windows CE.
WNel API es una API para la compatibilidad de red para Windows. Tiene una caracterstica de tener acceso
a recursos de red que no dependen de la plataforma y aplicacin de las funciones de la red. WCE admite un
subconjunto de WNct. El cuadro 10.6 proporciona la API WNel subconjunto de funciones de conexin de red.

10.1.10

Dispositivo-Toma de dispositivo y las funciones de comunicacin

Los dispositivos, como los telfonos mviles o PocketPC establecer la sincronizacin con los dispositivos vecinos
y ordenadores, y formar una red de rea personal (PAN). Ejemplos de protocolos usados en PAN son Bluetooth
e IrDA (Infrared Data Association).
Es una API API Winsock para soporte de programacin de sockets de Windows. El TCP/IP sockets de red
Bluetooth e IrDA se programan mediante Winsock. Soporta streaming de Winsock y sockets datagrama (Seccin
3.11.3) las conexiones. (Streaming sockets de datagramas y diferencia es que hay conexin entre dos API en
distintos dispositivos, y entre dos adrlresse^en dos API en diferentes dispositivos, respectivamente.) Winsock
tiene una caracterstica de acceder a recursos a travs de los zcalos de pan que no dependen de la plataforma
y aplicacin de funciones de socket (Seccin 7.15). WCE admite un subconjunto de la API de Winsock 1.1 y 2.0. El
cuadro 10.7 proporciona la API Winsock subconjunto de WCE de dispositivo a dispositivo funciones de
comunicacin de sockets.

490

Los sistemas integrados

Tabla 10.5 Funciones de comunicacin serial Windows CE

S.No.
Yo

Caracterstica

La funcin CreateFile WCE

Leer archivo

Descripcin

Crea la pon lbr comunicacin. Devuelve un identificador de 1 puerto serie COM.


Los argumentos utilizados son texto rCOMI"). GENERIC_READ 1
GENERIC_WRITE. 0. NULL. OPEN_EXISTING. 0 y nulo.
Lee desde el puerto de comunicacin. Devuelve la ait entero. Los argumentos
utilizados son identificador devuelto en su creacin, puntero a carcter, puntero a
S-bit nmero de bytes ledos. NULL.

WriteFile
Lee desde el puerto de comunicacin de Tor. Devuelve un entero. Los
argumentos utilizados arc identificador devuelto en su creacin, puntero a
carcter, puntero a 8 bits el nmero de bytes ledos. NULL.

TransmitCommChar

Establecer CommMask

Obtenga CommMask
6
7

WaitCommEvent

SetCommStaie

Enviar carcter en cola de transmisin de puerto de Tor. (caracteres de control


puede ser insertado en el stream). Devuelve un valor Boolean para el xito o el
fracaso de la transmisin. Los argumentos utilizados son identificador devuelto en
la creacin y el carcter para la transmisin.
Para establecer la comunicacin mscara. Los argumentos utilizados son
identificador devuelto sobre creacin y 32 bits para la mscara de evento para
especificar claramente a enviar, romper, conjunto de datos listo, error, recibir
seal de lnea detectar, carcter recibido, un evento de recepcin recibi la
bandera, vaca el bfer de transmisin.
Para obtener la mscara de comunicacin. Los argumentos utilizados son
identificador devuelto sobre la creacin y la aguja larga para 32 bits Mscara de
evento.
A la lamentacin para el evento. Asa para archivo, aguja larga para 32-hil
Mscara de evento y nulo (por aguja larga de superposicin) de los neumticos
para los argumentos.
Para establecer la comunicacin obsoletos. Asa para archivo y aguja larga para el
bloque de control del dispositivo (DCB) estructura son los argumentos. El DCB
define 32 bits para
Longitud de DCB, velocidad en baudios, paridad, binario bandera bandera y otros
24 Hags.

Tabla 10.6 WNet API Funciones de conexin de red


S.No.

Caracterstica
1

Descripcin

WNetAdd-Connection
Mapas de la red de recursos (remoto). Devuelve un cdigo de 32 bits para ningn
error o error. Los argumentos que utiliza un controlador de ventana de arco, tres
largos punteros lor recursos de red y cadena de contraseas y nombres de usuario y
un valor de 32 bii de Hags. El recurso de red es una estructura que contiene punteros
de larga distancia para el nombre y el nombre local.
WNetConneciion-Dialog

WNetCancel-Connection

Al dilogo. El argumento utilizado es una aguja larga para la estructura de


dilogo de conexin.
Desconecta la conexin de red (remotas) agregado anteriormente. Devuelve un
Cdigo de 32 bits para ningn error o error. Los argumentos que se utilizan son
una aguja larga para nombre (local o remoto), el valor de 32 bits para las
banderas, booleano para especificar desconexin forzada cuando los archivos o
dispositivos arco abierto y no cerrado.
(cont)

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

S.N4

Caracterstica

491

Descripcin

WNetDis-connectDialog
Al dilogo sobre la desconexin. Los argumentos utilizados son un
identificador de ventana y 32 hits lor tipo de recurso. Tipo de recurso
puede ser primario o disco o cualquier otro que no est disponible. Hay
otra sobrecarga WNetDisconnectDialog, que tiene un argumento, una
aguja larga de desconexin de la estructura de dilogo.

WNetGet-Connection

WNetGetUser

WNetGetUni versalName

SetCommState

Consulta a la red (remota) recursos de conexin. Devuelve un cdigo


de 32 bits para ningn error o error. Los argumentos utilizados son
largos punteros para cadenas de nombre (local o remoto) y el nombre
de usuario y la aguja larga por valor de 32 bits que especifica la
longitud del bfer remoto caracteres.
Consulta el nombre de usuario. Los argumentos utilizados son largos
punteros para cadenas de nombres locales y remotos y la aguja larga
por valor de 32 bits que especifica la longitud del bfer remoto.
Consulta el nombre segn la convencin de nomenclatura universal.
Los argumentos utilizados son aguja larga para la cadena de la ruta de
acceso local, 32 bits, info-level larga punteros de direccin de bfer de
32 bits y el tamao de la mantequilla.
Para establecer el estado de comunicacin. Asa para archivo y aguja
larga para el bloque de control del dispositivo (DCB) estructura son los
argumentos. El DCB define 32 bits de longitud de DCB, velocidad en
baudios, paridad, binario bandera bandera y otros 24 Hags.

Tabla 10.7 API Winsock Subconjunto de WCE de dispositivo a dispositivo funciones de comunicacin de sockets

S.No.
1

Caracterstica

Descripcin

Funcin Socket
Para crear la nueva toma, es como un mango. La funcin tiene tres parmetros
necesarios como argumentos: lluee enteros, uno para la familia dirigido
specification (c.g.. AFJ3T. AFJNET AFJRDA o por Bluetooth o IrDA o
TCP/IP. respectivamente!, dirigida por segunda especificacin del tipo de
socket (c.g.. SOCK ^STREAM o SOCK_DGRAM para stream o sockets de
datagramas, respectivamente) y el tercero para el protocolo (c.g..
RFCOMM_BTHPROTO lor Bluetooth comunicacin RF).

Funcin bind

Funcin Accept

Para encontrar el servidor deseado. Tres argumentos se toma (del servidor),


para abordar la estructura constante informacin de socket (p. ej.
SOCKADDR_BTH. SOCKADDRJNET SOCKADDRJRDA o por Bluetooth o
IrDA o TCP/IP, respectivamente) y entero para la longitud del nombre.
Para aceptar la conexin de cliente en el servidor en modo de escucha. Tres
argumentos arc (socket de servidor) ya en modo de escucha, estructura para
abordar la informacin de bfer (tor, o SOCKADDRJRDA SOCKASBRJfFH
SOCKADDR JN por Bluetooth o IrDA o TCP/IP, respectivamente) y
Entero de la longitud del bfer.
(cont)

I 492 I

S.No.

Los sistemas integrados

Caracterstica

Estafado (uncin

Funcin de escucha

Dcst I'ifuimi

Ha estafado a un recin creado el socket de cliente a servidor (cliente no llama


hind y aceptar la funcin). Tres argumentos se conecta (cliente), toma la
estructura constante para abordar la informacin de socket (eg.
SOCKADDK_BTH, SOCKADDRJKDA o SOCKADDRJNET lor Bluetooth o
IrDA o TCP/IP. respectivamente) y entero para la longitud del nombre.
A estafado al servidor para modificar datos obligatorios. Dos argumentos son
Zcalo y entero para el tamao de la cola (= SOMAXCONN para tamao
mximo) para la conexin pendiente.

envo

Para enviar desde un socket. Toma cuatro argumentos son (del remitente),
constante char para abordar la informacin (buffer para sockaddr_BTH.
.SOCKADDRJNET SOCKADDRJRDA o por Bluetooth o IrDA o TCP/IP,
respectivamente) y dos enteros uno de longitud y otra de Hags.

Recibir de un socket. Toma cuatro argumentos son (receptor), constante char para
abordar la informacin (buffer para sockaddr_BTH. SOCKADDRJNET
SOCKADDRJRDA o por Bluetooth o IrDA o TCP/IP. respectivamente) y dos
enteros uno de longitud y otra de Hags.

Funcin

'>

de

Yo
Funcin recv
Shutdown

Para detener el envo y recepcin de las funciones de un cierre de la conexin de


socket. Toma dos argumentos son enteros y para cerrar cmo (=_SD o SD o
SD_SEND_RE VE para el apagado tanto de enviar ni recibir ni enviar o recibir slo
la funcin funcin slo, respectivamente)
Para cerrar la conexin de socket. El argumento se toma a ser cerrado.

Cierre del zcalo

10.1.11. Programacin de la API de Win32


El desarrollo de Windows para la GUI es a menudo la parte ms importante del desarrollo de la aplicacin en un
equipo o Embedded System o sistema porttil que tiene una pantalla o pantalla tctil para la interaccin con el
usuario. Gui facilitan la interaccin y las entradas de usuario modificar la pantalla grfica muestra de mens,
botones, cuadros de dilogo, los campos de texto, etiquetas, la mejilla de verificacin y botones de radio y otros.
Programacin de la API Win32 es un pait muy importante de cualquier desarrollo de aplicaciones. Win32 tiene gran
cantidad de API en un PC. Sin embargo, slo un subconjunto es necesaria para dispositivos de bolsillo y el pequeo
tamao de la pantalla de los sistemas. Un subconjunto de las API Win32 se suministra en WCE.
Cuando se desarrolla una aplicacin, Windows muestra los mensajes en la regin central, el ttulo, el comando.
Herramientas y barras de estado. Las ventanas tambin muestra los comandos (Botones) de modo que un lpiz toca
(o clic del ratn)
Enva el comando seleccionado mediante mens y botones. Las ventanas muestran tambin los iconos de
maximizar,
Minimizar y Cerrar, a la derecha de la esquina superior. Windows tambin mostrar el icono de ayuda (ayuda al
usuario) y
Una ? Icono de signo (para mostrar ms botones de un toque). WCE tiene los controles de una sola lnea de
comando, herramienta y
Barras de estado. Un lpiz toca o clic del ratn enva la opcin de men de la aplicacin. WCE tiene nuevo
formato para el
Controles de Windows (comando, men, barras de herramientas) y los nuevos controles (datos, hora, calendario y
organizador
(por ejemplo, la tarea a realizar).
...

El siguiente ejemplo muestra una aplicacin sencilla de la API Win32. El ejemplo muestra lo sencillo que es
crear la pantalla windows y mostrar los comandos (botones) para seguir la accin en una aplicacin.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux

Ejemplo 10.1.
WINAI int'I WinMain (H1ejemplo hPresentinstance; H1ejemplo hPreviousinstance. LPWSTR
IpCoinmandline. int iCommandshow) {MessageBox (NULO, texto ( "Bienvenido "). Texto ("WelcMsg'4),
MB.DEFBUTTONI. MB_DEFBUTTON2, MBJCONQUESTION);
Return 0; /* | Alter tercer argumento el argumento(s) de Iasi es uno o ms entre los scries de Hags que puede
utilizarse para mostrar los botones o iconos en la barra de Windows MessageBox. Los botones y los iconos
deben ser aquellos previstos en el mtodo MessageBox. */
1. La Presentinstance es un parmetro para identificar la instancia actual. Previnstanee es un parmetro para
identificar el previuosinstance (WCE siempre asume que sea cero).
2. Lnea de comandos es una cadena Unicode (especifica las funciones del programa).
3. Commandshow es un nmero entero para especificar la pizarra del programa, que define una
configuracin de ventana principal. El estado parmetro se pasa desde la aplicacin principal a una nueva
aplicacin. El estado de configuracin en una computadora personal puede ser la que muestra
minimizado, maximizado o iconos normales. WCE permite slo tres estados y configuracin de WCE
Windows es como por variables mostrar sin activar (S W_S CMO sin activar), show hidden
(SW_HIDE) y show normal (SW_SHOW). Valor predeterminado de Commandshow se utiliza como por
el valor de la ventana principal es el comando show.
4. MessageBox crea una ventana sobre la ventana principal. La ventana muestra los mensajes en el cuadro
hasta
Se cierra la ventana. Muestra: (i) ningn otro Windows porque el primer argumento es NULL: (ii)
mensaje de texto Unicode Bienvenidos en la ventana de mensajes (en el centro) y el texto de ttulo de
mensaje Unicode (ttulo) a la izquierda WelcMsg comer en el comando-cum-tool-barra de estado: (iii)
botones segn definiciones MB_DEFBUTTON I / MB_DEFBUTTON2 en el centro de comando y el
icono de la barra?: (iv) en el extremo de la barra. Un signo X Jl se crea el icono a la derecha acuador
en el bar. La X permite el cierre de la ventana por el usuario ML en tocando en la pantalla tctil o el
ratn. | MessageBox es usado aqu en lugar de printf
Ml
De lo contrario un conductor console.dll debe aadirse para permitir la impresin en consola (pantalla).|
Este ejemplo utiliza la manija. Se instancia un objeto identificador. En el presente caso, el identificador es una
referencia a una interfaz, que maneja una instancia de ventana.
Este ejemplo utiliza los prefijos antes de los objetos y variables de la siguiente manera. Prefijo H antes objeto
inst ancia indica que es un objeto identificador. Prefijo LP antes WST'R indica que se trata de una aguja larga.
Prefijo W antes de STR indica que la cadena es una palabra sin signo de 16 bits. Este mtodo o el prefijo ayuda a
facilitar la comprensin de los objetos y variables por un programador.

10.1.12 Creacin de ventanas


Una aplicacin puede crear sus propias ventanas en lugar de crear las ventanas mediante MessageBox como en el
ejemplo anterior o una funcin similar en Win32 subconjunto de WCE. Hay varios procedimientos de Windows
que puede crear sus propias ventanas. Los siguientes son los ejemplos.
1. CreateWindowEx, que crea Windows principal
2. MainWndProc. lo que crea la ventana de la aplicacin.
3. Por ejemplo, WM_Paint para dibujar el fondo wundow y poner texto dentro de ella en la posicin
especificada despus de crear primero un rectngulo de cliente.

El dibujo de la pantalla WCE no admite grficos API Win32 completo y diferentes modos de
mapeo en Windows, WCE no admite transformaciones de coordenadas. Es un texto escrito
mediante sorteo'El procedimiento de texto. WCE siempre establece en el contexto del
dispositivo en modo de asignacin MMJVEXT.

Los sistemas integrados

Aplicacin de Windows docs no escribir directamente en la pantalla. Se solicita un identificador. El mango


dibuja y muestra el contexto de dispositivo. En el contexto del dispositivo especifica la aplicacin Windows.
Windows enva los pxeles de pantalla utilizando el contexto de dispositivo. Un contexto de dispositivo es una
herramienta, que Windows utiliza para administrar el acceso a la pantalla y la impresora. Dos atributos del contexto
de dispositivo son los colores de fondo y primer plano de Tor. La alineacin de texto atributos de contexto de
dispositivo son izquierda, derecha, arriba, centro, abajo, ninguna actualizacin y actualizacin del actual punto de
contexto de dispositivo y alineacin con la lnea de base. La fuente del texto que aparece en el contexto de
dispositivo puede ser especificado. Font tambin pueden ser creados por una aplicacin como alternativa a WCE
fuentes predeterminadas.
Un mapa de bits es un objeto grfico. Los mapas de bits pueden ser dibujados. Los mapas de bits se utiliza
para crear, recuperar, manipular imgenes y dibujar en el contexto de dispositivo. WCE admite formal de mapa
de bits en cuatro colores. WCE permite I, 2, 4. 8, 16 y 24 los valores y proporciona para la compactacin.
WCE proporciona para dibujar lneas, Rectngulo, Crculo, elipse, rectngulo redondeado y formas
poligonales y tiene una herramienta pluma. WCE proporciona funciones de llenado para el sorteo, por ejemplo,
relleno de degradado (sombreado cambiando a mover verticalmente de arriba hacia abajo u horizontal de izquierda
a derecha)
llenado de sombreado.
10.2 y OSEK
RTOSes descritas en las secciones 9.1 a 9.3 no bastan para sistemas de automocin, que requieren otras
caractersticas necesarias. El software integrado en el sistema de automocin tiene caractersticas especiales en su
SO por encima de la MUCOS o VxWorks caractersticas y MS DOS y UNIX. OS especiales caractersticas
necesarias son como sigue.
1. El lenguaje puede ser especfico de la aplicacin, no tienen que ser slo de C o C++ y los tipos de
datos tambin debe ser la aplicacin especfica y no especfica de RTOS. En VxWorks, por ejemplo, el
estado es RTO especfico. Esto no est permitido, como podra ser el origen de un error y, por lo tanto,
poco fiable.
2. OS. Cada mtodo, clase y la biblioteca en tiempo de ejecucin debe ser escalable. Esto optimiza la memoria
necesita.
3. Las tareas pueden ser clasificados en cuatro tipos. Esto proporciona una clara distincin para un
programador: La clase que se usa para los mdulos en el sistema.
(a) con una tarea bsica de cada prioridad y solo la activacin. Se llama BCC I (clase I) de conformidad
bsica.
(h) Ampliar con una tarea de cada prioridad y solo la activacin. Es llamada ECC I (clase 1) de
conformidad extendido. Tarea ampliada significa, por ejemplo, una tarea creada por FirsiTask e n
e l Ejemplo 9.8.
(c) Basic con mltiples tareas de cada prioridad y varios limones la activacin durante la carrera. Se llama
BCC 2.
(d) Ampliado con varias tareas de cada prioridad y varios limones la activacin durante la carrera. Es cal
ECC LED 2.
4. OS puede programar tareas de ISR y en formas distintas. (VxWorks scheduler tambin os).
3. Desactiva el sistema de interrupcin al principio de la rutina de servicio y permite el retorno. Iets Tiiis la
tarea para que se ejecute en un entorno en tiempo real.
6. Se pueden programar tareas en tiempo real.
7. Tarea puede consistir de tres tipos de objetos, eventos (semforo), recursos (funciones e instrucciones)
y dispositivos. Existen tambin dispositivos de puerto. Un dispositivo de alarma es ejemplar. muestra los
pictogramas, mensajes y mensajes intermitente. Suena y suena el zumbador.
8. Temporizador, tarea o semforo de creacin y eliminacin de objetos no puede permitirse. Es un bug de
cal puede conducir a la eliminacin inapropiada de un temporizador o un semforo.'niat es la fuente
potencial de un problema y, por lo tanto, poco fiable.
9. 1PC, Message Queue publicacin por una tarea, no se permite como plaideras tarea puede esperar
indefinidamente para toda su mensaje necesita. RTOS tipos de colas, esperando infinitamente o para un
tiempo de espera para que un mensaje puede ser una fuente potencial de problemas y, por lo tanto, poco
fiable. Pueden presentarse riesgos similares con semforo como un recurso clave o contador. Estos son,

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

495

10. Antes de entrar en la seccin crtica u y sobre la ejecucin de una rutina de servicio, todas las
interrupciones debe deshabilitar y habilitar el retorno slo (consulte Seccin 7.8).
Hay incompatibilidad de las unidades de control realizados por diferentes fabricantes de automviles debido
a distintas interfaces y protocolos. Software en la electrnica de automocin deben tambin estndar.
Una implementacin de software modular y estructurado sobre la base de interfaces y protocolos
estandarizados como propone OSEKVDX es una necesidad. Esto le da a la portabilidad y capacidad de ampliacin.
y, por lo tanto, la reutilizacin de software existente. Actualmente, el software importante normas y orientaciones
son AMI-C (Interfaz multimedia de Automocin Colaboracin) \lmp://www.ami-c.org\, MISRA-C (industria del
automvil la fiabilidad del software estndar de asociacin forC idioma directrices para sistemas de automocin)
[www.misra.org.ukJ Y OSEK/VDX para RTOS. La comunicacin y la gestin de la red. (Consulte el sitio
web http://www.osek-vdx.org y tambin un libro de programacin en el entorno de OSEK/VDX por Joseph
Lentieux de CMP Libros, octubre de 2001).
Es un acrnimo de OSEK Offene Systeme und deren Schnittstellen fur die Elektronik en Kraftfahrzeugen
(eng.. "Sistemas Abiertos y sus interfaces para la electrnica en los vehculos de motor"). Una empresa automotriz
alemana consortium (BMW. Robert Bosch GmbH. DaimlerChrysler, Opel, Siemens y Volkswagen Group) y la
Universidad de Karlsruhe OSEK fundada en 1993. Posteriormente VDX (vehculo ejecutivo distribuido) de
Renault y PSA Peugeot Citron se uni al consorcio.
OSEK/VDX es un rgano encargado de definir y especificar tres estndares para un SO integrado.
1. Uno es para la ejecucin en tiempo real de las unidades de control electrnico (ECU) de software y base
para las otras OSEK/VDX mdulos usando MODISTAKC (mtodos y herramientas para la validacin de
QSEK/VDX arquitecturas distribuidas basadas en y para las pruebas de conformidad de OSEK/VDX
implementaciones.
2. La segunda es para la pila de comunicaciones para el intercambio de datos dentro y entre las unidades de
control.
3. La tercera es para el protocolo de gestin de red para la determinacin de la configuracin integrada de
sistemas de automocin y la supervisin.
OSEK/VDX tambin ha producido otras especificaciones relacionadas. Hay dos alternativas estndar del
sistema operativo y sistemas de comunicacin. Uno es para los requerimientos normales (estndar de sistema
operativo/especificaciones de comunicacin). La segunda es para las necesidades especiales. Globalmente
especiales sincronizados arquitecturas tolerantes a fallos ate cubiertos con cal OSEK especificaciones. La figura
10.2 muestra la OSEK caractersticas bsicas. OSEK prev ampliacin funcional. Uno puede integrar nuevas
funciones de aplicacin en una sola unidad de control junto con otras API. OSEK proporciona mucha porting API.
No es fcil la transferencia de funciones de aplicacin de una ECU de hardware a otra plataforma, con slo
pequeas modificaciones.
OSEK especificidades que ampliacin y portabilidad debe quedar independiente de la fuente de co-cxistencc
y API de software desde diferentes fuentes debe ser posible. Ser coment que OSEKVDX docs no prescribir la
implementacin de mdulos OSEKVDX. ECU diferentes pueden tener el mismo OSEKVDX interfaces, pero
implementaciones diferentes, dependiendo de la arquitectura del hardware y el rendimiento requerido.
OSEK define tres normas.
1. OSEK-OS para OS. que golpea la mayor fiabilidad. Es porque, en un sistema operativo basado en OSEK.
Los anteriores diez puntos sean tenidos en cuenta.
2. OSEK-NM arquitectura para la gestin de la red. Como en el sistema operativo. Las tareas se dividen en
cuatro tipos, y el NM divide la arquitectura en dos tipos: (i) La transferencia directa y el intercambio de
mensajes de red: (ii) transferencia indirecta e intercambio, tanto entre los nodos.
3. OSEK-COM arquitectura de ordenadores i' apuesta ween la misma CPU y tareas de la unidad de control
entre las distintas tareas de la unidad de control de la CPU. Entre las diferentes tareas de la unidad, las
capas de enlace de datos y f sica existe. CPU diferentes capas fsicas conectar por arquitectura de bus
CAN.
OSEK OS disposiciones estndar para una mayor fiabilidad en comparacin con VxWorks o MUCOS. Los
MUCOS proporciona OSEK/VDX extensin y proporciona al programador el usuario un certificado OSEK/VDX
application programming interface. La fiabilidad es introducido por la interfaz porque la extensin es compatible
con el sistema operativo de conformidad CCO clases I y ECC I. El CCCA COM clases de conformidad y CCCB
estn previstas

Los sistemas integrados

La comunicacin interna. Extensin de no permitir la creacin y eliminacin de tareas durante la ejecucin.


Extensin define cada tarea de prioridad diferentes y se activa slo una vez en los cdigos. Extensin de no uso de
colas de mensajes y utiliza semforos como evento bandera slo con tareas no tener tiempo de ejecucin
eliminacin o creacin de estos.

Fig. 10.2 Funciones bsicas de OSEK

' 10.3 Linux 2.6.x y RTLINUX


Come es cada vez ms utilizado en sistemas embebidos y en tiempo real de las mejoras que se han introducido
como Linux \. Las mejoras proporcionan preemptive scheduling, temporizadores de alta resolucin e interrumpir el
servicio preventivo vhiler) los hilos. ltima versin de Linux es Linux 2.6.24. publicado en enero de 2008. Razones
para la popularidad del SO re que es un freeware, tiene caractersticas de controlador de dispositivo, tiene capacidad
de ampliacin de los cdigos del kernel en tiempo de ejecucin y tiene sobre ision de registrar y deregistering
mdulos de controlador de dispositivo. Los mdulos estn programados como los procesos, .edicto de 10.3. I y
10.3.2 describir el software de fuente abierta Linux en tiempo real y RTLinux (Linux) en tiempo real (tanto abierto
nurcc y la profesin).

0.3.1 Funciones de Linux en tiempo real


Mentira SO Linux es nombrado despus de Linus Torvaids, padre del sistema operativo Linux. Embedded Linux
sistemas combinan la ,inux kernel con un pequeo conjunto de utilidades de software libre. La glibc se reemplazan
a menudo como la biblioteca estndar de C por ;ss que consuma recursos alternativas como dietlibc, o Newlib
uClibc.
"
Embedded Linux application program (tareas) hace que el sistema calis o Message Passing (Seccin a. 1.2) para
le funciones a un ncleo. I. La gestin del proceso, 2. Gestin de memoria (por ejemplo, asignacin y desasignacin,
ointers, creacin y supresin de las tareas), 3. El sistema de archivos, 4. Memoria compartida 5. Funciones del
sistema de redes,

La programacin del sistema operativo en tiempo real-ll: Windows CE. OSEK y Real-Time Linux ...

(497J

6. Funciones de control de dispositivo para cualquier perifrico presente en un sistema (computadora) 7. Editores
grficos para la configuracin del kernel. 8. La programacin de cal real suave. La fol bramido arc tres clases
importantes de dispositivos en Linux incrustado.
Programador de Linux en tiempo real tiene todas las funciones como 0(1) de funciones, lo que significa que
el tamao de entrada a una funcin y la funcin de tiempo de ejecucin son linealmente correlacionados. El
programador de tareas es compatible con bloqueo de giro (Seccin 7.11), y es un programador de preferente. Linux
soporta caracteres y dispositivos de bloque. Un tipo de dispositivo puede ser un dispositivo por ejemplo CHAR,
un puerto paralelo, puerto serie o matriz LCD o el teclado o el ratn. El acceso es de carcter de byte-por-byle y
anlogos a los accesos desde y a un dispositivo de impresora. Funciones de llamada del sistema tambin son como
un 10 dispositivo abierto ( ), cerrar ( ). write() y leer ( ) Funciones (Seccin 8.6.1).
El kernel de Linux asigna un dispositivo a un nodo de un sistema lile. Los controladores de dispositivos de
red para los dispositivos de la red tambin admiten el protocolo de resolucin de direcciones (ARP) y soporte de
resolucin reversa de direccin (RARP). Recordar la Seccin 4.9.4 para obtener la descripcin de los controladores
de dispositivos de Linux. Los aspectos importantes de Linux se explican a continuacin.
Linux tiene las siguientes caractersticas tiles para el diseo de sistemas integrados.
1. Es multi-usuario Linux OS y apoya a grupos de usuarios (2i).
2. Linux ha directorio raz (representado por el signo /) y todos los archivos son subdirectorios. Por
ejemplo, un archivo de mdulo de dispositivo en el subdirectorio /dev. Los archivos de usuario directorio
es /user.
3. Linux tiene gran nmero de editor, los archivos, los directorios. 10 comandos. Cada comando puede
constar de un nmero de palabras, la primera palabra es la de mando y palabras restantes son los
argumentos. Una palabra puede ser una palabra compuesta por varias funciones y acciones.
4. Linux tiene el nmero de interfaces de usuario. Por ejemplo. X-Windows para GUI y esh (para C shell).
[Shell ejecuta un proceso primario. Shell es un interfaz de usuario que permiten introducir los comandos
para el sistema operativo. Shell lee, interpreta, comprueba si hay errores y ejecuta el comando(s). Para la
ejecucin de un comando, se crea un proceso hijo, (esta accin se llama horquilla). Despus de la ejecucin,
es volver al proceso primario, que emite un mensaje signo $. El shell espera a otro comando de usuario.|
5. Linux utiliza procesos y subprocesos Posix (Seccin 8.12). Los archivos de cabecera Linux Linux/ typcs.h
y Linux/ shm.h. Si incluy apoyo el sistema de programacin para bifurcacin de procesos y funciones de
memoria compartida en el kernel. Para funciones de memoria compartida, el mapa de POSIX se utilizan
en Linux.
6. Un proceso crea siempre como proceso hijo en el proceso que utiliza la horquilla () funcin. El nio crea
que la copia de uno de los padres con un nuevo identificador de proceso (Seccin 7.1). Puede haber 2'"ID
de proceso. La horquilla 0 devuelve un proceso diferente stntcture pid para el padre y el nio se convierte
en nmero de PID = 0. El proceso hijo est hecha para realizar diferentes funciones de los padres por la
sobrecarga de la funcin del proceso primario utilizando exeev funcin ( ). La funcin tiene dos
argumentos, el cruce jtatne para el nio y la funcin fimction_arf>mnenis funciones para el nio.
Cada proceso tiene su propia memoria-n y no puede llamar directamente a otro proceso. No hay proceso
ligero como en UNIX.
7. Linux tiene mdulos para el personaje, bloquear la toma de red, controladores de dispositivos y otros
(Seccin 4.9.4) y Linux 2.6.x admite 4093 tipos de dispositivo. Cada tipo de dispositivo puede tener
2W Direcciones de dispositivo. Un dispositivo de caracteres (por ejemplo, puerto paralelo, puerto matriz
LCD, teclado o mouse) recibe o enva una secuencia de bytes de acceso secuencial. Un dispositivo de
bloques (por ejemplo, sistema de archivos o la memoria RAM DISH) es un dispositivo que controla un
bloque o parte de un bloque de datos. Por ejemplo, 1 kB de datos manejados en un momento. Cada bloque
dispositivo recibe o enva a travs de un nodo de sistema de archivos (Seccin 8.6.2). Un dispositivo de
red (por ejemplo, Telnet, FTP, TCP, IP o pilas de protocolo UDP en el dispositivo de red) es un dispositivo
que controla el dispositivo de interfaz de red (tarjeta o adaptador) mediante una lnea, por ejemplo,
protocolos de tty o PPP o SLIP. Una interfaz de red recibe o enva paquetes usando un protocolo y tomas,
y el ncleo utiliza los mdulos relativos a la transmisin de paquetes. Un dispositivo de entrada es un
dispositivo que administra las aportaciones de un dispositivo, por ejemplo, el teclado. Un controlador de
dispositivo de entrada tiene funciones para los dispositivos de entrada estndar. Los controladores de

14981

Los sistemas integrados

El controlador de vdeo tiene funciones para los dispositivos de salida de video estndar. Un controlador
de dispositivo de sonido tiene funciones para los dispositivos de audio estndar. Un dispositivo de sonido
es un dispositivo que maneja audio en formato estndar.
8. Linux soporta una inicializacin del mdulo, el manejo de los errores, la prevencin de accesos no
autorizados, uso de puerto cuenta' en el nivel de raz, seguridad y limpieza. Un mdulo se crea por
compilar sin principales ( ). Un mdulo es un archivo objeto. Por ejemplo, un objeto modulel.o crea desde
modulel.c Archivo por orden $ gcc -c (flags) mdulo l.c. El SO Linux admita el registro del controlador
configuraciones y funciones. Tabla 10.8 proporciona estas funciones. Programador de Linux no slo
planifica las tareas y el dispositivo
Un ncleo Linux puede insertar un mdulo de registro y eliminarlo de des-registrar. (Registro significa que
est previsto para ms tarde, cuando llega su turno. Deregistering significa que el mdulo ser ignorado. Es similar
a la tarea de desove y eliminacin). MUCOS (Seccin 10.2) registra y deregisters las tareas y 1SR interrumpe las
tareas (por ejemplo, una interrupcin de software instrucciones) y transmite los mensajes a las tareas. Vx Works
(Seccin 9.3) del kernel y deregisters registra las tareas (modo de anticiparse a la programacin), as como los ISRs
anidados. Kernel de Linux proporciona el registro y deregistering de los mdulos de controlador de dispositivo.
As, el kernel de Linux permite la programacin de controladores de dispositivo y mdulos. Por lo tanto, las
diferentes tareas o programas pueden enviar los bytes simultneamente o secuencialmente a un dispositivo a travs
de su controlador registrado en el kernel. Adems, el kernel de Linux reforzar el uso de accesos secuenciales, a
direcciones de memoria especficas nicamente, por la inscripcin y registro de mecanismo. 9 10
Tabla 10.8 registrando y De-Registering y funciones relacionadas de mdulos en linux

Funcin

Action(s)

Init
El init_module( )se llama antes de que el mdulo se inserta en el ncleo. La funcin
devuelve 0 si la inicializacin se realiza correctamente y un valor negativo si no lo hace.
La funcin registra un manejador lor algo con el kernel. Alternativamente, sustituye a una
de las funciones de kernel por sobrecarga.
Inserta el mdulo en el kernel de Linux. El archivo objeto modulel.o, se inserta
Insmod
mediante el comando insmod modulel S.o.
Un archivo de mdulo modulel.o es eliminado del ncleo mediante el comando rmmod
Rmmod
modulel $.
Limpieza
Una funcin de vaco a nivel de kernel, que realiza la accin en un rmmod llamada desde
la ejecucin del mdulo. El cleanup_module( ) se llama justo antes de extraer el mdulo.
El cleanup_module() niega cualquier init_module() y el mdulo de descarga de forma
segura.
Register_capacidad Una funcin de nivel de kernel para registrarse.
Unregister_capacidad Una funcin de nivel de kernel para deregistering.
Register_symtab
Un smbolo de funcin de la tabla de apoyo, que existe como una alternativa para
declarar funciones y variables estticas.
9. El archivo de cabecera Linux Linux/time.h, si es compatible con la funcin de sincronizacin incluido
en el kernel para la programacin. Los archivos de cabecera Linux Linux/delay.h y Linux/tqueue.h, si
inclua soporte funciones de retardo de colas de tareas y funciones. Las colas de tareas compatibles son
los temporizadores,
disco,
inmediata
planificador.
10. Linux
soporta seales
(Seccin
7.10)yen
un evento. .El archivo de cabecera Linux Linux/signal.h est
incluido que admite la funcin de sealizacin. Linux soporta multithreading (Seccin 7.2), semforos,
mutex. Los archivos de cabecera Linux Linux/pthread.h, Linux/ipc.h/sem.h de Linux, Linux/msg.h se
incluye para apoyar

Sistema operativo en tiempo real programacin-K: Windows CE. OSEK y Real-Time Linux ...

499

Las OP1X (Secciones 8.12) de rosca, IPC. semforo (incluyendo mutex) y las funciones de la cola de
mensajes, respectivamente (apartados 7.10 a 7.16). La tabla 10.9 proporciona las funciones para la seal,
multiproceso y el semforo y Message Queue IPCs.
11. Linux 2.6.x todas las tareas se asignan prioridades estticas entre -19 a +20 (de mayor a menor).
Segmentos de tiempo son variadas segn prioridad.
12. Real-time Linux 2.6.24-una ltima versin admite un nuevo conjunto de funciones de programacin de
grupo, lo que mejora la carga de la CPU.
13. Linux 2.6.18 proporciona temporizadores de alta resolucin como wel como tick-menos
temporizadores. (Tick-menos significa no provocar interrupls-reloj).
14. Linux 2.6.18 soporta funciones para mejorar el rendimiento del sistema, restringiendo el dispositivo de
bloque de tomar mayor carga de CPU.
Recientemente de Wind River VxWorks fama ha optimizado su plataforma de software para dispositivos
Linux.
Tabla 10.9 Funciones Linux para la seal, multiproceso y el semforo de la cola de mensajes y
comunicacin interproceso

S.No.
1
2

Caracters
Di'Scripiion
tica
Las roscas del mismo proceso comparten el espacio de memoria y administrar los
Rosca
Propiedad permisos de acceso. El IPCs se utiliza para objetos de sincronizacin (objetos) de
es
comunicacin entre procesos y subprocesos.
Seal
1. Struct sigaction seal. 1: /* Declaracin en C define una estructura de la seal. 1. */
Funciones 2. Seal.l.sa.fiags = 0; /* Establece flags = 0*/
3. Seal.l.sajiundler = handlingfunction.l; /* define el manejador de seal como
una funcin definida por el usuario handlefunciion.l. */
4. (foigiuil sigemplyset_l.sa_ma.SKL. Seal I define como vaco y sa.mask enmascara
la ejecucin del manejador de seal. */
5. Sigaction ( S I G I N I T . foignal.l. /* o inicia la seal handlingfuneliun funetion..I()
utilizando la estructura de la seal.!. */

.?

Rosca
Funcione
s

Semforo
Funciones

1. Struct pthreadj clicntThd.l. clicnlThd_2. ServingThd: /* Declaracin en C define


lluee
Estructuras lor hilos POSIX. clicntThd clieniThd.l.2. ServingThd. */
2. Pihrcad.crcate (&clientThd_l. NULL. (): thread.I. NULL) I* crea con rosca
Estructura clieniThd.l y llamar funetion Thread.I. NULL es el parmetro que se pasa.
Asimismo las roscas eliemThd_2. ServingThd y otros pueden ser creados*/ La
funetion
Devuelve un entero tmuedstati que no es 0 en facilidad de creacin del subproceso
falla.
3. Pthread.auto (); /* devuelve (GETS) ID del funetion ptluead.subproceso de
llamada automtica (AUTO) * f
4. PtlireadJoin (&clienlThd_l. &threadNew) /* Se une a rosca con estructura
clieniThd.l y
ThreadNew. / La funcin devuelve un entero creutedstcite que no es 0 en el caso
de hilo
Creacin falla.
3. Pthread.exit ("text") /* sale el subproceso en ejecucin y muestra en la consola de
texto
(Omni)
Salir. */
6. Sleep (sleepiime): /* El subproceso duerme durante un perodo
= sleeplinie nanosegundos. Otros
Subproceso obtiene la CPU en intervalo de reposo*/
7. Pthread.matar 0; /* enva la seal de "matar" a la rosca */
I. Struct sem.t semi. scm2; /* Declaracin en C define tres estructuras de semforo

500;

Los sistemas integrados

S \'o caracterstica

Descripcin

2. Semjnit 0; los argumentos son semforo para l se inicializa y opciones. La funcin


Devuelve un entero cmiteil.estado que no es 0 en la facilidad de iniciacin de semforo falla
3. Sem_aullad enviarse (&I); /* lamentacin por el semforo enviado I */
4. Sem_post (&seml I; I* post al semforo semi *1
5. Sem_destroy (&semi); /* destruir al semforo semi s/.
Mutex
Funciones

1. Struct plhread_mutex_t ms 1, tns2; /* Declaracin en C define tres estructuras para


Estructura de semforo (bloque de control de eventos), nisi y ms2. */
2. Pthread_mutex_inil 0: Inicia un mutex. Los argumentos son semforo para ser iniciado
(MS I o ms2 u otros) y el parmetro opciones. La funcin devuelve un entero
Createdstate que no es 0 en caso de falla de iniciacin mutex
3. Pthread_mutex_lock(); el argumento es mutex msl o ms2 u otros*/
4. Pthread_mutex_unIock (); el argumento es mutex msl o ms2 u otros*/
5. Pthread_mutex_destroy(); el argumento es mutex msl o nis2 u otras*/
1. Pthread_mq_open(), mq_clo.se ( ) y ( )_unlink tnq inicializar, cerrar y quitar un

Pies de las
funciones
de la cola

Llamado cola, desvincular () no destruye la cola inmediatamente, pero impide que el otro
Las tareas de uso de la cola. La cola se destruyo slo si la ltima tarea cierra el
Cola. Destruir los medios de asignar la memoria asociada con la cola BCE.

de

2. Pthread_mq_setattr <) establece los atributos.

mensajes

3. Pthread_mq_lock ( ) y pthread_mq_unlock ( ) Bloqueo y desbloqueo de una cola.


4. Pthread_mq_send ( ) y pthread_mq"recibir ( ) para enviar y recibir en una cola.
Niq_enviar cuatro argumentos son msgid (ID), cola de mensajes (void *) &qsendingdata (puntero
A la direccin de los datos del usuario), si/eof (qsendingdata) y 0. mq_ reciben cinco argumentos
son
Msgid (ID), cola de mensajes (void *; &qreccivedata (puntero a la direccin de hufferdata).
Sizeof (qreccivjngdata). 0 y 0.
5. Pthread_mq_notify ( ) seales a una sola tarea lamentos de que el mensaje est ahora disponible.
El anuncio es exclusivo para una nica tarea, que ha sido registrado por una notificacin.
(Registrado significa ms tarde toma nota de pthread_mq_notify.|
6. La funcin pthread_mq_getattr ( ) recupera el atributo de una cola de POSIX.
La cola de funciones son equivalentes a los dispositivos de caracteres, se accede a ellos a travs de

Las colas de
Funciones

Tiempo
Funciones

9 funciones de
memoria
comparti
da

lectura/POSIX writc/
Abrir/sistema de llamadas ioctl.
1. Nanosleep (sleeptime): /* El sueo de nanosegundo perodo definido en el argumento sleeptime /*
2. Clock_getthrtime (); /* devuelve getthrtime de alta resolucin en tiempo (ns) del reloj
Clock. El reloj es el nombre del sistema de reloj (Clock) especificados anteriormente. */
3. Getthrtime (): /* devuelve getthrtime de alta resolucin en tiempo (ns) en un subproceso en el que
se
Utiliza como argumento. */
4. Clock_gettime (): /* gettime devuelve la cal del reloj denominado reloj. */
5. Clock_settime(); /* settime establece la hora del reloj denominado reloj. */
Usado como una alternativa al uso del IPCS.
1. Incluir <shm.h>/* incluye la cabecera de memoria compartida*/.
2. Incluir "common.h> /* incluye el encabezado del archivo de memoria comn*/.
(Podra)

'1
La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

.S'./VVi. H'eautre

501

Descripcin
.'. slruc common_slruct sharedblck; /* Especifica una nueva estructura shavedbick
4. Im shntgel shmID = ((key_l) num. si/eof (slruc commi)n_Mruci I. OM>61 IPC_CRF.ATi: /
shmgei ( ) los argumentos de la funcin son (key_l) num (= 2,177). El tamao de la estructura
comn y una opcin para la creacin o utilizacin de memoria compartida de 1pc. Volver ID
de memoria compartida estructura/.
5. = shmat sharedMeml (shmID, (void *)(). 0) /* puntero a un bloque de memoria compartida se
encuentra sharedMeml por funcin shmat. Los argumentos son ID del bloque de memoria
compartida, la funcin de puntero nulo y la opcin 0. SV.
6. Int_shmem slatus = shmctl (shmID. 1PC_RM1D. 0): /* brill ( I los argumentos de la funcin
son los argumentos son ID del bloque de memoria compartida, IPC_RMID puntero y la opcin
0. Estado de la memoria compartida de retorno shmem_status */
7. Im_shmdt shmemdetect stalus = (sharedMeml): /* slinidt ( ) la funcin argumento es el
puntero al bloque de memoria compartida sharedMeml. Devuelve -I si no eliminado. */

103.2 RTLinux
Una extensin de la versin de Linux en la que anteriormente no haba soporte en tiempo real POSIX es un difcil entorno de
tiempo real utilizando un ncleo en tiempo real. El ncleo se denomina RTLinuxFreeand RTLinux Pro. freeware y software
comercial, respectivamente. V. Yodaiken desarrollado RTLinux.
Existen modificaciones relativamente sencillas, que convierte el kernel de Linux en tiempo no real con round-robin scheduler
en un difcil entorno de tiempo real. La latencia de interrupcin determinista isr execute en RTLinux core y otras tareas de
procesamiento deterministas son transferidos a Linux. La reenvan funciones Linux se colocan en el FIFO con la comparticin de
memoria entre RTLinux subprocesos como mxima prioridad y funciones Linux ejecutndose como hilos de baja prioridad. La
figura 10.3 muestra RTLinux caractersticas bsicas.
La ejecucin de la tarea en la siguiente configuracin da duro de rendimiento en tiempo real.

Fig. 103 RTLinux Caractersticas bsicas

.p>

Ejecutar tareas primitivas ihe slo con memoria asignada estticamente. La asignacin dinmica de memoria o

La asignacin de memoria virtual presenta impredecible y asignacin de tiempos de carga.

502

Los sistemas integrados

. ____

Ejecute la tarea en tiempo real sin proteccin de espacio de direcciones. La direccin de memoria que implica proteccin
Comprobaciones adicionales, que introducen el impredecible Carga y asignacin de horarios.
Ejecutar con la deshabilitacin de interrupciones, de modo que otras interrupciones no introducen la imprevisibilidad.
Ejecutar una prioridad fija simple scheduler.
Cuando se conecta el FIFO de tareas en tiempo real con los procesos de Linux, realice (l la sincronizacin entre
Difciles tareas en tiempo real y de tamao limitado FIFO-colas que se logra mediante el uso de memoria compartida
(no
A travs de Mi PC).
Soft -tarea en tiempo real de las aplicaciones pueden configurarse para que se ejecute de forma distinta. Esto es porque el
RTLinux permite
Flexibilidad en la definicin de tarea en tiempo real el comportamiento, la sincronizacin y la comunicacin, porque el ncleo de
RTLinux
Ha sido diseado con mdulos, que puede ser reemplazado para hacer el comportamiento flexible en la medida de lo posible.

No procesos en tiempo real de las aplicaciones se ejecutan como el Linux (antes de la versin 2.6.x lleg)
procesos.

Ejemplo 10.2

2. Todos: Mdulo I .o /* archivo objeto en modulel.o */


Programacin
con RTLinux Pasos Malos ejecutando un programa es el primer arranque RTLinux. Ejemplos siguientes

3. Limpiar: rm -f .o /* eliminar utilizando la funcin rm ficheros objeto insertado antes este archivo */
4. .0: modulel modulel ,c I* modulel .0 es objeto del archivo de origen modulel archivo .c */
/
5. $(CC) $[include) ${CFLAGS} -c modulel.c /* Compilar, incluyen Cflags mdulo C modulel.c */ J!
Ahora $ comando compila los archivos. $ comando inserta modulel rtlinux start (inicio) Objeto binario archivo
ml modulel.o. $ comando dmesg muestra los mensajes. $ comando stop rtlinux modulel Mlelimina (topes)
objeto de archivo binario modulel.o.
Jtm
Proporciona una manera de compilar el mdulo en RTLinux. Es similar a la de Linux.

RTLinux admite un mdulo, as como las roscas de la inicializacin, el manejo de errores, prevencin de accesos
no autorizados, los recuentos de uso de puerto, seguridad en el nivel de raz y de limpieza. Programador de
RTLinux no slo planifica el

Apim
mu m

RTLinux tiene las siguientes caractersticas tiles en tiempo real para el diseo de sistemas integrados.
1. Pequeo ncleo. El ncleo es como una capa de la mquina virtual. El ncleo kernel RTLinux proporciona
Apropiaci n kernel as como no anticiparse kernel.
2. Ejecutivo RTLinux no se pueden anticipar.
3. Las tareas ejecutadas en tiempo real en el modo privilegiado y por lo tanto acceden directamente al hardware y no utilizar
La memoria virtual. Las tareas en tiempo real se escriben como Linux mdulos especiales que se pueden cargar
dinmicamente
En la memoria.
4. La latencia del peor caso determinista para nmero de procesadores x86, ARM, MIPS probados durante largos
Los perodos de cargas extremas es muy pequea.
5. CPU puede ser asignado a determinados hilos en tiempo real, por ejemplo, durante el procesamiento de medios. Para
una tarea.
Prioridad es introducido y establecido, y la tasa de repeticin y programacin algoritmo puede ser seleccionado.
6. RTLinux proporciona alto rendimiento caso promedio y el tiempo real de los subprocesos cumple estrictamente el
peor
Los plazos limitados.
7. Api de hilos POSIX ha POS1X5I ESPECIFICACIN 1003.13 PSE. sta es mnima en tiempo real
Especificacin del modelo del sistema. Las funciones de Linux o Unix son la prioridad ms baja con POSIX threads
lPCs
Utiliza la
memoria
compartida
y colas sin
bloqueo
de cola
desactivado)
y
1. Como
rtl.mk
/* incluyen
RTLinux
hacer
archivo.
El(incluso
rtl.mk cuando
archivointerrumpe
es un archivo
de inclusin
que
Memoria compartida.
contiene
todos los indicadores necesarios para compilar el cdigo. */

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

! 503 j

Roscas y mdulos. El RTLinux admite el registro de los mdulos, hilos, configuraciones, funciones, rosca piiorily
asignacin y planificacin. Cuadro 10.10 da el registro, de inscripcin, la prioridad y la programacin de
subprocesos de tiempo real y FIFO-funciones relacionadas en RTLinux.
Cuadro 10.10 registrando De-Registering, prioridad en tiempo real y la programacin de rosca y FIFO-Funciones
relacionadas En RTLinux
Fimciit'n

Accin) s)

Inil insnind. elaenup. El inii_module(). insmod_module(), la limpieza ()y rmmod.moduIeO las mismas funciones como y
rminod
Linux
RT Linux funciona

1. Ril.hard.enable.irq ( ):/* permite interrupciones en tiempo real duro */


2. Rtl_HARD_disable_irq ( );/* obtiene el reloj actual calendario */
3. Nlinux_sigaciion ( ); /* para el manejo de la seal RTLinux en funcion de la aplicacion */
4. Nl_getscheddcok ( );/* obtiene el reloj actual calendario */
5. Rtl_request_irq ( ); /*para instalar el manejador de interrupcin en tiempo real */
6. ItUestore.interrupts ( ); /* Restaura el estado interrumpe la CPU *1
7. Rtl_ stop.interrupts ( ); /* Detiene la CPU interrumpe *1
8. Rtl_printf(); /*para imprimir texto de rosca en tiempo real *1
9. Rt! No hay interrupciones ( v. /* /* sin interrupciones de CPU permitido*/

La creacin de
subprocesos y obtener
ID de subproceso

Creacin y obtencin de ID es igual a Linux hilos pthread_create () y pthread_self ().

Semforo mutex y
funciones
Thread Wait
Ejecutando
RT
Definicin
de
perodo de rosca

Igual que en Linux.

Pthroad.aullad.npO: /*subproceso espera para otro subproceso complete*/.


Pthread_make_"np peridicos (pthread.selt'O. gelhrtimeO. 800000000): /* define la
periodicidad con un hilo de rosca del auto. El primer argumento es una referencia a s mismo
subproceso (thread). El segundo argumento es gelhrtimeO es una funcin para obtener tiempo
de rosca. Tercer argumento es para definir el perodo de ejecucin de rosca = ns 800000000.
Cualquier otro perodo pueden definirse en el tercer argumento.*/

Eliminacin de rosca RT
Plhread_delete_np (rosca. I); /* eliminar el hilo hilo.I*/
La prioridad del subproceso1. Struct schcd.param thrd thvd I.2: /* define dos estructuras para roscas thrd thrd I.2
parmetros de asignacin. */
2. Thrd l.sched.prioridad = I; /* define thrd he programado parmetro priority = I (=alto).
Asimismo lhrd2 prioridad puede defini */
3. Pthiead.setschcdparam (pthread.auto (), SCHED.FIFO, & thrdl;/* Funcin setschedparam
argumentos son legtima funcin, planificacin define como FIFO y rosca thrdl estructura.
Asimismo thrd2 argumentos para la funcin puede definirse setschedparam */
Thrdl_put(FID. &queuebuff, I), j* Funcin pul_thrdl argumentos son fid (= un entero para
Pul en el FIFO de
ID del descriptor de FIFO, digamos. 1, 2,3,..). direccin de bfer de cola y una opcin
rosca
queuebuff = I */
Rosca en tiempo real
I. pfnread_attr_setcpu_ np (); /* Establecer atributos de pthread de CPU. */
Funciones
2. pthread_attr_getcpeL np .'W, /* Obtener atributos de pthread de CPU. */
3. Plhread.attr.setfp. np (); /* Set de punto flotante de pthread de CPU permiten
atributos.*/
4. Pthread. suspender, np (); /* suspende el subproceso ejecuta.*/
(Cnnul)

504

Los sistemas integrados

5.
6.
7.
8.
Rc:il-se

tirne

funciones FIFO

Activacin pihread__ np ( ): /* Se despierta la rosca .*/


P:hrcad_ espere_ np ( I: /* espera iniciar Tor (mensaje o seal) el subproceso .*/
Pthread__ setFp np ( ); /* permite la aritmtica de punto flotante.*/

Pthrcad_delete_ np ( ); /* eliminar la rosca.*/


1. Rtf_crealc ( ), rlf_ereate_RT_handler ( ), rtf_open ( ). RTF_close ( ) y rtf_UNLINK ( l son
Las funciones de dispositivo crealeFlFO, crear controlador en tiempo real, inicializar, cerrar y
quitar
Un denominado RT FIF10. unlink ( ) no destruye la cola inmediatamente pero evita la
Otras tareas de uso de la cola. La cola se destruyo slo si la ltima dosis de tareas
La cola. Destruir los medios de asignar la memoria asociada con la cola BCE.
2. Rttlsetattr () establece los atributos.
3. Rtfjock () y RTF_unlock () bloquear y desbloquear una cola.
4. Rtf_put (FID, &queuebuff, I), j* Funcin rtf_presentar argumentos ate fid (= un entero FIFO
ID del descriptor, es decir, 1, 2, 3,..), direccin de bfer de cola y una opcin queuebuff = I */.
5. Rtf_get (FID, &queuebuff, 1); ;/* Funcin rtf_get argumentos son fid (= un entero FIFO
ID del descriptor, es decir, I, 2, 3,..), direccin de bfer de cola y una opcin queuebuff = I */.
6. Rtf_enviar () y RTF_receive () para enviar y recibir en una cola. RTF_enviar cuatro
Los argumentos son fid (FIFO), ID de dispositivo (void *) &qsendingdata (puntero a la
direccin del usuario
Datos), sizeof (qsendingdata) y 0. mq_ reciben cinco argumentos son msgid (mensaje
ID de cola), (void *) &qreceivedata (puntero a la direccin de bufferdata sizeof).
(qreceivingdata). 0 y 0.
7. Rtf_notify () de seales a una sola tarea espera que el mensaje est ahora disponible. El
Aviso es exclusivo para una nica tarea, que ha sido registrado por una notificacin
(Registrado significa ms tarde toma nota del rtf_notify).
8. Rtf_getattr () recupera el atributo de una RT FIFO.
9. Rtf_flush vaca () los datos de un RT FIFO.
10.

Rtf_allovv_interrtipts : ( ) /* controla en tiempo real "manejador de interrupcin 7.

11.

Rtf_fnse_irq ( ); /*libera manejador de interrupcin en tiempo real */.

El IPC se realiza mediante una operacin de FIFO como sigue. FIFOs iime real utilice una fuente (un
verdadero proceso

Ejemplo 10.3
En este ejemplo se muestra cmo crear un subproceso y define su periodicidad en tiempo real y utilizar RT
FIFO de rosca
Dispositivo para poner en el bfer.
,_1. Como rtl.h
/* Incluir el archivo de cabecera RTLinux.9/.
2. Incluir pthread.h
/* incluyen POSIX thread* / archivo de cabecera.
3. Como rtl_fifb.h
/* Incluir el archivo de cabecera FIFO RTLinux.*/
4. Incluyen el tiempo.h
/* Incluir temporizador* / archivo de cabecera.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

505

5. Definir fid 5 /* Definir ID FIFO = 5 */


6. Int abierto ("/dev/rtl'5". 0_WR0lo); /* Abrir dispositivo FIFO rtf5*/
7. ClientThd sruct pthread_t_l /* crear un subproceso de cliente 1*/
8. Int init_modu!e (void) (
9. Volver pthread_create(&clientThd_l, NULL thread_l, NULL); /* crea con estructura clientThd
thread_l y llamar a la funcin thread_l. Devuelve el ID del hilo regresar. */
10. )
11. Void cleanup_module (void).
12. ( pthread_clientThd eliminar np (l); I* eliminar la rosca funcin */
13. )
14. Void * thread_! Int (FID) { /* Funcin Threadl *1
15. Char queuebuff esttica = 0; /* Definir bfer FIFO direccin */
16. Pthread_make_np_peridico (pthread_self(), gethrtime(), 800000000); /* Se define como perodo
de rosca ns 800000000 *1
17. Mientras que (1)
Un
18. {pthread_wait_np(); /* ESPERE PARA RT thread */
19. Queuebuff = (int) queuebuff A0xff; /* Definir nuevo bfer FIFO direccin */
Wj
20. Rtf_put(FID, & queuebuff, 1); /* pone en el FIFO queuebuff definido por fid */
Mi
21. } return 0; ).
1MM

Jj

Resumen
El siguiente es el resumen de lo que hemos aprendido en este captulo.

Windows CE (WCE) es un sistema operativo para sistemas ., dispositivo de mano y dispositivos mviles, que tienen
recurso
Limitaciones de alimentacin, la memoria, la pantalla tctil o el tamao de la pantalla y velocidades de procesamiento.
Tiene extensiones para
PCs de bolsillo y los automviles.
WCE es una abierta, escalable y pequeo tamao los SO de 32 bits.
Una mejora de WCE es Windows CE.NET. |.NET Framework proporciona para compilar el cdigo administrado.
El cdigo administrado es uno que est compilado en el CIL (Common Intermediate Language). Da plataforma
independiente
CPU neutral como la compilacin de cdigos de bytes.
WCE proporciona una plataforma Windows para los sistemas y da al usuario sentir, mirar e interactuar con el sistema.
Mediante GUI de forma similar a un PC con Windows.
80x86 o SuperH o ARM, SH4 y arquitecturas de procesador basado en MIPS son compatibles con WCE y el WCE
Optimiza el rendimiento del procesador.
Hay compaiientization de SO. OS tiene dos niveles: uno es el cdigo fuente y el otro es el cdigo compartido
Con el fabricante de dispositivos.
una aplicacin basada en Windows programa est escrito para responder o activar o cambios en el estado actual
Empujar la notificacin(s) desde el sistema operativo. Se produce una notificacin de un evento. La notificacin se enva
el mensaje a
El programa de aplicacin en Windows. Los mensajes se colocan en cola para las ventanas de la aplicacin.

Subconjunto de las API Win32 se utiliza para la programacin de interfaces grficas de usuario.
WCE apoya la ISR que pasan los mensajes a ISTs, que funcionan como hilos de menor prioridad que el

ISR y
Istas ejecutar como cola de prioridad de subprocesos.

Windows utiliza la manija en muchos procedimientos (funciones). WCE no admite herencia de asas.
WCE subproceso asignado prioridades a cada uno de los ocho niveles.' las roscas de nivel de sistema y
los controladores de dispositivo
(ISTAS) utilice la parte superior 248 niveles de prioridades.

Los sistemas integrados

Windows CE 6.0 admite 2I(' nmero de procesos (anteriormente 32) con cada proceso hairing un lmite de memoria
virtual de 2 GB (anterior) de 32 MB y hasta 2 GB inferior (anteriormente 32 MB) Tambin hay 2 superior un GB
(anteriormente 32 MB) en el espacio virtual del kernel.
Windows Mobile 6 soporta Offfice wiih Mohile 2007. smartphone pantalla tctil, la mejora de la pila de Bluetooth. AEC
VoIP con soporte para cifrado de datos almacenados en las tarjetas de almacenamiento extrables externas, utiliza
smartfilter para una rpida de archivos, correo electrnico, contactos y canciones de bsqueda y se puede establecer
como mdem para el porttil.
WCE proporciona para la memoria del sistema entre I MB y 64 MB y os necesita un mnimo de 512 kB de memoria y 4
kB de memoria RAM. WCE tambin proporciona para gestionar las condiciones de poca memoria.
WCE considera la RAM en dos secciones: la memoria de programa (llamado sistema heap) y almacn de

objetos.
WCE tiene sistemas de archivos y bases de datos. La base de datos dispone de una serie de registros desbloqueables con
ahorro de una(s) propiedad(es) y datos juntos en un registro. Ningn registro contiene otro registro dentro de ella. Cada
registro tiene cuatro niveles de ndices para ordenar.
WCE es un programa multiproceso multitarea. Hay al menos un subproceso que se crea por proceso. La unidad bsica de
ejecucin bajo el control del ncleo es la rosca. Cada subproceso tiene un contexto separado (para registro de CPU
incluyendo PC y el puntero de pila) y la pila para guardar el contexto cuando el subproceso se bloquea y para recuperar
en la activacin de la rosca.
WCE prev excepciones seales, seales, notificacin de eventos (para los subprocesos de un proceso), semforos, colas
de mensajes, espere solo objeto, objeto de mltiples y mltiples funciones de objeto del mensaje.
WCE disposiciones para interfaces grficas basadas en ventanas, mens, cuadros de dilogo, la radio y los botones de
comprobacin.
Subconjunto de la API de Win32 de WCE provisin de insumos de las teclas, la pantalla tctil o el ratn, la comunicacin
con el puerto serie. IrDA, Bluetooth, WiFi, redes de dispositivo a dispositivo toma y las funciones de comunicacin.
OSEK es una aplicacin de software modular y estructurado sobre la base de interfaces y protocolos estandarizados para
el automvil distribuido ECUs (unidades de control electrnico).
OSEK/VDX especifica tres normas que dan las caractersticas de portabilidad y capacidad de ampliacin, y, por tanto, la
reutilizacin del software existente. OSEK especificado tres estndares: uno para el sistema operativo embebido
utilizando MODISTARC (mtodos y herramientas para la validacin de QSEK/VDX arquitecturas distribuidas basadas
en y para las pruebas de conformidad de OSEK/VDX implementaciones). La segunda es para la comunicacin y la
tercera es para la administracin de la red.
OSEK utiliza interfaces abstractas y ejecucin pueden ser segn el hardware y la red. OSEK ha estandarizado
caractersticas interfaz para unidades de control con diferentes diseos arquitectnicos. OSEK tiene un eficiente diseo
de arquitectura. Las funcionalidades en el OSEK estndar debern ser configurable y escalable, para permitir el ajuste
ptimo de la arquitectura para la aplicacin en cuestin.
OSEK define cuatro tipos de clases BCCI, ECC1. Cccb2, ECC2COM y clases de conformidad CCCA y el CCCB para
comunicacin interna. Especifica que no debe ninguna creacin y eliminacin de tareas durante la ejecucin. Prioridad
de la tarea debe estar definido y la tarea se activa slo una vez en los cdigos. No debe existir el uso de colas de mensajes,
semforos y debe utilizarse como fiag solamente.
Linux usa procesos POSIX, hilos, memoria compartida. Mapa de POSIX POSIX y colas.
Linux tiene una gran cantidad de interfaces para el usuario. Por ejemplo. Editores grficos para la configuracin del
kernel. X-Windows para GUI y esh (para C shell). Linux tiene un nmero de caracteres, bloques y dispositivos de
interfaz de red y controladores de dispositivos para el entorno de programacin de usuario.
Linux en tiempo real adems del apoyo a la inicializacin del mdulo, el manejo de los errores, la prevencin de accesos
no autorizados, los recuentos de uso de puerto, seguridad en el nivel de raz, insertar, eliminar y limpiar las funciones,
tambin admite la planificacin preventiva. ltima versin de Linux en tiempo real Linux es 2.6.24.
RTLinux ha espera de hilo en tiempo real, el hilo de rosca, definicin de perodo de eliminacin, la asignacin de prioridad
FIFO y funciones de los dispositivos. Se prev la ejecucin de las tareas en tiempo real por RTLinux capa y no
determinista en tiempo no real tareas por Linux. Un FIFO conecta las tareas en tiempo real con Linux procesa, realiza
la sincronizacin entre hard real
RTLinux proporciona funcionalidades hard real en una capa independiente, que ejecuta las tareas primitivas (subprocesos)
en tiempo real con slo memoria asignada estticamente, sin asignacin dinmica de memoria, sin asignacin de
memoria virtual, espacio de direcciones no pro''infecciones'.^uns con la deshabilitacin de interrupciones, ejecuta una
prioridad fija simple scheduler.
RTLinux tiene funciones independientes. rtl_HARD_enable_irq ( ); rtl_HARD_disable_irq ( );rtlinux_sigaction ( );

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

507

^ _ )

Palabras clave y sus definiciones


Botn de
dispositivo de
bloque de mapa
de bits
Dispositivo de
caracteres
proceso
secundario.
Console
El control

Dispositivo
de contexto
Componeutizatio
n

DLL
ECU
Excepcin
Ejecute el archivo
en el lugar
FIFO
Gui
Manejar

Un mapa de bits es un objeto grfico que puede ser dibujado en la pantalla y se usa para
crear,
Recuperacin de imgenes, la manipulacin y el dibujo en el contexto de dispositivo.
Un dispositivo al que se accede por medio de un sistema de archivos (disco) al igual que
los comandos, y en la cual un
Bloque se accede en un instante.
Un botn es una ventana donde el llevar el ratn o el lpiz cerca de l (en foco) o
Tomando distancia (fuera de foco) o haciendo clic sobre ella o grabar en la pantalla inicia
una
Notificacin desde el sistema operativo, que luego notifica a una API para ejecutar.
Un dispositivo que accede a byte-a-byte es anloga a la de acceso a y desde una consola
O un teclado o dispositivo de impresora utilizando secuencias de bytes.
Un proceso creado en Linux por horquilla ( ) esta funcin, el cual enva el ID del nuevo
proceso para
Y el padre hace auto ID = 0, y que se hace para realizar diferentes funciones
Que el Padre por la sobrecarga de la funcin del proceso primario mediante execv ()
funcin.
Un terminal de vdeo o la pantalla tctil o del objeto de visualizacin para GUI y para
mostrar
Salida de los programas en un equipo.
Un objeto para controlar el flujo del programa, por ejemplo, un comando de men o barra
de herramientas
Objeto bar o un control de selector de fecha y hora objeto o control selector de calendario
o editar
Control para auto-capitalizar el primer carcter de una palabra al teclear y virtual
Teclado u organizador (p. ej. la tarea a realizar).
Aprovisionamiento de origen compartido y accesos cdigo fuente proporcionado por
Microsoft tales
Que hay dos capas de software. Una subcapa consta de desarrolladas por Microsoft
Los cdigos fuente del WCE kernel y es compartida con el sistema o el dispositivo
Fabricante. A continuacin, el fabricante aade la parte restante de la kemei segn
Para el hardware del sistema. La parte restante es la capa de abstraccin de hardware.
Un contexto de dispositivo especifica la ventana de la aplicacin, que enva los pxeles a
la
Pantalla, lo cual es una herramienta que use Windows para gestionar el acceso a la
pantalla
Y la impresora, que tiene dos atributos de colores para el fondo del contexto de dispositivo
y
Foieground. tiene la fuente del texto que se muestra, atributos de alineacin del texto a la
izquierda, derecha, superior.
Centro, abajo, sin actualizar y actualizar de punto actual y alineacin con la lnea de base.
Archivo de biblioteca de vnculos dinmicos, que est vinculado en tiempo de ejecucin
de .exe y que carga
A peticin del otro archivo .exe o DLL.
Una unidad de control electrnico para el control de la unidad y su comunicacin con
otros
Ecu en un automvil o en otros sistemas.
Una seal desde la API para iniciar una ventana de notificacin cuando un estado de
excepcin
Se lleg en tiempo de ejecucin.
Un archivo de ROM para su ejecucin, que no se puede abrir y leer por funciones de

5081

Los sistemas integrados

___
!

Procedimiento (funcin o mtodo) los cdigos sobre los cuales son delmed en la
clase, que utiliza la interfaz. Mango es tambin utilizado como un puntero,
denominada opcin puntero.
Objeto IPC
Un objeto en un sistema multitarea o multiproceso para eventos de comunicacin,
incluyendo semforos semforos mutex y mensajes en colas sin utilizar memoria
compartida y que proporciona la sincronizacin de subprocesos.
1st
Servicio de interrupcin es un subproceso que se coloca en la cola de prioridades de
threads en espera de ejecucin y que es un lento nivel de subproceso de un servicio
de interrupcin rpida- nivel de ISR, el cual enva el mensaje(s).
Linux
Un sistema operativo freeware Linux es nombrado despus de Linus Torvalds,
Cdigo administrado creador del sistema operativo Linux.
: el cdigo que se compila en el CIL . Proporciona la plataforma CPU independiente
neutral como la compilacin de cdigos de bytes. Un entorno de tiempo de ejecucin
convierte
las instrucciones
de cdigo
bytes enunlaprotocolo
mquina de
nativa
y la instruccin
Interfaz de red
Un dispositivo
de interfaz, que
accedede
mediante
red como
Telnet, el
de
la plataforma.
protocolo
TCP. UDP, patinaje. PPP, SMTP o Bluetooth.
N. tification

Tienda Oijcct

: el sistema operativo controla todas las fuentes de entrada (p.ej. el lpiz toca. virtuales
(en la pantalla tctil) o pulse la tecla fsica). El sistema operativo notifica y enva una
notificacin cuando se ha pulsado una tecla o se ha hecho clic en un botn o comando
ha sido recibida de rediseo de la pantalla de Windows. Una notificacin como una
aplicacin basada en Windows programa est escrito para responder o activar o
cambios en el estado actual en el empuje de notificacin(s) desde el sistema
operativo. Se produce una notificacin de un evento. La notificacin se enva
el mensaje al programa de aplicacin en Windows. El arco se coloca en cola de
para las
ventanas
detienda
la aplicacin.
: unmensajes
disco RAM
virtual
es una
permanente para almacenar archivos, registro,
PIM y WCE bases de datos y est protegida de alimentacin apagado. Cada archivo
puede utilizar hasta 32 MB en el caso de RAM como almacn de objetos. Si el objeto
no se encuentra en la RAM. se carga desde el almacn de objetos.

Opcin puntero

Un puntero que seala a un puntero de uno de los varios conjuntos de los cdigos,
que se ejecutan en la seleccin de la opcin.
OSEK/VDX es un rgano encargado de definir y especificar tres estndares para un
SO integrado. Comunicacin y gestin de red para aplicaciones de automocin y
control de ECUs.

OSSK

Pthread

PocketPC

Power Manager

Ncleo en tiempo real


Registro

Seal

POS1X, un hilo de rosca para el que se utilizan las funciones POSIX estndar para
crear, enviar, recibir, suspender anti que utiliza semforos IPC POSIX, mutex, colas
de mensajes y FIFOs.
PC porttil para el hogar, as como los sistemas de oficina y para las redes celulares
conectividad usando Windows CE Extensin. Windows Mobile, lor aplicaciones
como Outlook. Explorer, versiones Pocket de Word. Pocket Excel y Power Point,
diapositivas, correo, Internet y aplicaciones de Office.
Software para reducir la disipacin de energa al reducir la velocidad de reloj o
ejecutando esperar o dejar de instruccin u optimizar el uso de las cachs o'stopping
o disminuir la intensidad de la pantalla se muestra despus de espera limitado para
la
entrada
delfunciones
usuario. en tiempo real para las roscas que tiene mayor prioridad que
Una
capa de

otros kemei funciones.


: Registro API para el sistema de base de datos utilizando las funciones de registro de
archivo estndar:
RegCreateKeyEx. YEx RegOpenKe'.'RegQueryValueEx RegDeleteKeyEx
CilegSetValueEx,,.
Y objeto
RegDeleteValueEx
RegCloseKey.
Una interrupcin o un
de notificacin,
lo que inicia una funcin de controlador
(rutina de servicio de interrupcin), siempre y cuando la seal no est enmascarado
y las interrupciones estn habilitadas.

La programacin del sistema operativo en tiempo real-ll: Windows CE, OSEK y Real-Time Linux ...

Zcalo
Lpiz ptico

5091

Una API de sockets o streaming para enviar y recibir datagramas entre dos
Direcciones especficas en dos API en diferentes dispositivos.

Una escritura lpiz-core-shapcd objeto para un usuario de dispositivo o sistema


como alternativa
A los ratones y teclados. El usuario toca la punta del lpiz ptico en el men o
Montn de
Teclado que aparece en pantalla para introducir los comandos o texto,
sistema
respeetively.
: El sistema API y OS en el rea de la memoria de memoria de programa.
pantalla
Un dispositivo de pantalla muestra as como para aceptar entradas a travs de un
tctil VUIs
lpiz ptico.
Las interfaces de usuario de voz que facilitan la interaccin y las entradas de
Win32
comandos usando almacenados
Voz y melodas, y las entradas de comandos de voz del usuario.
Ventana de
: API de programacin de 32 bits usando la ventana clases, objetos, controles y
empuaduras
Y para la gestin, visualizacin y el dibujo de la API de Windows para el usuario.
AMS
: Una instancia de objeto, que define una ventana (objeto) para proporcionar el
identificador(s)
Windows CF
Las GUI y API para la ejecucin de la aplicacin de cdigos. El objeto Window
tiene basic
Las coordenadas x e y. y c-parmetros. Especificacin de visibilidad (Mostrar u
ocultar o
Windows CE.NFT
Sin activar), especificacin de jerarqua primario-secundario y procedimientos
para compartir la
Window Mobile
Atributos y para responder a las solicitudes y todas las notificaciones enviadas a
las ventanas.
Un subconjunto de las API Win32 para sistemas operativos basados en
computadoras de bolsillo y sistemas mviles.
WinSock
Desarrollado por Microsoft que proporciona un entorno de programacin
utilizando un subconjunto
De API Win32. Visual C++. Visual Basic, y que permite a un usuario que toque,
mire y
Interactuar con el sistema mediante interfaces de una manera similar a un PC con
Windows.
Una mejora de la implementacin de Windows CE .NET Framework que
proporciona para
Compilar el cdigo administrado.
OS con extensiones para mviles Offfice 2007. smartphone con pantalla tctil,
1. Describir las caractersticasPila
de Windows
Wluit es la
ventaja
utilizarsoporte
.NET Framework
con Windows
BluetoothC'E.
mejorado.
VoIP
condeAEC.
para cifrado
de datos
CE? Por qu el Windowsalmacenados
CE tienen bajas
en latencias de interrupcin?
2. Describir las caractersticasLas
adicionales
de
tbc
en
Windows
CE
6.0
y
Windows
C'E
extensiones
para
Pocket
tarjetas de almacenamiento extrables externas, utiliza smarlfiltei para
una
PC. Windows Mobile
rpida de archivos, correo electrnico, contactos
Automvil 6 y Windows 5.0.
Y las canciones, la bsqueda se puede definir como mdem para el porttil.
3. Cules son las diferencias en la programacin con Windows CE c on respecto a las ventanas? Explicar el
Streaming o sockets de datagramas API de Windows, que tiene una caracterstica
significado de la empuadura anil manejar la herencia. Wbttt es la ventaja de retirar la reduccin de manejar
de acceso
la herencia en Windows CE?
rea de personal y recursos de la red y que no dependen de la plataforma y
4. Te refieres Whitt por Windows y relacin entre el Windows? Enumerar las funciones para la
Implementacin de funciones de socket.
administracin de Windows.
5. Describir la administracin de memoria. Explicar la similitud en la gestin de los archivos y las funciones
de gestin del dispositivo.
6. Describir las propiedades y funciones de Windows CE para las bases de datos.
7. Windows CE y Linux son los sistemas operativos multitarea, y MUCOS multiproceso y multitarea
VxWorks se OS. Explicar la diferencia entre dos conceptos de TBC. Cul es la unidad bsica de los
clculos en cada uno de los sistemas operativos? Describir las propiedades y funciones de Windows CE
para los procesos y subprocesos.

510

Los sistemas integrados

8. Explicar las excepciones de Windows CE, notificaciones y la comunicacin entre procesos y objetos de
su sincronizacin.

9. Cmo funcionan las entradas de teclas, pantalla tctil o el ratn manejados en Windows CE?
10. Describir las funciones de comunicacin de serie de Windows CE. Describir WNet API funciones de
conexin de red.

11. Lista subconjunto de la API de WinSock en Windows CE para dispositivo-devicc toma-las funciones de
comunicacin. Cmo funciona la comunicacin para socket difieren de la comunicacin puerto serial?

12. Cmo se utiliza la API de Win32 para el desarrollo de la GUI de Windows en una aplicacin'.
13. Cules son los softwares integrados en el sistema de automocin que necesitan caractersticas
especiales, las normas y las especificaciones de su sistema operativo?

14. Qu es OSEK/VDX? Cules son las tres normas especificadas para un sistema operativo incrustado
que os de OSEK/VDX?

15. La lista de Osek caractersticas bsicas. Cmo funciona el OSEK proporcionar portabilidad y
capacidad de ampliacin funcional?

17.

18.
19.
20.
21.

22.

23.
24.
25.
26.
27.
28.
29.
30.
31.
32.

33.
34.
35.
36.

mensajes, semforos utilizados como banderas y slo se crean tareas y prioridades definidas al
principio slo en OSEK estndar?
(a) una lista de las caractersticas de Linux en tiempo real, (b) Describir las funciones para registrar y
des-registrar funciones conexas de mdulos en Linux, (c) Cmo funciona un proceso hijo crea en
Linux por horquilla < ) esta funcin? Fd) Cules son las caractersticas agregadas en Linux 2.6.x, que
permite el diseo de sistemas de tiempo real? (e) Cules son las caractersticas agregadas en Linux
2.6.24?
Enumerar las funciones Linux para la seal, multiproceso y el semforo y Message Queue para IPC.
Cmo RTLinux agregar un nuevo ncleo para tareas en tiempo real? Cmo difcil tarea se ejecuta
Ejercicios
de prctica
en tiempo
real en RTLinux?
Cmo funciona la ayuda de memoria compartida como una alternativa
rpida al uso de IPC?
Cules son las nuevas funciones aadidas en RTLinux? Describir el registro, de registro,
Escribir los cdigos en el subconjunto de las API Win32 de Windows CE para mostrar un nombre de
programacin y prioridad de real

contacto, nmero de telfono, direccin y e-maillD en la ventana despus de estudiar el listado 1-3 en
Douglas Boling Programming Microsoft WINDOWS CE.NET. Microsoft, EEUU. 2003.
Escribir los cdigos para la obtencin de mensajes en Windows utilizando la pantalla tctil despus de
estudiar Listado 3-2 en Douglas Boling CE.NET'. "Programacin Microsoft Windows de Microsoft.
Ee.Uu.. 2003.
Escribir los cdigos para su visualizacin en una ventana un archivo despus de estudiar Listado 8-1 en
Douglas Boling Programming Microsoft WINDOWS CE.NET. Microsoft. Ee.Uu.. 2003.
Escribir los ejes para consultar una base de datos en Windows CE.
Escribir los cdigos para crear dos subprocesos con prioridad mxima y mnima, respectivamente, en
Windows CE.
Escribir el coties para enviar y recibir bytes entre dos subprocesos de Windows CE con colas de mensajes.
Escribir los cdigos para crear puerto serie y para enviar y recibir bytes en la ventana CE.
Escribir los cdigos de notificacin de usuario para la configuracin y para reconocer la notificacin en
Windows CE.
Escribir los cdigos para enviar y recibir datos entre las tomas despus de crear sockets usando sockets de
Windows CE.
La lista de ejemplos del uso de banderas de semforo en un automvil.
Escribir los cdigos con la horquilla ( ) para crear un proceso hijo en Linux.
Escribir los cdigos para crear las roscas para el envo y la recepcin del gestor de informacin personal
(PIM) de datos. PIM incluye datos de contactos, calendario y tareas a realizar. Un contacto incluye nombre,
direccin, e-mail ID. nmeros de telfono de casa, oficina y mvil. Los datos se envan a otro subproceso
mediante sincronizacin mediante un semforo de POSIX.
Escribir los cdigos para crear las roscas para enviar y recibir datos de cadenas de t!;rugoso(fPOSIX colas
de mensajes en Linux.
Escribir los cdigos para mostrar dos textos alternativamente de dos hilos con RTLinux.
Escribir los cdigos para mostrar dos textos alternativamente cada 8 s de dos hilos con RTLinux.
Escribir los cdigos para enviar una secuencia de bytes en un FIFO en RTLinux.

IBiilll jlil

16. Qu entiende usted por clases BCCI, CEIC, el CCCB2 y ECC2? Por qu no utiliza las colas de

El
la
%

Ejemplos de diseo y
Estudios de caso de programa
Modelizacin y
La programacin con RTOS-1

1 -------------

Hemos aprendido en los captulos 1 y 6, y en un captulo en


lnea
En 'Software enfoque de ingeniera para sistemas integrados
Diseo' que los pasos siguientes son necesarios como por software
^ ingeniera y enfoques de modelado de UML.
En primer lugar, estudiar los requisitos y ser alejado de la
necesaria
Propsito, entradas, seales, eventos, notificaciones, salidas
Las funciones del sistema, diseo de mtricas y prueba y
^
Condiciones de validacin.
Luego hacer las especificaciones, en trminos de usuarios, objetos
Secuencias, actividad, estado y diagramas de clase para abstraer

El componente, conductuales y eventos, y crear


Descripcin en trminos de seales, estados y mquina de
estado
Transiciones para cada tarea.
A continuacin, definir la arquitectura del sistema y de
hardware
^
Software, funciones adicionales y sistemas conexos. El
Especifica la arquitectura adecuada de descomposicin
Software en mdulos, componentes, proteccin adecuada
Estrategias, y mapeo de software.
[
Despus de definir el diseo, implementacin y prueba cada
Componente.

Vamos a aprender diseo de sistemas incorporados de los tres estudios de casos


examinados en este captulo y cuatro en el siguiente captulo. El primer estudio de caso
es automtica de un chocolate- mquina expendedora (ACVM) que fue presentado
anteriormente en la seccin 1.10.2. El segundo estudio es de una cmara digital,
presentado anteriormente en la seccin 1.10.4. El tercer estudio es de una pila TCP/IP,
que fue presentado anteriormente en la seccin 3.//.
Los objetivos de estos estudios son como sigue:
1. Para aprender cmo se estudian los requisitos y especificaciones de un sistema
Enumerados.
2. Para aprender cmo se usa modelado UML para modelar el diseo del sistema.
3. Aprender a definir la arquitectura de hardware mediante microprocesador o
microcontrolador o ASIPs o DSPs, y dispositivos.
4. Aprender a definir la arquitectura de software de software, extrafunctionalities y
sistemas conexos y definir la descomposicin del software en mdulos,
componentes: estrategias de proteccin adecuadas, y la asignacin de software.
5. Para conocer la codificacin para disear la aplicacin utilizando MUCOS y
VxWorks RTOSes. y tambin el uso de IPCs para sincronizacin de tareas y
procesamiento simultneo.

11.1 Estudio de caso de Embedded System Design y la


codificacin para una mquina expendedora
automtica de chocolate (ACVM) CON MUCOS RTOS
ACVM fue presentado anteriormente en la seccin 1.10.2. Se enumeran las funciones
ACVM, unidades de hardware y software. Figura 1.12 mostr una representacin
esquemtica del ACVM.
Secciones 11.1.1 I!. 1.6 dar los pasos de un diseo ACVM. Seccin 9.2 describe
MUCOS RTOS. Tiene un porttil. ROMable. escalable, previsor, multitarea y en tiempo
real del ncleo. Seccin 11.1.7 describe la codificacin para MUCOS ACVM utilizando
RTOS (Seccin 9.2) Entorno de programacin.

11.1.1 Requisitos
Los requisitos de la mquina puede ser entendida a travs de un requisito la tabla dada en
la Tabla 11.1.

11.1.2 Especificaciones
El ACVM especificaciones en breve son como sigue:
I. Tiene un teclado alfanumrico en la parte superior de la mquina. Que le permite
al nio interactuar con l a la hora de comprar un chocolate. El propietario tambin
puede ordenar e interactuar con la mquina.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

513

Tabla 11.1 Requisitos de un ACVM

Requisito
Finalidad

Descripcin
J

Vender a travs de una ACVM dioeolalo a partir de la cual los nios pueden adquirir automticamente
la j chocolates. El pago es mediante la insercin de las monedas de la cantidad adecuada en una ranura
Entradas
de monedas. | Adultos I tambin son bienvenidos a utilizar la mquina! |
1. Monedas de distintas denominaciones a travs de una ranura de monedas.
Los
comandos
de usuario.
Seales, eventos y
1.2. Un
sistema
mecnico
dirige cada moneda para su correspondiente puerto puerto puerto_l_2_5 o el
notificaciones
puerto.
Cada puerto genera una interrupcin en la recepcin de una moneda en la entrada. Cada puerto
inicia una interrupcin
ISR, lo que aumenta el valor de colleciedby wnniuit- I o 2 5 puestos y un IPC espera la tarea.
Salidas
2. Cada opcin del men seleccionado se enva una notificacin al sistema.
1. Chocolate y una seal al sistema que resta el costo del valor del importe de recogida.
Funciones del
2. Visualizacin de los mens para interfaces grficas de usuario, fecha y hora, anuncios y mensajes
sistema
de bienvenida.
Un nio enva comandos al sistema mediante una GUI (interfaz grfica de usuario). La GUI se compone
De la pantalla LCD y el teclado de unidades. Una pantalla tctil es otra alternativa para LCD y teclado.
El nio se inserta las monedas para el costo de chocolate y la mquina ofrece el chocolate. Si
Las monedas no se inserta como por el costo del chocolate en tiempos razonables entonces todas las
monedas son
reembolsado. Si las monedas insetted son de ms cantidad que el costo del chocolate, el importe
excedente
Parmetros de diseo Es reembolsado junto svith el chocolate. Las monedas de los chocolates comprados recoger dentro del
Mquina en tt canal colector, de modo que el propietario pueda obtener el dinero a travs de la adecuada
Comandos usando una interfaz grfica de usuario (GUI). Mdem inalmbrico USB ACVM permite la
comunicacin con el propietario.
1. Disipacin de potencia: Como requerido por unidades mecnicas, unidades de visualizacin y el
sistema informtico
2. Rendimiento: Uno de chocolate en dos minutos y 256 chocolates antes del prximo llenado de
Chocolates en la mquina (supuesta)
V : Mquina de proceso y plazos de espera a un mximo de 30 s para las monedas y la mquina :
Condiciones
de Debe entregar el chocolate dentro de 60 s.
Y
ensayo y validacin
o
4. Tmerfoces usuario: Grfico de la pantalla LCD o la pantalla tctil en la pantalla LCD y los
comandos por nios
O al propietario de la mquina a travs de los dedos en el teclado o la pantalla tctil.
2. Tt tiene tres lneas
de la unidad de pantalla LCD en la parte superior de la mquina. Muestra los mens, texto escrito
5. Costo de ingeniera: USS 50000 (supuesta)
en el ACVM. pictogramas. y bienvenida, gracias y otros mensajes. Permite a un nio, as como el propietario ACVM
6. Manu/miinmg ( ttsr. LSS 10(H) (supuesta)
grficamente a interactuar
la mquina.
muestra
la fecha
y la hora. [Para grficos- las interacciones del
1. Todos con
los comandos
de Tambin
usuario debe
funcionar
correctamente.
usuario (GUI), el2.teclado
y la
LCD
tctilyolos
unidades
unidades
bsicas.|
Todas
laspantalla
pantallas
grficas
mens son
deben
aparecer
como por el programa.

3. Tiene una ranura


insercin
de ser
monedas
que el nio
pueda insertar las monedas para comprar un
3. deCada
tarea debe
probadopara
con entradas
de prueba.
chocolate de su4.eleccin.
Probado lor 60 usuarios por hora.
4. Tiene una ranura de entrega para que el nio pueda recoger el chocolate, y monedas si ser reembolsado.
5. Tiene un puerto de conexin Internei para que el propietario pueda conocer el estado de las ventas ACVM desde una
ubicacin remota.

Especificaciones de las funciones requeridas en detalle son los siguientes:


tambin puede recopilar
informacin de cumpleaos y de contacto. Puede responder a preguntas frecuentes (FAQ).

1. El ACVM muestra un pictograma para el chocolate vending company. Muestra la GUI. El ACVM

Los sistemas integrados

Se muestra un mensaje de bienvenida en estado inactivo. Tambin muestra la fecha y la hora de forma
continua en la parte inferior derecha de la pantalla de visualizacin de comer. Tambin puede mostrar
intermitentemente anuncios o informacin importante durante el estado de inactividad.
2. Cuando la primera moneda est insertada, se inicia un temporizador simultneamente. Se anticipa que el
nio insertar todas las monedas en los 30s.
3. Despus del 30s el ACVM mostrar una consulta en caso de que el nio no insertar una cantidad suficiente
de monedas dentro de l. Si la consulta no es respondida, las monedas son reembolsados.
4. Si dentro de un perodo de tiempo especfico, una cantidad suficiente de monedas son recogidos, se
muestra un mensaje "Gracias, espere un momento por favor!", ofrece el chocolate a travs de la ranura de
entrega y se muestra el mensaje, "recoger el chocolate y nos visite de nuevo, por favor!".
Figura 11.1(a) muestra el sistema bsico de un 'Automtico' (Sistema de mquina Chocolate-Vending ACVM)
la mquina. Figura 11.1(b) muestra los puertos en el ACVM. Los puertos reciben los insumos y generar eventos
o notificaciones para las salidas-chocolate o mostrar mensajes o monedas.

Puerto.Reemb
olso
Port.2 | Puerto.El exceso de restitucin.

Port.1

Port.3

Port_Entregar
|
Puerto.Mostra
r

Puerto.Recoge
r

(b)
Fig. 11.1 { a ) Sistema Bsico ACVM (b) Puertos del ACVM

Las especificaciones del sistema en detalle son los siguientes:


1. Hay una ranura en la cual & child (comprador) inserta las monedas para comprar un chocolate.
Supongamos que el chocolate cuesta 8 Rs. [Los nios desean que los chocolates deben ser tan
barato'.] una moneda puede estar en uno de los tres posibles denominaciones: Rs 1, 2 y 5. Cuando se
inserta una moneda, un sistema mecnico dirige cada moneda de valor Rs 1 o 2 o 5 a PorM, puerto o
puerto_2_5, respectivamente. Cada vez que un puerto recibe una moneda, se genera una interrupcin, que
publica una seal o semforo para la correspondiente tarea Task_ReadPorts para leer el valor de la moneda
en los puertos para aumentar el valor de un parmetro amouiuj otlected.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

515

2. La mquina debe tener un LCD de pantalla de matriz de puntos o una pantalla tctil como interfaz de
usuario". Deje el puerto de interfaz se llama Port_Display. Muestra las cadenas de mensajes en tres lneas
con la parte derecha de la ltima lnea de esquina para visualizacin de la hora y dale, y la lnea superior
izquierda para el pictograma. El pictograma muestra el emblema de la empresa.
2. ACVM tiene un tazn de donde el comprador recoge el chocolate a travs de un puerto para la entrega.
Deje que este puerto se llama Port_entregar. Entregar_puerto se conecta a un canal de chocolate. Cuando
el canal se queda con slo unos bombones, el propietario de la mquina chocolates rellenos en el canal.
El comprador recoge asimismo la plena restitucin o devolucin en exceso en el recipiente a travs de
los puertos Port_Reembolso (en el caso de corta cantidad) y Port_ExcessRefund (en el caso de exceso de
cantidad),
respectivamente.
Todos
los
puertos.
Port_entregar,
restitucin
y
puerto_de_puerto_ExcessRefund. Comunicarse con Port_recoger por la comunicacin entre procesos
(IPC). Port_Collect es un interfaz mecnica comn a PortJ, Port_2_5 y el puerto. Port_entregar es una
interfaz mecnica comn a la cazoleta.
4. Tambin debera ser posible reprogramar los cdigos y la reubicacin de los cdigos en la ROM del
sistema o hash o EPROM cuando sucede lo siguiente: (i) el precio del chocolate aumenta, (ii) las lneas
del mensaje o anuncio o mens o GUI o grficos necesitan ser cambiados, o (iii) modificar las funciones
de la mquina.
5. Un RTOS planifica la compra de tareas de comienzo a fin. MUCOS permiten ser el RTOS utilizado en
el ACVM.

11.1.3 Especificaciones usando UML de modelado


La Seccin 6.5 describe que UML es un lenguaje de modelado potente para (i) software visualizacin,
(ii)datadesign(s), (iii) el diseo de algoritmos, (iv) el diseo de software(s), (v) las especificaciones del software,
y (vi) el proceso de desarrollo de software. El ACVM especificacin puede ser modelada usando UML.

Diagrama de clase un diagrama de clase muestra cmo las clases y objetos de una clase se
relacionan, y tambin asociaciones jerarquizadas y objeto de la interaccin entre las clases y
objetos. Cajas rectangulares muestran las clases y flechas con tringulos vacos al final
muestra la jerarqua de clases. Las clases de la jerarqua se pueden unir mediante una lnea.
Stan y final nmeros en una lnea muestran cmo los objetos de una clase asociada con
objetos de otro | Tabic 6.21.
Un sistema ACVM puede ser modelada por tres diagramas de clase de las clases abstractas-ACVM_Devices.
ACVM_output_Ports y ACVM_Tareas. Las tareas arc los procesos o subprocesos que estn programados por un
sistema operativo. La figura 11.2 muestra tres diagramas de clase de ACVM_Devices. ACVM_output_Ports. Y
ACVM_Tareas. Estos casos demuestran cmo los diagramas de clase se muestran usando UML.
1. ACVM_I)ispositivos es una clase abstracta de la cual el nmero de las clases extendidas se deriva de los
dispositivos para manejar ACVM mecanismo. Los dispositivos arc teclado, dispositivo de
visualizacin, mdem USB inalmbrico y monedas-dispositivo de entrada. Por lo tanto, la clase
abstracta ACVM_Devices tiene cuatro clases ampliadas- Usuario_Keypad_lnput, Display_Output,
Coinsjnput y Wireless_USB_Modem.
2. .4CWW_output_P"rf.y es una clase abstracta de la cual el nmero de las clases extendidas se deriva para
el manejo de los puertos de salida en el ACVM.
3. ACVM_colmillos extiende las dos clases, ACVM_System_Tasks y ACVM_System_isr.
ACVM_System_Tareas es una clase abstracta de la cual asumimos que n las clases extendidas Tarea ITaskn se derivan. Tarea! Taskn son n tareas (procesos o subprocesos) en el ACVM. ACVM_System_lSR
es una clase abstracta de la cual asumimos que m clases estn extendidos. lSR_task_I_isr TaskM
persecuciones estn extendidos para tareas de manipulacin de ISR en el ACVM. fISR_a_TaskM Taskl
lSR son las m ISR en ACVM. Un lSR_tarea se inicia y se ejecuta en una seal o interrumpir o evento o
notificacin o de excepcin.
Un lSR_Task difiere de una tarea en el sentido de que el ISR_Task tiene mayor prioridad que la tarea y
un ISR_tarea slo puede publicar el objeto IPC(s) (por ejemplo, seales, semforos, evento mensaje del

516 |

Los sistemas integrados

Para la notificacin, mensajes de la cola de mensaje) a un tasktsi |o a una interrupcin de hilo de servicio
en Windows CE|. mientras la tarea puede esperar el IPOs) as como post IPOs) a otras tareas. La tarea
tambin se puede ejecutar como por preferente o reparto del tiempo o cualquier otra programacin |Seccin
7.6.21. MUCOS medio ambiente programa una tarea en modo preferente.

Fig. 11.2 Los diagramas de clases de dispositivos ACVM, puertos y tareas

lass Figura 11 .3 muestra ejemplos de dos clases. Display.Oulput y User.Teclado .Entrada. Para demostrar ' w
las clases arc se muestra usando UML.
La pantalla de salida .class tiene los siguientes campos para las siguientes: (i) la imagen pietogram fora. (ii) tres
'queridos. Strl. Str2. Str3. Para lneas de texto 1. 2 y 3, respectivamente, (iii) mcmtChoiceOffcred cadena para la
eleccin .e;crcd en un instante al usuario grfico, (iv) el tiempo que es una matriz de cuatro nmeros enteros para el
cal actual en horas y minutos, (v) tiniFlaft (= 1 cuando el tiempo es ms am 0), (vi) pmFiag (= I cuando cimFlat =
0); y (vii) la fecha es un ar:.ij de cuatro enteros, de dos dgitos para el mes, da y ao.
DisplayjOutput tiene cuatro mtodos (funciones en C): displayPielure para mostrar un emblema u otra imagen,
mostrar un mensaje ( ) para mostrar un mensaje, displayTimeDate ( ) lor que muestra la hora y la fecha. displayMenu
( ) para mostrar un men y displayAdv ( ) para mostrar un anuncio.
El usuario.Kevpad.Input clase tiene los siguientes campos: (i) inputline para los caracteres recibidos para lnea
de entrada, por ejemplo, el texto durante un nio teclear el cdigo o el nombre, direccin, fecha de nacimiento, (ii)
anuncio: Matriz [ ] de inputChar inputChar (iii): carcter, (iv) ocho pabellones-, choieeAcceptanceFlag upKey,
downKey, leftKey. rightKey. enterKey, YKey o NKey para notificar la aceptacin de la opcin seleccionada o
incrustacin de arriba o abajo, izquierda o derecha, o introducir o y o N clave, respectivamente. NKey YKey notifica
a S y no.
User.KeypadJnput tiene tres mtodos: getFlag (), getString getChar () y (). Estos son para obtener un
valor booleano o una cadena de caracteres o el teclado.
R

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

Display_Output 1

Teclado_usuario_ln
put

Imagen: Pictograma
Str1. Str2. Str3,
menuChoiceOffered,
mensaje. inputLine,
publicidad: Cadena:
Char inputChar
(4) Tiempo: Integer
fecha [3]: Integer
amFlag.
pmFlag.bandera:
Valor booleano
DisplayMessage
displayPicture () () () (
displayMenu
disptayTimeDate)
displayAdvf)

InputLine: Cadena
anuncio: Matriz [ ] de
inputChar inputChar:
Char
choiceAcceptanceFlag
downKey upKey,,,
EnterKey rightKey
leftKey,,,, YKey NKey:
booleano
() getFlag getString
getChar () ()

(a)

TaskUser_Key
Padlnput:
Teclado_usuario_ln
put
InputLine
InputChar
Bandera
Key
Mensaje
Anuncio

Task_Display:
Display_Output
Tiempo
Fecha
InputLine
InputChar
Bandera
Mensaje
Imagen
Anuncio
MenuChoiceOfrecido

(b)

Fig. 11.3 (a) clases Display_Output y User_Teclado_lnput (b) Los objetos Task_Display_TaskUser y entrada de teclado

Objeto Figura 11.3(b) muestra dos ejemplos de objetos basados en clases Display_Output y
User_KcypadJn|>ul. Demuestra cmo los objetos se muestran usando UML. Un objeto se
muestra en una caja rectangular con la identidad del objeto seguido de un punto y coma y,
a continuacin, la identidad de clase de la que es instancia un objeto y entidad funcional.
Task_y_KeypadInput Dispiay TaskUser son las instancias de salida en pantalla y
User_Kevpad_lnpui.
Diagrama de estado la figura 11.4 muestra un diagrama de estado para ACVM tareas.
Demuestra cmo las clases se muestran usando UML. Un diagrama de estado muestra un
modelo de estructura para su inicio, fin. Entre las asociaciones a travs de las transiciones y
eventos muestra etiquetas (o condiciones) asociados con las transiciones. Un diagrama de
estado se representa como sigue: una oscura marca circular muestra el punto de partida, y
la flecha del show las transiciones. Una etiqueta sobre una flecha muestra el estado impedir
que los neumticos que transicin. Una marca rectangular oscuro dentro de un crculo indica
el final |Tabla 6.31 Las transiciones de estado tienen lugar entre las tareas
Task_C>U!.task_Display. TaskUser_Keypadlnput. La tarea de la comunicacin.
Task_ReadPorts. Task_reembolso. Task_ExcessRefund. La tarea ^recoger. Tarea..Entregar y
11.1.4
Arquitectura de hardware ACVM
TASK_Pantalla.
Arquitectura de hardware especifica la descomposicin adecuada de hardware en procesadores, memoria, ASIPs,
puertos, dispositivos y unidades de mecnicos y electromecnicos. Tambin especifica la interconexin y el mapeo
de estos componentes. La figura 11.5 muestra un diagrama de bloques de la arquitectura de hardware ACVM. Las
siguientes son las especificaciones:
1. Microcontrolador MX 8051. Esta versin permite el uso de la RAM y la ROM de ms de 64 kB.
2. 8 MB de ROM para la aplicacin de cdigos y RTOS cdigos para programar las tareas. 64 kB
de memoria RAM para almacenar variables temporales y pila.

518

Los sistemas integrados

__ /
J Inicio |

Visualizacin de fecha y hora de actualizacin cada 15


s
[ task_GUI, tarea Mostrar, taskUser_Keypadlnput, tareas de comunicacin ]

Fig. 11.4 Diagrama de estado para tareas ACVM

3. 64 kB de memoria flash de la ROM almacena las preferencias del usuario, los datos de contacto del
usuario, direccin, usuario, fecha de nacimiento, cdigo de identificacin del usuario, y las respuestas de
las preguntas ms frecuentes.
4. Una resolucin del temporizador 1 Lis se obtiene mediante la programacin de 8051 ahora son ms finos a
la rutina de servicio de interrupcin. Ocho interrupciones hardware con 8 vectores de interrupcin son
utilizadas para el servicio de las interrupciones de hardware.
5. Un puerto TCP/IP proporciona conexin de banda ancha a Internet a travs de un mdem USB inalmbrico,
para controlar de forma remota el ACVM y para recuperar el ACVM informes de estado por el propietario.
El ACVM puede enviar informes de error y de advertencia para el propietario. El puerto de Internet
contribuye a la futura actualizacin ofllie mquina para instalar nuevas aplicaciones. Por ejemplo, una
aplicacin que enva mensajes SMS a su llegada de chocolates frescos en la mquina o el e-mail saludos
de cumpleaos para los usuarios.

Fig. 11.5 Diagrama de bloque de hardware microcontrolador ACVM incluidos

6. ACVM hardware especfico para clasificar las monedas de diferentes denominaciones. Cada
denominacin moneda genera un conjunto de bits de estado para las entradas de moneda y un puerto de
solicitud de interrupcin (notificacin de evento de hardware). Utilizando una rutina de servicio de
interrupcin para ese puerto, el procesador ACVM lee los bits de entrada y el estado del puerto. Los bits
proporcionan la informacin en cuanto a qu tipo de moneda se ha insertado. Despus de cada operacin
de lectura, los bits de estado se restablecen por la rutina.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

| 519

7. Fuente de alimentacin principal de 220 V 50 Hz o 110 V 60 Hz. Circuitos internos estn impulsados
por una alimentacin de 5 V a 50 mA para electrnica y 12 V. 2 para sistemas mecnicos.

11.1.5 Arquitectura de software


Arquitectura de Software especifica la descomposicin apropiada del software en mdulos, componentes,
estrategias de proteccin adecuadas, y la asignacin de software.
La figura 11.6 muestra un diseo de la arquitectura de software utilizando las clases de tareas e ISR.
ACVM_Tareas se extiende al ACVM_System_isr y ACVM_System_Tareas. ACVM_System_isr se extiende a
los ISRs m
ISR_Taskl........ ISRJTaskM. ACVM_System_isr se extiende a la Tarea I,..., TaskN.
_Taskl lSR,..., y Taskl ISRJTaskM ............. TaskN son como sigue:
I. ISR_Keypadlnut_TimeDate, ISR, ISR, ISR_ad_Portl y ISR_Port2 y ISR_Port5 son el ISR. El servicio
que el dispositivo se interrumpe.

Fig. 11.6 La arquitectura de software de ACVM

2. Task_GUI,
Task_Display_TaskUser
KeypadInput,
Comunicacin,
Task_task_ReadPorts.
Task_reembolso. Task_ExcessRcfund. Task_Collect. Task_Delivcr y TASK_Display son las tareas que
el kernel programaciones.
5. ISR.Keypadlnpul para leer una entrada del teclado interrumpir pulsando una tecla. En conseguir una
interrupcin de teclado, se lea un mensaje desde el dispositivo de teclado de bfer. El mensaje es tan
buscado por la entrada en esa instancia. El mensaje es para uno de los siguientes: la lnea de entrada (para
los caracteres recibidos para lnea de entrada, por ejemplo, el texto durante el nio de introducir el ID o
el nombre, direccin, fecha de nacimiento), input_character(por ejemplo, para el downKey leftKey
upKey o o o o o enterKey rightKey YKey o NKey) o una entrada_choiceAcceptanceFlag. El indicador =
true (un booleano cuando para la aceptacin del usuario para la opcin marcada y mostrada en pantalla
en esa instancia para uno de los servicios ofrecidos para la seleccin del men en la pantalla).
Input_choiceAcceptanceFlag notifica la aceptacin de la opcin seleccionada. El mensaje, o de entrada
de lnea de entrada o input_character_choiceAcceptanceFlag se notifique al usuario de la
tarea_Keypad_Input.
4. ISR_Keypadlnput enva el mensaje desde el teclado.La tarea'-conte^ de User_Teclado_input que se
ejecuta uno de los tres mtodos: getFlag (), getString getChar () o (). [Figura 11.3]
5. Un ISR_TimeDate es para actualizar la fecha y la hora. lSR_TimeDate se ejecuta en un desbordamiento
de timer interrupt y guarda la informacin de fecha y hora. Un mensaje se notifica a Task_Display.
Task_Display ejecuta el mtodo displayTimeDate ( ). [Figura 11.3]

Los sistemas integrados

6. Un bfer de memoria stives los anuncios para mostrar en la CAV.V1 en su estado inactivo tit periodie
intervalos. Un ISR_Ad es para seleccionar un anuncio para su visualizacin. En un desbordamiento de
Timer Interrupt, ISR_ Ad es desenmascarado en periodie intervalos y una interrupcin de software
ISR._Ad est habilitada para la ejecucin. ISR_AD, se enva un mensaje de notificacin de task_Display.
Uno de los anuncios se recogen en tin instant desde el bfer de memoria. La tarea se ejecuta el mtodo
Display_displayAdv ( ).
7. Task_Displiiy es un objeto de la clase Display_Output [Figura 1l.3|.
X. Task_Display se ejecuta uno de los siguientes mtodos: displayMessagc () para los mensajes en el buzn
publicado en las tareas y displayTimeOate () o displayAdv() o displayMenu displayPicture ( ) o ( ;. El
mtodo de visualizacin que se ejecuta sobre notificacin de ISR es de acuerdo a la notificacin de mensaje
enviado desde ISR_TimeDatc o ISR o_ad_lSR Pieture o ISR_Menu.
9. Tarea.ReadPorts es un objeto de la clase User_Teclado_lnput [Figura 11.3], Task_ReadPorts hace lo
siguiente, (i) se lee el byte (8 bits) en cada uno de los puertos anteriores, (ii) Si el estado de la moneda,
como se refleja por SemAmtCount, es como por el costo del chocolate, enva una bandera para
task_Collccl. El hitter tarea inicia acciones para recoger las monedas en una unidad de recogida, (iii)
tambin restablece los hits Despus de leer para mantener los puertos y todos los 24 puntos en el estado
listo para el siguiente ciclo de la mquina, (iv) hace las dems acciones se describe en el paso 10. a) si las
monedas no se acumulan como por el costo, dentro de un determinado perodo de tiempo de espera o estn
en exceso del coste, o (b) se hace otro paso 8 acciones para mostrar mensajes como por el estado del puerto
justo antes de cambiar a otra tarea. Enva mensajes a travs de tres punteros de buzn.
Ii). Task_recoger hace lo siguiente:
(i) Dirige el puerto_Collect para actuar y la unidad recoge todas las monedas disponibles desde los
puertos. Port_l. Puerto_de_puerto_2 y 5.
(ii) Despus de la recoleccin, enva ail IPC a otra tarea, Task_Delivei\_Oeliver mediante Poit.
Port_Entregar. Al recibir un IPC, inicia la accin para entregar el chocolate y tambin enva una seal
o semforo para restablecer la mquina para el siguiente ciclo.
(iii) Por ltimo, il enva un mensaje en el buzn de correo para mostrar en la tarea_Display.
Los siguientes son los detalles de varias tareas:
1. Subsistemas mecnicos tambin proporcionan un mecanismo, que ayuda cuando hay dos o ms monedas del
mismo tipo. As, puede haber un mximo de ocho puntos diferentes en cada puerto. Hay arc 24 hits. 8 en
cada puerto. Pon_l. Pori_2_5 y el puerto. Estos se encuentran en estado reset (restablecer OsFor durante el
encendido. El diseo del circuito ACVM es tal que en el puerto 0LH bit, el bit 0 est establecido ( = 1)
Cuando una moneda est disponible e identificado correctamente. Puerto bit I se establece cuando dos
estn disponibles, hit 2 juegos cuando tres disponibles, y as sucesivamente. Hay 8 hits en 8 puntos en el
puerto de mosaico. El nmero de 1's en el puerto determina el nmero de monedas en ese puerto.
2. Adems de ser conectados a subsistemas mecnicos, cada uno de estos puertos de entrada enva 8 hits lor
lectura en ISR_Portl o !SR_Port2 o ISR_Port5 utilizando el buzn mensaje punteros. El ISR y enviar el
mensaje puntero para el puerto de bits.
3. El uso de un buzn MboxAmount es tal que dentro de un perodo de tiempo de espera, un nio puede as
cither inserte el costo de chocolate por 8 monedas de Re 1 de 8 puntos de entrada en el puerto_l, o inserte
una moneda de Re I PORT_l punto de Rs 2 para el puerto_2 punto y 5 para el puerto RS_5 punto. El nio
tiene opciones para varias combinaciones posibles para utilizar la mquina. El sistema recupera el costo
de un chocolate antes de recoger las monedas y entrega thiTchoe^comi.
4. Cuando un puerto Port_co!lect recibe una direccin (una seal en forma de bandera) de la task_recoger,
entonces los 24 bits a la de 24 puntos en los tres puertos suelte las monedas mediante un dispositivo
electromecnico. Recoger monedas de coleccin en una unidad. Para recuperar las monedas, el dueo de
la mquina en un momento conveniente abre

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

521

La unidad mediante una cerradura y retira el IHE dinero. El dueo de la mquina tambin llena las
monedas en la unidad Port_ExcessRel ai'und para la devolucin cuando el nio se inserta una cantidad
extra o una moneda.
5. Cuando un puerto. Port_reembolso. recibe una direccin (una seal en forma ofa bandera) de una tarea,
la tarea_reembolso. dirige todos los ocho puntos en cada oftlie puertos para liberar las monedas si alguno.
utilizando un dispositivo electromecnico. La cada de las monedas en un aullido si la cantidad en los tres
puertos resulta ser inferior al coste. Cuando un puerto. Port_ExccssRefund. recibe una direccin (una
seal en forma ofa bandera) de task_ExcessRefund. dirige los ocho puntos en otro puerto para liberar el
exceso de cantidad, utilizando un dispositivo electromecnico, y la cada de las monedas en el aullido,
siempre que el importe de los tres puertos se encuentra ms que el costo. |Para recuperar las monedas, el
nio mira un recipiente para retirar el dinero reembolsado.|
6. Task_restitucin realiza las siguientes funciones: (i) dirige el Puerto_Restitucin para actuar y la unidad
enva las monedas de tres puertos a un recipiente cuando la cantidad es corta, (ii) no las dems acciones
requeridas. Enva un mensaje en pantalla para los buzones y los mails en cuya tarea_Display espera.
7. Task_ExcessRcfund realiza las siguientes funciones: (i) dirige el exceso de devolucin de la unidad a la
devolucin del importe sobrante, (ii) no las dems acciones descritas en el paso 8 y mensajes a los
buzones.
8. A este paso, un LCD geles de puerto de un mensaje desde un TASK_Dispiay. La pantalla es como por el
estado de la mquina o cal-fecha enviada a la tarea esperando buzones. Los mensajes mostrados son como
sigue: (i) cuando la mquina se restablece o sobre el inicio del ciclo de la OFA, en la primera lnea, un
mensaje de bienvenida. "Bienvenidos a 5u-eel recuerdos Chocolates" se muestra. La segunda lnea
es ''pantalla Insertar el importe, por favor". La tercera lnea en la esquina derecha muestra "fecha y
hora" de un Task_TimcDalcDisplay que enva el mensaje cada segundo, (ii) despus de que un correo de
task_Collecl. La primera lnea muestra un mensaje. "lamentacin por un momento". "recoger un buen
chocolate pronto" aparece en la segunda lnea. El mensaje desaparece despus de un tiempo, (iii) despus
de que un correo de task_entregar. El mensaje de primera lnea es "recoger el buen chocolate". La
segunda lnea el mensaje "Inserte monedas para ms." El mensaje desaparece despus de un tiempo, tiv)
tras un evento bandera de task_reembolso. El mensaje en la primera lnea es "Sony"] en la segunda lnea
aparece "Por favor recoja la restitucin". Los mensajes claros, despus de un tiempo,
(iv) Despus de los correos electrnicos. Task_ExcessRefund aparece en la primera lnea, "recoger el
chocolate y dinero". "No se olvide de recoger el exceso" aparece en la segunda lnea. El mensaje se borra
despus de una de cal. (v) despus de un reinicio de la mquina o de tiempo de espera para el prximo
ciclo, la pantalla se repite como en el paso (it.
9. Y OSSemPost OSSemPcnd funciones semforo en mucos sincronizar tales que task_oflhe RcadPoris
espera la ejecucin de cdigos (malos Ihe cantidad necesaria, indic hy SemAmtCount. estn recogidos
dentro de un perodo de espera especificado. Task_entregar enva una seal al puerto..Entregar que ofrece
un chocolate de ACVM y debe entregar slo en coleccin de combinaciones especficas de moneda de
tal forma que el IHE cantidad recibida es igual o mayor que el coste de chocolate.
Es imperativo que los mltiples tareas necesitan sincronizarse con respecto a cada uno de otros, utilizando el
IPCs. Un RTOS es, pues, necesario y el binary-semforos, semforos resouree kev, conteo de semforos y buzones
se utiliza para sincronizar y procesamiento simultneo.

Diagrama de sincronizacin permiten MUCOS RTOS ser la eleccin para un desarrollo de


software embarcado para ACVM. La figura 11.7 muestra mltiples tareas y su modelo de
sincronizacin. Muestra cmo dibujar diagramas de sincronizacin. La figura se menciona la
sincronizacin objetos cerca de la lnea que conecta una tarea con otra tarea. El objeto de
sincronizacin(s) es un semforo(s) o el buzn rnessage(s) para la notificacin. Los pasos para
la sincronizacin son como sigue:
1. Task_ReadPorts comienza tetion slo cuando un semforo SemFlagl es publicado .desde los puertos.
Tambin aceptan el semaphore timeout en caso disponible. Stinieout semaphore es liberada por el servicio
de temporizador de rutina para marcar despus de 30s. Acepta la cantidad de mensajes, porl PortJ_2 _5
y el puerto. Se puestos punteros mensaje- para el buzn esperando el correo en task_Collect.

Los sistemas integrados

2. Task_Coliect espera tomar SemFlagI y MboxAniouni. Se libera para dejar aTask SemFlag2_Delivei
proporcionan el chocolate. Tarea Recopilar tambin libera SemFlag2 de nuevo que task_ExcessRelund
toma. Esto es debido a que el nio ya ha pagado un suplemento, por lo que l/ella debe obtener un
chocolate.
4: Semfinish

Fig. 11.7 tareas mltiples y su modelo de sincronizacin mediante semforos y mensajes del buzn

3. Task_restitucin espera tomar SemFlag3. Se enva un mensaje a *MboxStr3.


4. Task_ExcessRefund lamentos para tomar SemF!ag2 y puestos Str4 mensaje de buzn electrnico para su
visualizacin. Task_Display espera tomar ScmFlag4. Toma mutex, SemMKey2 antes de pasar los bytes a
un torrente de Port_Disp!ay y lo libera despus del envo. Muestra los mensajes de buzn de correo en el
mensaje punteros. ^recoger, entregado, '^restitucin, y '"ExcessRefund.
5. Mtodo displayTimeDtue ( ) muestra en task_Display recibe una notificacin del tiempo de espera
mediante un mensaje del buzn para obtener la fecha y la hora. Los tiempos de espera se producen a partir
de ISR_TimcDate despus cada 1000 tics del reloj del sistema. Un timeout actualiza los valores de fecha
y hora a un puntero 4timeDatc. Enva al buzn *timeDate Task_Display y displayTimeDate ( ) se utiliza para mostrar en la tercera lnea, en la esquina derecha
de la pantalla LCD.

11.1.6 Crear una lista de tareas, funciones y IPCs


Para disear la aplicacin utilizando un entorno MUCOS RTOS, vamos a crear una tabla. Tabla 11.2 Tabla de
diseo neumtico da. La sincronizacin de las tareas es el modelo utilizado para crear la tabla. La tabla da nombre,
prioridad y las acciones esperadas de la tarea en las columnas 1, 2 y 3 respectivamente en cada fila'. IPCs IPCs y
pendientes publicado figuran en las columnas 4 y 5. Mecnicos u otras entradas y salidas del sistema figuran en la
ltima columna. 6 y 7.

11.1.7 Pasos de codificacin de ejemplares


El grupo de objetos en la figura 11.6 se puede implementar como funciones de C en un entorno con MUCOS C
como lenguaje de programacin. MUCOS funciones IPC puede implementar el modelo de sincronizacin se
muestra en la Figura 11.7. Los siguientes son los pasos de codificacin MUCOS para la tarea los objetos enumerados
en el cuadro 11.2.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

523

Tabla 11.2 Lista de seis tareas, funciones y IPCs


Tarea

Funcin
Tarea_
ReadPorts

Tarea_
Recopilar

Prioridad

Accin

Espera de las
monedas y la
accin como por
monedas
recogidas

11

Espera a
monedas = >
Coste (tiempo de
espera de
enfermos y acta
en consecuencia

Tarea.
Entregar

12

Tarea.
Restitucin

17

Tarea.
Exceso
Restitucin

13

Tarea_
Mostrar

15

IPCs pendiente

El IFCs
publicado

MboxPtrlMsg,
Mensaje
MboxPtr2Msg.
Puntero
SemFlagl
*MboxAmount
MboxPtr5Msg,
mensajes y
seales de eventos
desde el puerto.l,
el puerto y el
puerto_2_5;
Stimeout
temporizador de
ISR
SemFlagl,
*MboxAmount SemFlag2,
SemFlag3,
mensaje
*MboxAmount
punteros, *Strl
SemFlag2
SemFlag2,
mensaje puntero
*Str2

Espera para el
evento de
devolucin y
reembolso del
importe
Los reembolsos
Exceso
Cantidad

SemFlag3

Puntero de
mensajes *Str3

SemFlag2.
*MboxAmount

Puntero de
mensaje :E:Str4

Espera a que el
mensaje de
correo

Mensaje:
Recogida de
punteros.
*entregado,
*restitucin,
"ExcessRefund
(Str 2, str3 y Str4)
y *timeDate

ACVM
Input
Monedas
en el
puerto.l, y
el Puerto de
PORT_2_5.

Monedas en la
boca. Recoger
la cantidad >=
Coste
Chocolate
desde un Ofrece
Chocolate en
canal
(l recipiente.
Monedas ai Monedas
Puerto. 1, 2 enjuagado de
y
vuelta al
puerto_de_ recipiente.
puerto_5
Monedas El exceso de
en el
monedas Irom
Puertos
Puerto.El
Exceso
exceso de
Restitucin devolucin
Canal
Cadenas
para 1,2 y 3 Bytes para la
lnea de
pantalla LCD
tiempo y para lneas 1,2
fecha.
y 3.

Ejemplo 11.1
1. /* Definir variable booleana, definir un NULLpointer al punto en caso de buzn est vaco.
*/ typedef unsigned char intSbit;
#define #defme intSbit boolean false 0

ACVM
Salida

524

Los sistemas integrados

True #define 1
/* Definir un puntero NULL; */
#define nulo (void*) 0x0000
/* definir comandos del preprocesador OS servicio tareas y funciones de sincronizacin como habilitado y sus
constantes; similar a la del ejemplo 9.7. */
Si definir OS_MAX_tareas 10
tdefine OS_menor_PRIO 28 /* permiten tareas de menor prioridad 19. */
#deftne OS_TASK_CREATE_EN I * permitir la inclusin de OSTaskCreate funcin () */
#defme OS_TASK_DEL_EN I /* permitir la inclusin de OSTaskDel funcin () */
#deftne OS_TASK_SUSPEND_ES 1/* permitir la inclusin de OSTaskSuspend funcin () */
OS #define_TASK_RESUME_EN I/* permitir la inclusin de OSTaskResume funcin () */

/* iipecify todo nio prototipo de la primera funcin de la tarea que est llamada por la funcin principal y sea
programada por MUCOS al inicio. En el paso 11, estaremos creando todas las otras tareas dentro de la primera
tarea. */
/ * Recuerde: Esttico significa la asignacin de memoria permanente */
Static void *taskPointer FirstTask (void);
OS_STK FirstTaskStack esttica [FirstTask_StackSize];
/* definir variables pblicas del servicio de tareas y funciones de distribucin */
OS #define_TASK_idle_STK_SlZE 100 /* deje ser la asignacin de memoria para una tarea de estado inactivo
sea del tamao de pila
100*/
#def'ine TlCKS_SO_PER_SEC 1000 / * Permita el nmero de tics 1000 por segundo. Una garrapata de RTC
se interrumpir y, por lo tanto, marque cada 1 ms para actualizar cuenta. */
#define FirstTask_Priority 4 /* definir la primera tarea principal prioridad */
StackSize FirstTask #define_100/* definir la primera tarea en tamao de la pila principal */
Costo #define 8 /* Definir costo de chocolate como Rs 8 */
2. / Definiciones de preprocesador para el nmero mximo de eventos inter-proceso para dejar la MUCOS
asignar memoria para el caso de los bloques de control */
OS #define_MAX_EVENTS 24/* deje mximo 1PC Eventos 24 */
#d< multa OS_SEM_ES 1/* permitir la inclusin de funciones de semforo. */
OS #define_EN_mbox 1/* permitir la inclusin de funciones de buzn de correo para el envo del mensaje
punteros a Task_Display. */
#deftne OS_Q_ES 1/* permitir la inclusin de funciones de la cola para enviar el demandando punteros a
matrix LCD Display_Puerto * /
/* final de comandos de preprocesador */ j.. /* Prototipo definiciones para seis tareas */ task_static void
*taskPointer ReadPorts (void); TASK_static void *taskPointer ExcessRefund (void); static void Task_Entregar
(void *taskPointer); static void Task_Restitucin (void *taskPointer); static void Task_Recoger (*taskPointer);
static void Task_Display (void *taskPointer);
I* Definiciones para seis pilas de tarea. */
OS static_STK Task_ReadPortsStack [Task_ReadPortsStackSize]; esttica OS_STK Task_ExcessRefundStack
[Task_ExcessRefundStackSize];

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

525

V ____ ,

OS static_STK Task_DeliverStack [Task_DeliverStackSize|;


esttica OS_STK Task_RefundStack [Task_RefundStackSize|:
esttica OS_STK Task_CollectStack [Task_CollectStaekSizeJ:
esttica OS_STK Task_DisplayStack [Task_DisplayStackSize|;
/* Definiciones para seis tamaos de bloque de tareas. */
Tarea #define_ReadPortsStackSize 100/* definir la tarea 1 tamao de la pila*/
Tarea #define_ExcessRefundStackSize 100 /* definir la tarea 2 tamao de la pila*/
Tarea #define_DeliverStackSize 100 /* definir la tarea 3 tamao de la pila*/
Tarea #define_RefundStackSize 100 /* definir la tarea 4 tamao de la pila*/
Tarea #define_co!lectStackSize 100 /* definir la tarea 5 tamao de la pila*/
Tarea #define_DisplayStackSize 100 /* definir la tarea 6 tamao de la pila*/
4. /* Definiciones para seis prioridades de tareas. */
Task_ReadPortsPriority #define 9 /* definir la tarea 1 prioridad */
Task_ExcessRefundPriority #define 13 /* definir la prioridad de la tarea 5 */
Task_DeliverPriority #define 12 /* definir la tarea 3 prioridad */
Task_RefundPriority #define 17 /* definir la tarea 4 prioridad */
Task_CollectPriority #define 11 /* definir la tarea 2 prioridad */
Task_DisplayPriority #define 15 /* definir la prioridad de la tarea 6 */
5. /* Prototipo definiciones para los semforos. */
OS_EVENT *SemFlagl; /* sobre las seales de interrupcin de puerto a puerto_l_5, Task_ReadPorts empieza
a funcionar. Este indicador es necesario cuando se utilizan el semforo para la comunicacin entre procesos
entre tareas leyendo cantidad mensaje desde Puerto Puerto_l_2_5 y el puerto. */
OS_EVENT *SemFlag2: /*.semaphore necesarios cuando se utiliza como indicador para la comunicacin
entre procesos de task_entrega sobre la notificacin de eventos y entre Task_co!lect e importe devolucin
tarea, tarea_Delivery. */ OS_EVENT *SemFlag3; /* necesarios cuando se utiliza el semforo como Hag para
la comunicacin entre procesos entre tarea y tarea_Collect_ExcessRefund. */
OS_EVENT *Slimeout; /* publicado por un temporizador de semaphore 1SR despus de 30s esperar */
OS_EVENT 'SemVal: /* necesarios cuando se utiliza el semforo para pasar el mensaje de 16 bits entre los
pasos b
Ttnd c. */
6. /* Prototipo definiciones para los buzones */
/* Para utilizando el buzn de mensajes. Estos son los ISRS para enviar bits desde Port_l. 2 y 5. */
OS.EVENT *MboxPtrlMsg:
OS_EVENT *MboxPtr2Msg; /*
OS_EVENT *MboxPtr3Msg:
OS_EVENT *MboxStrlMsg, *MboxStr2Msg, *MboxAmount, *MboxTimeDateStrMsg; /* es necesario
cuando se utilizan para el envo de mensajes, la cantidad y la pantalla punteros timedate */
OS_EVENT *MboxStr3Msg, *MboxStr4Msg:

/* ------------------------------------------------------------------------------------ - ------------------------------ */

7. /* Se definen cuatro semforos como evento banderas


OSSemCreate SemFlagl = (0); /* declarar el valor inicial del semforo = 0 para el uso ComoUnEventoFlag*/
OSSemCreate SemFlag2 = (0); /* declarar el valor inicial del semforo = 0 para el uso ComoUnEventoFlag*/
OSSemCreate SemFlag3 = (0); /* declarar el valor inicial del semforo = 0 para el uso ComoUnEventoFlag*/
OSSemCreate SemStimeOut = (0); /* declarar el valor inicial = 0 para el indicador de tiempo de espera */
8. I* crear ocho buzones para las tareas. */
(OSMboxCreate MboxAmount = NULL);

I 5261

I;

Los sistemas integrados

(OSMboxCreate MboxStrlMsg = NULL);


MboxStr2msg = OSMboxCreate (NULL);
MboxStr3msg = OSMboxCreate (NULL);
MboxStr4msg = OSMboxCreate (NULL);
(OSMboxCreate MboxTimeDateStrMsg = NULL); /* para mensaje de task_Display. */
9. /* cualquier otro OS Eventos para el IPCs. */
Msg = OSMboxCreate OSMboxPtrl (NULL);
OSMboxPtr2msg = OSMboxCreate (NULL);
(OSMboxCreate OSMboxPtrSMsg = NULL);
10. /* Los cdigos son para leer desde un puerto y almacenar un carcter. Aqu tenemos tres puertos, puerto
puerto_l_2 y puerto RS_5 para 1, 2 y 5 monedas. Estos son bsicamente los cdigos del controlador de
dispositivo de puerto puerto_l_2_5 y el puerto y tres indicadores de estado para restablecer al principio. */
STAF_1 =0.
STAF _2 = 0.
STAF _3 = 0.

11. /* Inicio de los cdigos de la aplicacin principal.


Nota: Cdigo pasos son similares a los pasos 9 a 17 en el ejemplo 9.16 */

Cantidad puerto int (int *amt); /* declarar la funcin para convertir la cadena desde el puerto a un valor entero
para cantidad */ void main (void) {
12. /* Iniciar MUCOS RTOS de dejarnos utilizar el kernel del sistema operativo funciones */
OSInit ( r.
13. /* Cree, la primera tarea que se debe ejecutar una vez FirstTask antes que cualquier otro. Tarea crea
definiendo su identidad como FirstTask. tamao de la pila y otros parmetros de TCB. */
(FirstTask OSTaskCreate, void (*) 0, (void *) &FirstTaskStack [FirstTask_StackSizeJ,
FirstTask_Priority); /* Cree otras tareas principales y la comunicacin entre procesos variables si estas tambin
debe ejecutar al menos una vez tras la FirstTask. */
14. I* Iniciar MUCOS RTOS para dejarnos RTOS control y ejecutar las tareas creadas */
OSStart ( );
/*-bucle infinito mientras sale en cada tarea. Sc no hay retorno desde la funcin RTOS OSStart (). RTOS toma
el control para siempre. */
)/ *** final de la funcin Main ***/
15. /* Los cdigos de ISR, ISR Entrada_Keypad_PORT_lSR 1, puerto 2, Puerto 5_isr para ACVM_System_isr
*/
16. Static void *taskPointer FirstTask (void){
17. /* Iniciar temporizador garrapatas para usar ahora son ms finos garrapatas ms tarde. *1
OSTicklnit (); /* Funcin para iniciar RTCSWT garrapatas que comienza en el tiempo configurado
en la configuracin mucos comandos de preprocesador en el paso 1 */.
18. /* crear seis tareas definir por seis identidades de tareas, Task_Display_task_ExcessRefund ReadPorts,
Tareas, Task_task_entregar y restitucin y los tamaos de pila, otros parmetros de TCB.
*/
OSTaskCreate (Tarea_Display, void (*) 0, (void *) y TASK_DisplayStack
[Task_DisplayStackSize], Task_DisplayPriority);
(Task_ReadPorts OSTaskCreate, void (*) 0, (void *) y TASK_ReadPortsStack
[Task_ReadPortsStackSizeJ, Task_ReadPortsPriority);

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

527

(Task_ExeessRefund OSTaskCreate. void (*) 0, (void *) & Task_ExcessRefundStack


[Task_ExcessRefundStackSize|. Task_ExcessRefundPriority);
(Task_OSTaskCreate entregar, void (*) 0, (void *) y TASK_DeliverStack |Task_DeliverStackSize|,
Task_DelivcrPriority):
(Task_OSTaskCreate restitucin, void (*) 0, (void *) y TASK_RefundStack |Task_RefundStackSize],
Task_RefundPriority);
(Task_OSTaskCreate recoger, void (*) 0. (void *) & Task_co!lectStack |Task_CollectStackSizeJ,
Task_ColIectPriority):
19. Mientras que (I) { /* Inicio del bucle while*/
20. /* suspender sin reanudacin despus de la primera tarea, como.Se debe ejecutar slo una vez para la
iniciacin de pulsos de temporizador y para crear las tareas que el programador controla por preferencia. *!
(FirstTask OSTaskSuspend_Priority); /*suspender la primera tarea y el control de las RTO pasa siempre a otras
tareas, esperando su ejecucin*/
21. ) /* final del bucle while */
22. } /* Fin de cdigos FirstTask */
/**************************** ft#****#**###******************:!'*:*********/
23. /* Funcin para hallar el valor de la cantidad de las monedas recogidas en los puertos */
Int portamount esttica (AMT) (
Int cantidad;
Interruptor (AMT) j Caso 0 :
Cantidad = 0; salir () Caso 1 :
Cantidad = 1; salir () Caso 2 :
Cantidad = 2; salir () Caso 4 :
Cantidad = 3; salir () Caso 8 :
Cantidad = 4: Salir ( ) Asunto 16
: Cantidad = 5: Salir ( ) Asunto
32 : Cantidad = 6; salir ( )
Asunto 64 : Cantidad = 7; salir (
) Asunto 128 : Cantidad = 8:
Salir ( )
1
Cantidad de retorno;
)
24. /* Los cdigos para task_ReadPorts */
Static void TaskJRead taskPointer puertos (void *)
{
25. Las declaraciones iniciales /* */
Int amtport = 0; /* valor de la cantidad recogida en los
puertos */ int *amountl; /* puntero al puerto 1 mensaje
para cantidad */ int *Cantidad2; /* puntero al puerto 2
mensaje para cantidad */ int *amounl5; /* puntero a Pott 5
mensaje para cantidad */
26. Mientras que (1) { /* Inicio de bucle while */
27. (SemFlagl OSSemPend, 0 *SemErrPointer); /* esperar el semforo del puerto ISR */
28. Mientras (Stimeout = = false || amtport < coste){ OSSemAccept (Stimeout, 0 *SemErrPointer);
29. *amountl = OSMboxAccept (MboxPtrlMsg ErrPointer, 0 ml);

Los sistemas integrados

*Cantidad2 = (MboxPtr OSMboxAccept2Msg, 0 ErrPointer M2);


*Cantidad5 = (OSMboxAceept ErrPointer MboxPtroMsg, 0, M5).
30. = portamount amtport (&amountl) + 2 * portamount (& cantidad2) + 5 *_portamount (<fe amonnt5) ) /*
ESPERE hasta la cantidad de puertos > = coste */
(MboxAmount OSMboxPost, &amtport); /*post entre el valor */ amtport = 0; / *establezca la cantidad en
puerto = 0 */
(Task_ReadPort OSTaskSuspend.sPriority);
/* La tarea de menor prioridad_collect ejecuta ahora */
31 . /; /* final del bucle while*/
}/ * al final de la tarea_ReadPorts funcin */
/###******************************************************************/
32. /* Inicio de task_Recopilar cdigos */
Task_static void *taskPointer recopilar (void) {
33. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una
sola vez*/ int *Cantidad = 0.
34. Mientras que (1) l/* iniciar un bucle while infinito/
35. I* */ importe mbox
*Cantidad = OSMboxPend (MboxAmount, 0 MboxErrPointer);
36. Si (*aniount > = coste) (OSMboxPost (MboxAmount, ^cantidad);
(MboxStrlMsg OSMboxPost, "espere un momento reunir un buen chocolate pronto"); /* */ Mostrar mensaje
Enviar
(semFlag OSSemPost2, 0 * ErrPointer); /* caso notificar a task_entregar */
37. /* los cdigos para el sistema mecnico para recoger las monedas de Puerto Puerto_l_2_5 y el puerto de
manera que los puertos estn vacas para nuevas monedas * Entrada)

E se {OSSemPost (SemFlag3, 0, *ErrPointer)}


(Task_CollectPriority OSTaskSuspend); /* */ task_restitucin
(Task_ReadPorts OSTaskResume);
}; el final del bucle while
38. } /* al final de la tarea_funcin Collect */
J sfsils ^ * * si t**** * * * * * $ # >Y- # * * * * * ** * * % sfs tft ije l $ # s|s sis sfs sjc * * * sfs sj: t\t * * * ijt $ tj" $ s*s s{? Sj: JJS *

39. /* Los cdigos para la tarea_Entregar


*/ static void TaskJDeliver (void) { HaskPointer
40. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/
41. Mientras que (I) {/* iniciar un bucle while infinito. */
42. /* ESPERE bandera SemFlag2 de task_Recoger */
(SemFlag OSSemPend2, 0 SemErrP ointer)\.
43. /* Los cdigos para el controlador de dispositivo para Port_entregar para entregar un chocolate en un
recipiente. */
44. /* dos correos electrnicos a la espera de task_Mostrar mensaje mediante dos punteros de primera lnea y
segunda lnea de LCD matrix en PortJDisplay. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

(529 I

(MboxStr OSMboxPost2Msg, ''Colled el buen chocolate. Gracias, insertar monedas para ms"): I*
45. /* que retrasaron la tarea de mayor prioridad err reanudar. */
46. /* Post semforo para bandera que la entrega de
chocolate. *1 OSSemPost (SemFlag2); /* SemFlag3 a la tarea el exceso
de reembolso si cualquier */
(Task_DeliverPriority OSTaskSuspend):
/* Esto permite tener baja prioridad para iniciar */
(Task_CollectPriority OSTaskResume):
/* final del bucle while*/
47. }/ * al final de la tarea_Ofrecer funciones */
Y******************************************************************#/
48. I* Inicio de task_cdigos de devolucin */
Task_static void *taskPointer restitucin (void) {
/* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola vez*/
49. Mientras (/)(/* iniciar el bucle infinito */
(SemFlag OSSemPend3, 0 SemErrPointer);
50. /* Cdigo para el controlador de dispositivo para permitir que el puerto_Exit suelte las monedas como
restitucin como dentro de 21 ciclos de reloj, si el nio no puede insertar las monedas de la cantidad requerida.
*/
51. /* Correo a esperar Task_Disp!ay a travs del puntero de mensajes para la primera lnea y segunda lnea
de LCD matrix en Port_Display. */
(MboxStr OSMboxPost3Msg, "Para el chocolate "inserte monedas nuevamente reunir Refund"): /*
QSTimeDIyResume (Task_Di.splay);
(Task_CollectPriority OSTaskResume); /* Volver a Task_Collect_Priority. */
); /* final del bucle while*/
52. I / * al final de la tarea_restitucin funcin */
J * * * * * Jjs t * * sN sft * * * * * * * * * * * -y '<* * * * * * *sfsk. * * * * * * * * * * * * * * * * * * * * * * Jft t * * * * * * H: $

53. /* Inicio de task_ExcessRefund cdigos */


Static void *taskPointer TaskJExcessRefund (void) {
54. I* de las asignaciones iniciales de las variables de asignaciones y pre-bucle infinito instrucciones que se
ejecutan una sola vez*/

55. Si bien ( !) { / ' * iniciar el bucle infinito */


/* ESPERE SemF!ag2 de chocolate entregar tarea */
(SemFlag OSSemPend2, 0 SemErrPointer);
/* ESPERE cantidad puntero con el fin de reembolsar el importe excedente */
*Cantidad = OSMboxPend (MboxAmount, 0 *MboxErrPointer);
*Cantidad = *Cantidad_cost;
I* reducir la cantidad por costo de chocolate */
56. /* */ Amt Reset
57. /* Cdigo para el dispositivo'driver para dejar Port_ExcessRefund suelte las monedas por el importe del
saldo de un
Canal como por la AMT valor ahora. As AVCS restitucin de las monedas, si el nio no puede insertar las monedas del
Cantidad requerida. */

530

Los sistemas integrados

__

58. /* Correo a esperar Task_Display a travs de message-pointer tor la primera lnea y segunda lnea de LCD
matrix en Port_Display. */
(MboxStr OSMboxPost4Msg, "PI recoger el exceso del importe insertado gracias, visite de nuevo" )/*
59. OSTaskSuspend (Task_Exceso de restitucin prioridad);
OSTask_Reanudar (Task_Entrega_Priority);
I; /* final del bucle while*/
60. )/ * al final de la tarea_ExcessRefund funcin */

/********:t:T:**::|^***:T:**********" ******************#/***********************

61. /* Los cdigos para la tarea_DispIay */


Task_static void *taskPointer CharCheck (void) {
62. /* declarar variables de cadena para las tres lneas y otras asignaciones iniciales y pre-bucle infinito
instrucciones que se ejecutan una sola vez. */
Grfico ] Strl unsigned, Str2 y Str3 y Str4, currentTimeDate; /* variable para mostrar a la derecha de la lnea 3
del comer matriz LCD */

63. /* iniciar un bucle while infinito. */ whiled) t


/* ESPERE PARA mensajes para la lnea 1, lnea 2 y lnea 3. */
Str 1 = OSMboxAccept (MboxStrlMsg, 0 MboxErrPointer);
Str2 = (MboxStrlMsg OSMboxAccept, 0 MboxErrPointer);
Str3 = (MboxStr OSMboxAccept3Msg, 0 MboxErrPointer);
Str4 = (MboxStr OSMboxAccept4Msg, 0 MboxErrPointer);
64. (MboxTimeDateStrMsg OSMboxAccept currentTimeDate =, 0); la pantalla MboxErrPointer'TimeDate
(currentTimeDate );
/* */ pantalla TimeDate si (Strl ! =
NULL) displayStrl (); if (Str2 ! =
NULL) displayStr2 (); if (Str3 ! =
NULL) displayStr3 () si (Str4 ! =
NULL ) displayStr4 ();
65. /* Los cdigos del controlador de dispositivo para el envo de las cuatro cadenas en una secuencia de bytes
a partir de la lnea 0 el carcter de la primera a la ltima lnea de carcter a travs del puerto_Display. */

OSTimeDly SemMKey (200) (2);


(Task_ExcessRefundPriority OSTaskResume);
66. )/* final del bucle While
}; /* Final cdigos para la tarea_DispIay */
//***********************************************************************
67. Los cdigos de funcin /* */ displayTimeDate
Static void displayTimeDate (unsigned char [ ] ) { currentTimeDate
68. /* Las asignaciones iniciales de las variables */ unsigned char *timeDate;

4
4

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

)/* Final de cdigos de funcin displayTimeDate */


69. /* ISR cdigos para publicar mensaje del buzn a la tarea_Display */
ISR_TimeDate () {
/* Los cdigos para crear un mensaje para obtener la fecha y la hora despus de cada
interrupcin desde 1000^' el sistema de graduacin de RTC. */

70. (MboxTimeDateStrMsg OSMboxPost, timeDate);


71. | /* Fin de ISR_TimeDate code*/

11.2

Estudio de caso de una cmara digital de la arquitectura de hardware


y software

La cmara digital fue presentado anteriormente en la seccin 1.10.4. Una cmara digital es un ejemplo de SoC. f
Seccin 1.6.] Seccin 1.10.4 enumer las funciones de la cmara, el hardware y el software de las unidades. Las
figuras 1.14 mostraron los componentes de hardware y software en una simple cmara digital.
Las secciones 11.2.1 y 11.2.2 dar los pasos de diseo de una cmara digital. Las secciones 11.2.3 y 11.2.4
Describir la arquitectura de hardware y software.

11.2.1 Requisitos
Requisitos de la cmara digital puede ser entendida a travs de un requisito la tabla dada en la Tabla 11.3.
Las funciones detalladas en el interior de la cmara son como sigue:
1. Un conjunto de controladores, flash, disparador de control (por ejemplo, en el caso de los perifricos,
acceso directo a la memoria, y autobuses), enfoque automtico y el ojo-bola de control de imagen. GUI
consta de la pantalla LCD para grficos, y los interruptores y botones para las entradas de cmara. Una
pantalla tctil es otra alternativa para LCD y teclado. El usuario da rdenes para encender la cmara.
Hash, obturador, ajustar el brillo, contraste, color, guardar y transferir. Los comandos de usuario en forma
de arco de las seales de interrupcin. Cada seal se genera a partir de una entrada de usuario desde un
interruptor o botn. Cuando un botn de apertura del obturador est presionado, se enciende la luz de
flash y un circuito temporizador apaga la luz automticamente.
2. La imagen genera la luz que cae sobre la matriz CCD, la cual, a travs de un ADC transmite los bits de
cada pxel en cada fila en la trama, y tambin para la zona oscura en cada fila de pxeles en una franja
vertical para la correccin de la desviacin en el CCD sealiza intensidades de luz para cada fila. La
banda est en bastidor adyacente.
3. Una imagen consta de un nmero de pxeles. El nmero de pxeles utilizados para una imagen determina
la resolucin. Cada imagen consta de un nmero de pxeles horizontales y verticales. Para 2592 x 1944
pxeles, hay 2592 x 1944 = 5038848 conjuntos de celdas. Cada pxel tiene tres celdas, para los
componentes rojo, verde y azul de un pxel. Cada clula obtiene^xpor^d para una imagen cuando el
obturador de la cmara, se abre sobre un comando de usuario. La cmara graba las imgenes utilizando
un dispositivo de carga acoplada (CCD) matriz. La matriz est formada por un gran nmero de clulas
CCD, tres en cada pxel.

532 |

Los sistemas integrados

Tabla 11.3 Requisitos de una cmara digital


Requisito
Finalidad

Descripcin
1. Grabacin digital y visualizacin de imgenes.
2. El procesamiento para obtener las imgenes de brillo, contraste y color.
3. Ahorro permanente de una imagen en un archivo en un formato estndar en un flash-memory
stick (o tarjeta).
4. Transferir los archivos a un ordenador a travs de un puerto.

Entradas

1. Intensidad y valores de color para cada imagen en filas horizontales y verticales de los pxeles
en una imagen.
2. Los valores de intensidad y color (oscuro) zonas no expuestas en cada fila de pxeles
horizontales para la correccin de la desviacin en la fila.
3. Las entradas de control de usuario.
Seales, eventos Los
y comandos de usuario dada como seales de interruptores/botones.
notificaciones
Salidas
1. Archivo codificado para una imagen.
2. El almacenamiento permanente de la imagen en un archivo en una memoria flash USB.
3. Pantalla de imagen desde el archivo despus de la decodificacin.
4. Salida de archivos a un ordenador acoplado al equipo.
Funciones de la
1. Dot matrix LCD a color muestra la imagen antes de disparar. Esto permite el ajuste manual
de la vista de la imagen.
Sistema
2. Para la filmacin, se pulsa el botn del obturador. A continuacin, un dispositivo de carga
acoplada (CCD), matriz colocada en el foco genera una secuencia de bytes en la salida
despus de las operaciones por parte de ADC en la salida analgica de cada clula CCD.
3. Un archivo se crea despus de la codificacin (compresin) y co-procesamiento de pxeles
como sigue: La secuencia de bytes se preprocesa y luego codificado en un formato estndar
usando un cdec.
4. Codifica el archivo de imagen puede ser guardada para el registro permanente. Un memory
stick guarda el archivo.
5. El archivo se utiliza para la visualizacin de imgenes grabadas utilizando un procesador de
visualizacin y puede ser copiado o transferido a un soporte Memory Stick y un ordenador
1
conectado a travs de un puerto USB.
6. La pantalla LCD muestra un archivo de imagen despus de que se decodifican (descomprimir)
utilizando el cdec. Textos tales como picture-ttulo, fecha y hora, y el nmero de serie
Parmetros de diseo
1. Disipacin
de potencia: el funcionamiento de la batera. La recarga de la batera despus de
tambin se muestran.
7. 400
Un fotos
puerto(supuesta)
USB se utiliza para transferir y almacenar imgenes en un ordenador.
2.
Resolucin: imgenes
de alta
resolucin
con opciones
de 2592
x 1944
pxeles
= 5038848
Alternativamente,
Bluetooth
o puerto
de infrarrojos
se puede
utilizar
para
interconectar
el
pixeis, 2592 x 1728 = 3,2 m, 2048 x 1536 = 3 m y 1280 x 960 = 1M.
equipo.
3. Rendimiento: disparar a un pxel de 4M imagen fija en 0.5s. 25 imgenes por m (supuesta)
4. Proceso proceso de la cmara: exponiendo los plazos en un mximo de 0,1 segundos.
Flash sincronizado con la apertura y cierre del obturador. Visualizacin de la imagen,
la latencia mxima de 0,5 s.
5. Interfaces de usuario: Grfico de la pantalla LCD o la pantalla tctil en la pantalla LCD
y los comandos del usuario de la cmara a travs de dedos en la pantalla tctil,
interruptores y botones.
Condiciones
de 1.
los ingeniera.
comandos de
usuario
funcionar correctamente.
6. Todos
Costo de
US$
50000debe
(asumido).
ensayo y validacin 2.
Todas de
lasfabricacin:
pantallas grficas
y los
mens deben aparecer como por el programa.
7. Coste
US$ 50
(supuesta).
!*- .Pi
3. Cada tarea debe ser probado con entradas de prueba.
4. Probado para 30 fotografas por m.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

533

4. Las clulas CCD cargar sobre la exposicin a la luz. La carga de cada color rojo, verde o azul de un pxel
de celda es de acuerdo a la intensidad de la luz y el color en ese punto de la imagen. Tres salidas analgicas
al sistema se genera para cada pxel. Cada salida analgicas se convierten primero en bits para el
procesamiento en la prxima etapa [seccin 1.3.71. Operaciones de ADC as tener lugar para la grabacin
de la imagen que se centra en las clulas. Cada celda de la salida analgica es una entrada a la ADC que
crea bytes para procesamiento ulterior. Cada byte de ADC corresponde a cada valor de la corriente
analgica que es como por la intensidad de la exposicin y el color de una celda. Esta operacin se
denomina el preprocesamiento.
5. Tambin se llevan a cabo operaciones de ADC para celdas adicionales no expuesta por los pxeles. Estos
pxeles adyacentes a la trama centrada en una franja vertical que consta de filas horizontales. Estos
permiten la medicin de la intensidad media oscura (cero) el valor actual de salida para cada fila del
marco de la imagen. Este promedio se resta como desviacin de corriente residual para cada fila de bytes
obtenida en el paso 4. Se toma una media despus de conversiones ADC para cada celda en el strip y el
promedio de los valores de bytes para la fila. Esta operacin de resta para cada fila de bytes de la trama
de la imagen es tambin una parte de preprocesamiento.
6. Bytes de operaciones de preprocesamiento en los pasos 3 y 4 para cada celda para los pxeles de imagen
se almacenan en un archivo tras la compresin. Las seales procesadas estn comprimidos con un codec
JPEG y guardados en un archivo jpg para cada marco de imagen. [JPEG (Joint Photographic Experts
Group]
7. El archivo JPG JPEG se crea despus de la codificacin (compresin) de bytes desde el procesador de
imagen. La secuencia de bytes de preprocesado est comprimido mediante transformaciones de coseno
discreto (DCTs). Normalmente, se utiliza aritmtica de enteros para guardar el tiempo de procesamiento
a expensas de alguna inexactitud en los clculos, con la ventaja de un nmero reducido de VLSI gates en
el preprocesador circuito de secuencia de bytes de CCD, procesamiento rpido (aproximadamente 6
veces) y la reduccin de la energa de la batera (alrededor de 6 limas). [Frank Vahid y Tony Givargis, un sistema integrado de hardware/software unificada Introduccin, John Wiley and Sons, Inc. 2002] Sin
embargo, la inexactitud no es perceptible a los ojos del hombre. Tras la DCTs. La cuantizacin es hecho
y luego Huffman no la compresin en formato JPEG. Cuantificacin significa, por ejemplo, la divisin
por 2, 4 o 8 a costa de reducir la resolucin de la imagen almacenados con el fin de crear un archivo de
menor tamao. El archivo jpg se almacena en una direccin de memoria en un bloque de memoria. Un
bloque(s) se reasigna a cada archivo.
8. Imgenes y GUI se muestra en una pantalla LCD de matriz de puntos de color. Para mostrar desde el
archivo obtenido en el paso 5 para la imagen, el original de bytes antes de la codificacin se recuperan
para la descodificacin (descompresin) operacin utilizando el codec y mostrar co-procesador. La
operacin de descompresin en el archivo es por DCTs inversa.
Y. Se utiliza el archivo para su visualizacin a travs de una pantalla del procesador. Pantalla de pxeles de
un co-procesador se utiliza para mostrar las fotos directamente o despus de girar a la derecha, girar a la
izquierda, suba mover abajo, desplazamiento a la izquierda, pulse Mays derecha, zoom, estirar, Cambiar
imagen al archivo siguiente y reprocesar para visualizar y cambiar al archivo anterior y reprocesar para
su visualizacin.
10. El archivo JPEG puede ser copiado o transferido a un memory stick utilizando un controlador y un
ordenador conectado a travs del puerto USB Controller. Sony Memory Stick Micro (M2) tiene un
tamao de I5 x x l I2.5 .2 mm y tiene un hash de 2 GB de memoria, 160 Mbps de velocidad de
transferencia de datos de la seccin [1.3.5].
11. Un puerto USB se utiliza para interconectar una computadora para transferir y almacenar imgenes en un
ordenador. Un controlador USB se utiliza para la transferencia. Alternativamente, un puerto de infrarrojos
o Bluetooth se puede utilizar para interconectar el equipo.

11.2.2 Los diagramas de clase


Creacin de archivo de cmara digital, visualizar y transferir a la impresora, memory stick y puerto USB puede
ser modelada por el
Los diagramas de clase de la clase abstracta_imagen_FileDisplay FileCreation, Imagen, e Imagen^FileTransasr.

Los sistemas integrados


-J

Fig. 11.8 tres diagramas de clase de imagen_FileCreation, Picture_FileDispiay, Picture_FileTransfer

1. Picture_FileCreation es una clase abstracta de la cual una clase extendida(es) se deriva para crear una
imagen codificada de JPEG. El Grupo de los objetos son instancias de las clases, DarkArea
ExposedArea_CCDBytesStream_CCDBytesStream, Task_CCD Preprocesador, Task_PictureProcessor
y TASK_encoding.
2. ExposedArea_CCDBytesStream es crear una secuencia de bytes desde el ADC salidas desde las clulas
expuestas en cada fila del marco de la imagen.
3. DarkArea. CCDBytesStream es crear una secuencia de bytes desde el ADC salidas desde la zona oscura
(vrgenes) las celdas de cada fila del marco de la imagen.
4. Task_CCD crea un preprocesador Stream tras la sustraccin de la media de bytes para cada fila de bytes
de salida desde DarkArea_CCDBytesStream desde el arroyo de las filas de salida de
ExposedArea_CCDBytesStream.
5. Task_PictureProcessor crea una corriente despus de procesar la tarea_CCD del preprocesador para el
brillo de la imagen, Contraste y ajuste de color.
6. Task_encoding codificacin Huffman crea para la codificacin JPEG y crea un I'ilestream para guardar
en la memoria flash interna o en la memory stick.
7. Picture_FileDisplay es una clase abstracta que se extiende tres clases Task_decodificacin. Tarea_
DisplayProcessor, Task_Display.
8. Picture_FileTransfer es una clase abstracta que se extiende tres clases, tarea Tarea_Printer_USBPort,
Task_MemoryStick.
9. Controller_Tareas que se extiende a las siguientes tareas: (i) Tasksjnitialization para la inicializacin de
tareas, (ii) Tareas_disparar para disparar las tareas, (iii) lnitialize_Picture_FileCreation para inicializar
el procesador CCD (CCDP), (iv) Inicializar_Picture_FileDisplay tareas, que inicia la pantalla del
procesador (DispIP)
(v) Inicia el procesador (MemP), (vi) inicia el procesador inicia vij PrintP (procesador de puerto USB
(USB_P)
(vi) Task_LightLevel para controlar el nivel de control, (vi) Task_flash.
Dibujar el diagrama de clase para tareas_controlador es un ejercicio para el lector.

11.2.3 La arquitectura de hardware de cmara digital


El hardware de la cmara digital se describe en la seccin 1.10.4. La cmara incorpora las siguientes unidades de
hardware. Tiene teclas, la velocidad de obturacin, la lente y el CCD (dispositivo de acoplamiento de carga),
matriz de sensores, unidad de pantalla LCD, un autodisparador

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

Lmpara lor Hash, memoria flash interna para almacenar el sistema operativo, el software integrado y memoria
para un nmero limitado de archivos de imagen, flash memory stick de 2 GB o ms para un gran nmero de
archivos de imagen, un puerto USB (Universal Serial Bus) (Seccin 3.I0.3) para conectarlo al ordenador y la
impresora. Frank Vahid y Tony Givargis incrustado en un sistema unificado de hardware/ software
Introduccin, John Wiley and Sons, Inc. 2002. Describe el VLSI e implementaciones de controlador, CCD
preprocesador con implementacin aritmtica de punto flotante, DCT preprocesador CCD con punto fijo y el
codec DCT. El libro tambin describe las mtricas de Diseo- El rendimiento, la energa y las consideraciones de
costo para cada uno. La figura 11.9 muestra una arquitectura de hardware de cmara digital.

A Flash-Memory Stick
Fig. 11.9 La arquitectura de hardware de cmara digital

1. U n microcontrolador ejecuta el controlador_Tareas. Las tareas del controlador arc los siguientes: (i)
Task_LiglitLevel control (ii) Task_flash (ii) la inicializacin de tareas, tareas de disparo (iii), (iv) inicia
Picture_FileCreation, tareas que se ejecutan en un nico propsito procesador CCD (CCDP) para la
corriente oscura, correcciones de compresin DCT. Codificacin Huffman. DCT descompresin.
Decodificacin de Huffman y guardar archivo, (v) inicia Picture_FileDisplay, tareas que se ejecutan en
un nico propsito mostrar DisplP (procesador) para descodificar y mostrar imgenes de archivo
comprimido despus de la secuencia de bytes de archivo necesarios para el procesamiento de turno o girar
o estirar o zoom o contraste o color y resolucin, (v) inicia memory stick guardar en una notificacin de
Picture_fi!cTransfer objeto del sistema de archivos mediante una transferencia de propsito nico
procesador (MemP). (vi) inicia la impresin en una notificacin de Picture_FileTransfer utilizando un
nico propsito (PrintP procesador de impresin), y (v) inicia el controlador de puerto USB en una
notificacin de Picture_FileTransfer utilizando un nico propsito proceso USB (USB_P).
2. Mltiples procesadores (CCDP. DSP. Procesador de pxeles y otros)-un DSP realiza compresin mediante
la transformacin de coseno discreta (DCTs) y descompresin por DCTs inversa. Despus DCTs, tambin
hace la codificacin Huffman para la compresin JPEG. Esta operacin se realiza mediante un procesador
de uso nico (ASIP) y se llama CODEC (Seccin 1.2.4).
3. RAM para almacenar variables temporales y pila
4. ROM/Flash para cdigos de aplicacin y RTOS cdigos para programar las tareas
5. Memoria flash para almacenar las preferencias del usuario, los datos de contacto del usuario, direccin,
usuario, fecha de nacimiento, cdigo de identificacin de usuario, ADC, y el controlador de interrupciones
6. Display LCD de matriz de puntos
7. Memory Stick
8. Batera

536

Los sistemas integrados

11.2.4 La arquitectura de software de la cmara digital


La cmara incorpora el IHE siguientes componentes de software. La Figura 11.10 muestra la arquitectura de
software. Existen las siguientes capas:
Capa del sistema
Los servicios del sistema, por ejemplo, mostrar el texto con la imagen, flash despus de un tiempo de
espera de arranque y parada de un temporizador automtico, ahorrando
Y recuperacin de registros internos del procesador, sistema operativo y servicios tales como el IPC
(comunicacin entre procesos)
Capa de aplicacin
Interruptores del sistema, el botn y las tareas de control. Algunos ejemplos son el flash, la luz, el contraste
y la vista de la imagen antes de disparar
Capa de funcin
Application Layer tareas utilizando la funcionalidad Picture_FileCreation, Picture_FileDisplay y
Picture_FileTransfer
Capa de presentacin
Slandard acceso a archivo de imagen, algunos ejemplos son los ajustes predeterminados de contraste de la
imagen, resolucin y salidas, el color de la pantalla
Ajuste de sonido, clics, fecha y hora, la pantalla de matriz de puntos o controlador de pantalla tctil, ADC y el
formato de
salida
Capa
de salidas
control de datos
Controller_Tareas, control Timer y mdulos de control en tiempo real
Capa base
Acceso estndar a los dispositivos internos del microcontrolador. Ejemplos son internos del dispositivo
temporizador, reloj en tiempo real
SI (interfaz serie), ADC, puerto USB
Fig. 11,10 capas de software en la arquitectura de software de un sistema de cmara

'stem capa capa del sistema proporciona servicios de sistema, por ejemplo, mostrar el texto
con la imagen, flash s rt y detener tras el tiempo de espera de un temporizador automtico,
guardar y recuperar registros internos del procesador, sistema operativo y servicios tales
como el IPC (comunicacin entre procesos).
Capa de aplicacin es la capa de aplicacin para el sistema cambia, el botn y las tareas de
control. Algunos ejemplos son el flash, la luz, el contraste y la vista de la imagen antes de
disparar.
Si

Funcin Funcin capa capa es para la capa de aplicaci n de tareas utilizando la funcionalidad
Picture_FileCreation, Picture_FileDisplay y Picture_FileTransfer.
Capa de presentacin capa de presentacin es para proporcionar acceso estndar a un archivo
de imagen. Algunos ejemplos son los ajustes predeterminados de contraste de la imagen,
resolucin, salidas de pantalla, ajuste de color, sonido de clics, fecha y hora, la pantalla de
matriz de puntos o controlador de pantalla tctil, ADC salidas de datos y el formato de salida.
Capa de control de capa de control para el controlador_Tasks, control Timer y mdulos de
control en tiempo real.
Capa base capa base proporciona un estndar de acceso a los dispositivos internos del
microcontrolador. Algunos ejemplos son el temporizador interno del dispositivo, en tiempo
real, si dock (interfaz serie)", ADC, y puerto USB.
La Figura 11.11 muestra un modelo de sincronizacin de tareas utilizando la cmara-bytestreams como colas
de mensajes y los semforos.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

537

El flujo de bytes

Fig. 11.11 modelo de sincronizacin para tareas de cmara

11.3

Estudio de caso de codificacin para enviar secuencias de bytes de la


capa de aplicacin en una red TCP/IP utilizando VxWorks RTOS

Los sistemas integrados se encuentra un gran nmero de aplicaciones en la comunicacin de datos y redes. Cuando
un sistema se incrusta el API de protocolo TCP/IP, se convierte en Internet habilitado. Muchos sistemas estn
habilitados para Internet a fin de que el sistema se comunica a otltci sistemas usando el Internet.
Una comunicacin puede estar dentro del mismo sistema o entre sistemas remotos conectados a travs de los
controladores de red. Puede ser desde una comunicacin peer-to-peer o entre el cliente y el servidor. Figura 7.11
mostr las funciones de dos zcalos comunicndose a travs de una pila. Un socket es normalmente un cliente
socket y zcalo B es un serv er socket en una red. Cada socket de red es identificado por un par de parmetros
distintos. Direccin IP y nmero de puerto. Inter-socket la comunicacin entre dos aplicaciones es exactamente la
misma, sea cual sea la aplicacin y el sistema operativo utilizado. Muchos RTOSes incluyendo VxWorks
incorporada proporciona APIs para la pila TCP/IP y otros protocolos de red.
La codificacin dada aqu en el ejemplo de cdigo 11.2 es ya una parte de VxWorks de las API de red. VxWorks
proporciona las API (Interfaces de aplicacin) para la creacin de redes. Tiene una biblioteca, sockLib para
programacin de sockets. [Seccin 7.15|. [El lector puede referirse a VxWorks Gua del programador de red al
utilizar estas API y sockLib. La gua es fuente de Wind River Systems (www.windriver.com)l.
Dado que nuestro objetivo es aprender el uso de [PCs en la multitarea RTOS mediante un estudio de caso, estas
API y sockLib aqu no se utilizan para crear una pila TCP. El presente estudio de caso se da a fin de adosado, por
ejemplo, en el caso de TCP y UDP como un entorno de programacin VxWorks RTOS pueden utilizarse para
desarrollar APIs para un sistema incorporado para un nuevo protocolo de red.
Asumir un caso de un sistema integrado en el cual el RTOS tareas comunicar las pilas TCP desde una aplicacin.
Un ejemplo de la aplicacin es HTTP o FTP. Este ltimo se comunica con un servidor web o transfiere un archivo,
respectivamente. Una pila TCP/IP es una pila que contiene los fotogramas comunicados en la red mediante
un conjunto de protocolos TCP/IP. El lector puede consultar el libro Internet y tecnologas Web por este

538

Los sistemas integrados

Autor de Tata McGraw-Hill, 7111 , reimpresin 2007. Describe los formatos a nivel de bits de segmento TCP.
Datagramas UDP, IP packet, deslizamiento y trama Ethernet. La capa de aplicacin se formatean bytestreams en
las sucesivas capas para obtener el bloque final de la red. Un formato de flujo segn protocolo especificaciones
para en- entre las capas. Una pila TCP normalmente tiene muchos marcos en que un controlador de red escribe los
bytes.
Ejemplo 11.2 muestra la aplicacin de RTOS para escribir en la pila. Utilizamos VxWorks funciones descritas
en la seccin 9.3 para el presente caso. En otro nodo (punto final de la red), las prioridades de las tareas que reciben
la pila para recuperar los bytes de la aplicacin ser obviamente en orden inverso. Codificacin para que se deja
como ejercicio para el lector.
Las ventajas de la multitarea debera resultar evidente por este ejemplo. Una aplicacin puede no emiten las
cadenas continuamente. Las tareas en las otras capas por lo que puede procesar simultneamente durante los
perodos intermedios.
Los semforos proporcionan una manera eficiente de sincronizar las tareas de las distintas prioridades. Los
semforos se utilizan como un mutex de guardia para los datos compartidos problemas al utilizar las variables
globales para los flujos de E/S. Los semforos tambin se utilizan como indicadores del evento. El uso de cualquier
otra prueba o VxWorks RTOS simplifica la codificacin como la programacin y el IPC funciones estn ahora
disponibles en el RTOS.

11.3.1 Requisitos

Figura 11.12(a) muestra los requisitos de un sub-sistema de aplicacin, que est transmitiendo una pila TCP/IP.
Figura 11.12(b) muestra las secuencias de programacin de las tareas durante una transmisin de la pila TCP/IP.
Aplicacin

X
Out.Stream
F TCP

JV

UN __ Z:

UDP

Aplicacin
Capa

------ N Task_str verificar


Tiempo } |

Transport
e
Capa

-------- 1 TaskOut Stream

Internet
Capa

Segmento TaskTCP /
Task_datagrama UDP Flujo de trabajo

Jp
TaskNet TaskJP Pkl Drv (i"
___
Yo para transmitir una pila TCP/IP desde una aplicacin (fa) Las tareas y su secuencia de
Fig. 11.12 (a) Sub-sistema
(a)

programacin durante una transmisin de la pila TCP/IP

Requisitos para la creacin de una pila TCP/IP puede ser entendida a travs de un requisito la tabla dada en la Tabla 11.4.

11.3.2 El diagrama de clases, clases y objetos


Pila TCP de transmisin puede ser modelado por un diagrama de clase de las clases abstractas TCP_Stack. Figura
11.13 Espectculo del diagrama de clase de TCP_Stack para enviar un paquete TCP o UDP a un socket. El diagrama
muestra cmo las clases y objetos de una clase se relacionan y tambin las asociaciones jerarquizadas durante la
creacin del flujo de datos TCP o UDP y la transmisin de paquetes. Los objetos Task son los procesos o
subprocesos que son programados por el RTOS.
1. Tarea TCP es una clase abstracta de la cual clase extendida(es) se deriva para crear paquete TCP o UDP
R
,fi\
A un socket. El Grupo de los objetos son instancias de las clases (i) Task_StrCheck, (ii) Task_OutStream.
(iii) Task_TCPSegment o task_UDPDatagram, (iv) y (v) TaskJPPktStream Task_NetworkDrv.
2. Task_StrCheck es verificar y obtener la cadena.
3. Task_OutStream se extiende desde las dos clases Task_StrCheck y TASK_TCP.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

539

Tabla 11.4 Requisitos para crear una pila TCP/IP

Requisit
o
Finalidad

Cc.criptniti'.
Para generar un bylcstream para enviar en red utilizando el protocolo TCP o UDP en el nivel de
transporte
Y el protocolo IP de capa de red

Entradas

1. Bytes de capa de aplicacin frontal


2. Notificacin y ScmTCPFlag SeinUDPflag para seleccionar socket UDP o TCP socket
Respectivamente

Seales, eventos y
notificaciones

Despus de formar los paquetes en la capa IP. Controlador de red SemPkiFlag tarea

Salidas

I. Secuencia de bytes de TCP o UDP para socket destino

Funciones de la solicitud HTTP se envan datos a Bo a modificar encabezados de codificacin en el sistema de transporte y
de red
Capas. Tareas programadas de arco en cinco secuencias (i) Task_StrCheck. (ii)Task_OutSlrcam,
(iii)Task_TCPSeginem orTask_UDPDatagram. (ivj TaskJPPklStream fvj Task_NetworkDrv
Miedo y validacin I. Un bucle de vuelta desde el socket destino debe permitir la recuperacin de las condiciones de flujo de
datos de la aplicacin
Como originalmente enviados
2. Pruebas de desbordamiento de memoria intermedia

TM
R ---------

-------------

Tarea StrCheck

Pila TCP

Tarea OutStream

- ... J Task_TCPSegment !
Yo Task_UDPDatagram !

1 TaskJPPktStream !

Task_NetworkDrv i

L-ig. 11.13 Diagrama de clase de TCPStack para enviar paquetes TCP o UDP a un socket
4. Task_TCPScgmem crea un flujo de segmento TCP IP lor lser. Cuando se va a enviar datagramas
luego Task_UDPDatagram crea una secuencia mediante de task_OutStream bytes de salida.
5- TaskJPPktSlream crea un paquete utilizando el Task_stream_UDPDaiagram TCPSeginenl o tarea.
Ello depende de si el objeto de la capa de aplicacin o SentUDPFIag ScmTCPFlag puestos.
6. Task_NetworkDrv emite los paquetes en la red.
La clase del lado izquierdo de la Figura 11.14 muestra un ejemplo de la clase Task_0utStieam. Demuestra cmo
estas dos clases se muestran usando UML.
Task_OutStream tiene los siguientes campos: (i; y semFfag SemMKey son dos semforos para 1PC funciona,
(ii) tres enteros para el numBytes, (el nmero de bytes que se transmiten desde la capa de aplicacin), el ID de
tarea y la prioridad de las tareas, respectivamente, y las lneas de texto I, 2 y 3, (iii) y OutStreamlnpuiID appISir
cadenas estticas para el stream ID y application data stream.

540

Los sistemas integrados

Task_OutStream tiene tres mtodos (funciones en C)-msgQSend () cadena de mensajes puestos en un mensaje
Cola, TaskDelay () retrasa la tarea y permite una tarea de baja prioridad para comenzar y TaskResume () reanuda
el
Tarea retrasada.
Task_OutStreamAp
Task_OutStream

El objeto del lado derecho


La Figura 11.14 es un ejemplo de
En el objeto basado en clases
Task_OulSlream de que
Objeto es una instancia y funcional
Entrada. Un objeto se muestra
mediante un
Caja rectangular con el objeto
Identidad seguida de punto y coma
A continuacin, la identidad de
clase. Objeto
Tas!'_OutStreamAppl
es
una
instancia
De T )sk_OutStream.

SemFiag,
SemMKey:
OSEverrt;
numBytes,
taskld,
taskPriority:
Integer;
OutStreamlnputl
D esttica,
appIStr: String;
TaskDelay
msgQSend () () ()
taskResume

pl: tarea OutStream


SemFiag
NumBytes
OutStreamlnputl
D
StrAppt
Str
TaskPriority

Diagrama Stace Figura 11.15 Fig' n'14 C,culo Task_OutStream y objeto Task_OutStream
Se muestra un diagrama de estado para task_Stack. Demuestra cmo se muestra el diagrama de estado de UML.
Un diagrama de estado
Se muestra un modelo de estructura para su inicio, fin, entre asociaciones a travs de las transiciones y espectculos
Eventos etiquetas (o condicin) asociados con las transiciones. Las transiciones de estado tienen lugar entre las
Tarea de aplicacin
tareas, | Inicio
FLP o HTTP_stack
_ TCP KeypadInput, Comunicacin, Task_task_ReadPorts, Task_devolucin
Task_GUI, Task_Display_TaskUser
Tarea StrCheck
L
Tarea ExcessRefund, Task_task_recoger,
entregar y TaskJDisplay. Los pasos que se utilizan para dibujar un
Diagrama de
estado
se
dan
en
Seccin
11.3.3.
Semforo STAF
False

Tru
e

Fig. 11.15 Diagrama de estado para TCP_Stack

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

11.3.3 Pila TCP Arquitectura de hardware y software


Una pila TCP se ejecutan en el mismo hardware para el sistema que est conectado en red con otro sistema. El
nico hardware adicional necesario es para los cdigos de la memoria, los datos y la cola para flujos de datos,
paquetes y zcalos. Un solo paquete TCP o UDP datagrama es de un mximo de 216 bytes. 2 MB (512 x 216 bytes)
de memoria RAM puede tomarse como requisito de memoria adicional.

Arquitectura de Software El lado izquierdo de la Figura 11.16 muestra architeure software


para un TCP_Stack. El lado derecho muestra el modelo de software por una pila TCP/IP.
Tareas de TCP_Stack y sus prioridades se definen de la siguiente manera:

Cola de Stream Socket

Ars
m

Fig. 11.16 TCP_Stack de software de arquitectura y modelo TCP/IP.

Crear una lista de tareas, funciones y IPCs

1. VxWorks de usuario se definen las prioridades de las tareas por encima de 100 y en la capa-wise secuencia.
2. Pongamos un PC (convencin de nomenclatura. Una IPC comenzando con caracteres iniciales como 'Sem'
significa semforo binario y "emM" significa la exclusin mutua. Un IPC para marcar un evento tendr
cuatro caracteres, "bandera". Un IPC para bloqueo de recursos tiene tres caracteres, 'clave'. Un mensaje
identificador de cola comienza con el carcter 'Q'. Un tubo identificador empieza con cuatro personajes
"pipe".
3. Cualquiera SemTCPFlag o SemUDPFlag est dada por la tarea de la aplicacin. Es como por el protocolo
para ser utilizada en la capa de control de transmisi n. El IPC SemFinishFlag va a ser adoptada por la
aplicacin o cualquier otra tarea. Marca la insinuacin de que la tarea de las cadenas de mensajes ponen
en el tubo por el controlador de red est terminado. Es un acuse de recibo. Otro IPC SemFlag2 es para
tomarse por OutStream como un reconocimiento de que el flujo enviado al controlador se ha conseguido
poner en el tubo y la nueva corriente puede ser enviado a la salida.
4. Encabezado TCP difiere del encabezado UDP. La ex facilita el establecimiento de la conexin de red,
control de flujo y la gestin, y la terminacin de la conexin mediante un adecuado intercambio de
parmetros a travs de la red. TCP es llamado as un protocolo orientado a la conexin. Este ltimo es un
simple mensaje de datagramas para el receptor. UDP es un protocolo sin conexin. Las prioridades de
tareas en ambos casos son asignados
C' igual. Ninguna de las marcas, que especifica el protocolo, puede darse (publicado) por la aplicacin.
5. Un datagrama es independiente (ajenos a la anterior o siguiente) secuencia de mensajes de tamao
Y
o
T,

T
%

mximo
216 bytes. UDP transmite slo los nmeros de puerto de origen y destino, la longitud de flujo y checksum

542

Los sistemas integrados

La capa de 'Internet'. La toma de corriente (salida de esta capa) tiene los nmeros de puerto de origen y de
destino
As como direcciones IP. Un paquete de un socket es una secuencia de mensajes de un tamao mximo de
2lfl bytes.
Cada paquete tiene un encabezado IP insertado. El zcalo est identificado por su direccin IP y nmero
de puerto.
La aplicacin HTTP
6. El controlador de red constituye el marco como por la configuracin del controlador de red.
El cuadro 11.5 presenta una lista de tareas.

Modelo de sincronizacin para mltiples tareas


Y SUS FUNCIONES Figura 11.17 da un
Modelo de sincronizacin para mostrar cmo las tareas
pueden ser
Sincronizados. La capa superior es una capa de aplicaci
n
En una red TCP/IP. Pasos de la capa superior son tan
Siguiente:
Paso A: dejar una tarea. Task_StrCheck, verificar
Disponibilidad de una cadena en la salida de una
aplicacin.
Esta es la tarea de mayor prioridad durante el envo a la
Net. Si la prueba muestra un estado de disponibilidad a
travs de la cadena
Semforo de bandera. STAF. La tarea da (post's)
Semforo para una tarea de espera, Task_OutStream.
Vamos
El
tamao
mximo
de
la
corriente
ser maxSizeOutStream.

Tarea.Str
Verificar
CL

Oh

CL i

, 1: STAF
Tarea.Out i 2 sem bandera
TCP Stream
|~~

CP
Segmento
5: Sem Bandera
Task.T TCP

Tarea.se
gmento
UDP I
5: Sem Bandera UDP

Pkt TaskJP Stream


6: Sem Pit bandera
| Task.Network Drvi

Paso B: La tarea espera desbloquea por tomar la


Semforo. A continuacin, se lee una cadena y enva un byte
Arroyo en una cola de mensajes. Deje que el SemFlag2 Fig. 11.17 Modelo de cmo las tareas estn siendo
El semforo adoptadas antes de enviar la cadena de
Sincronizado
Aplicacin en la cola para el buffer. OutStream.
Deje semaphore dadas por Task_StrCheck y tomado por Task_OutStream ser Sem Flay, I. permiten utilizar la
segunda tarea
La cola de mensajes. OutSiream. para el envo de las cadenas desde la aplicacin hasta el siguiente lamentos de
tarea. Deje que el
Dar outstream bytes a la cola de mensajes identificados por QStreamlnputiD.
Paso C: Junto a la capa de aplicacin, hay una capa de control de la transmisin en la red. Es el equivalente
Capa de transporte del modelo OSI. La tarea es el siguiente en prioridad. La tarea de la aplicacin puestos otros
dos semforos
Banderas, adems de STAF. Uno Hag es desbloquear una tarea de espera. Task_TCPSegment. Se tarda el semforo
y
Se desbloquea si esta capa es el protocolo TCP. La otra bandera semaphore es desbloquear otra tarea en espera.
Task_UDPDatagram. Se desbloquea cuando esta capa es el protocolo UDP.
Paso D: encabezados apropiados deben ser insertadas en la parte delantera de la corriente en la capa de transporte
(l y el arroyo
Informacin de formatos ya sea un segmento TCP o UDP datagram, dependiendo de la tarea que desbloquea (sufre
al
Estado de ejecucin). Task_TCPSegment orTask_UDPDatagram. La tarea coloca los bloques, cada uno de 256

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

El bloqueo. Deje semforos tomadas por TCP y UDP tarea tomada por tarea y
SetnTCPFlag ScntUOPFIag. Respectivamente. Deje la tarea dar (l bloquea a la cola de mensajes, identificado
por QSimnnln/ni/ll).

Tabla 11.5 Lista de tareas, funciones y IPCs utilizado en el ejemplo 11.2


Tarea
Funcin

Prioridad

Task_strChcck

120

Task_OutStream

121

Task_TCP
Segmento

122

Task_UDP
Datagrama

122

TaskdPPkt
Stream

123

124
Task_encWorkDrv

En TCP/IP
capa("
Aplicacin

Accin
Obtener una cadena
desde la aplicacin

Tomado IPC
-

Publicado el El flujo de
IPC
bytes de salida
1 SemFlag
Ninguno

Aplicacin

SemFlagl,
Leer y poner la ScmFlug2
cadena de bytes en
un flujo de salida

QStreamInputlD

Transmisin
El control
(Transporte).

Insertar encabezado SemTCPFlag.


TCP al arroyo
SemMKeyl,

Y SemMKeyl
QStream
InpittID.

Transmisin
El control
(Transporte).
Internet
(Red)

Insertar encabezado SemUDPFlag,


UDP para el flujo SemMKeyl
enviado como un QStreamlnputlD
datagrama
Forma los paquetes SemMKeyl,
QStreamlnputlD
de 2'6 bytes

Red
Interface

Enviar los paquetes a


medida
que las SemPktFlag.
QPktlnputlD,
tramas
ScmM Kr\l

11 ).i!,i-lmk i

QStreamlnputlD

QStream
InpittID.
SemMKevI

Out-Stream

Out-Stream

Out-Stream

SemMKeyl. SveketSemPktFlag. Siream


QPktlnputlD
ScmFinishBandera.
SemFlagl

PipeNet
Stream

" correspondiente Inver nombre en modelo OSI es dador (en l la escuadra.

Paso F: Junto a la capa de transporte es la capa de 'Internet'. [ Es un pequeo 'i\ no es una capital, en internet.
Nos estamos refiriendo lo inter-redes, no Internet.] es el equivalente de la capa de red del modelo OSI. Una
tarea. Task_IPPktStream. espera y desbloquea en la disponibilidad de un bloque de task_task_UDPDatagram
TCPSegment o. Cada paquete tiene un tamao mximo de 216 bytes. Esta tarea es el siguiente en prioridad.
Task_IPPktStreani es para formar un paquete IP para su transmisin en la red a travs del controlador de red.
Esta tarea se inserta (escribe) un encabezado IP en una toma de corriente. SocketStream, a una toma de red.
La tarea se inserta el cabezal en el arroyo despus los bloques recibidos desde la parte superior de la pila de
capas juntos en el paquete. Esta tarea tambin enva un semforo indicador cuando el paquete est listo para
su entrega al controlador de red. Deje que el semforo dada por la tarea y adoptado posteriormente por
Task_NetworkDrv ser coser Pit Bandera. Deje la tarea enviar los paquetes a una cola de mensajes,
identificado por QPktlnputlD.
Paso G: Junto a la capa de internet es la 'capa' de la interfaz de red. Es el equivalente de los datos-Iink capa
del modelo OSI. Controlador de red, tarea Task_NetworkDrv, espera a que el paquete listo
bandera, SemPktFlag. Cuando la tarea es SocketStream unbloekingtrit lee y escribe el bastidor bastidor en un
tubo, pipeNelSlreani. El tubo almacena y transmite los bytes en el encabezado de trama, encabezado de
trama, en el SocketStream datos o su fragmento y en los bytes finales, trail Bytes. stos son generalmente por
error o en el marco de funciones de control terminal (final) funciones. Deje la tarea dar al bastidor, uno por
uno, a un tubo identificado por pipeNetStream. Deje el semforo dada por la tarea y adoptadas posteriormente
por la tarea de la aplicacin sea SemFinishFlag, cuando no hay ms bytes disponibles

Los sistemas integrados

544

Para la transmisin. Un semforo SemFlut>2 est dada por la tarea cuando un bloque de bytes est listo. Esto
permite a la capa siguiente tarea desbloquear outStream e iniciar la formacin de paquetes cuando el RTOS listas
siguiente.
SLIP, PPP, Ethernet y Token ring son ejemplos de protocolos de la capa de interfaz. El trailBytes frumeHeader
y se aplican segn el protocolo utilizado por el controlador. Ciertos protocolos no escriba fra m encabezado, por
ejemplo patinaje. Ciertos protocolos no escribir trailBytes.
Task_NetworkDrv abre un archivo de configuracin. El archivo de configuracin es un dispositivo virtual de
archivos incrustados en el .sistema. [dispositivo de archivo virtual significa un archivo en el disco, pero no en la
memoria y con similar apertura, la lectura, la escritura y la dosis funciones como para los archivos en el disco]. El
archivo apunta a la informacin de configuracin. La funcin cre.it ( )
|Un->/rv falta 'e' en funcin de creat! Y ELIMINAR ( ) se utiliza para crear y eliminar un archivo en el dispositivo
de VxWorks. Vs obras abiertas, funciones de lectura y escritura son utilizadas como mostrado anteriormente en el
ejemplo 9.26. El uso de la select () y cierre () funciona para un archivo es anloga a la de un tubo [seccin 9.3.4.12].
Ejemplar informacin de configuracin en el archivo puede ser como sigue: podemos definir, en el caso de una
conexin en serie, los siguientes parmetros:
(i) Protocolo para el enlace (SLIP o PPP)
tii) iiii) Host Port liv) Baud rate
Tvi) Nmero de bits por carcter, por ejemplo, 8
(vii) Nmero de bits de parada, por ejemplo, 1
Un archivo de configuracin se puede describir de la siguiente manera, en el caso de una tarjeta Ethernet usado
como un controlador de red. La primera lnea formato puede comenzar con red. Esto especifica que la lnea para
especificar las direcciones de la tarjeta de red. Los prximos tres palabras son entonces 'Ethernet 3Com OxXYZ'.
Esto especifica que la red es Ethernet. La tarjeta .< hechas por 3COM. La direccin de la tarjeta en el sistema
hexadecimal es XYZ. La lnea siguiente formato puede comenzar con IP especifica que la direccin IP debe ser
definido en la lnea como la siguiente palabra. Es la direccin del nodo que se conecta a la red. Si existe otra
conexin con el mismo controlador de red, puede haber otro ad hoc a asignar otra direccin IP. [Una direccin IP
es de 4 bytes. Es para una conexin broadeasting OxFFFFFFFF !, todos los nodos. Tambin se puede escribir
como convencionalmente 255.255.255.2551.
Un programador diseando los cdigos primero prepara una lista de tareas, las prioridades de tareas, las capas
en el cual las tareas
ion, las acciones de las tareas, el IPCs para que cada tarea o seccin espera (toma) antes de
desbloqueo, IPC que da (puestos) para permitir a otra seccin de espera o tarea y desbloquear el flujo de salida, que
la tarea enva como salida. T.ihle 11.5 estas listas. La codificacin se realiza. Los siguientes puntos se pueden
observar en la tabla.

fimci

11.3.4 Pasos de codificacin de ejemplares


El grupo de objetos en la Figura 11.16 se pueden implementar como funciones de C en un entorno con VxWorks C
como lenguaje de programacin. VxWorks IPC funciones pueden aplicar el modelo de sincronizacin se muestra
en la Figura 11.15. Los siguientes son los pasos de codificacin de VxWorks para la tarea los objetos enumerados
en el cuadro 11.5.

Ejemplo 11.2
1.
#
#
#

# Incluir 'vxWorks.h" /* incluyen VxWorks funciones. */


Incluir "semLib.h" /* se incluyen la biblioteca de funciones de semforo. */
Incluir "taskLib.h" /* se incluyen la biblioteca de funciones multitarea. */
Incluir "msgQLib.h" /* se incluyen la biblioteca de funciones de la cola de mensajes. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

I545]

# Incluir "fioLib.h" /* se incluyen dispositivos de archivo Biblioteca de funciones de entrada/salida. *1


# Incluir "sysLib.c" /* incluyen biblioteca del sistema para las funciones
del sistema. */ pipeDrv (); /* Instale un tubo conductor. */
# Incluir "netDrvConfig.txt' /* se incluyen el archivo de configuracin de controlador de red (protocolo de
formato de trama, PPP, SLIP), tarjeta Ethernet descripcin descripcin/make, la direccin en el sistema, la
direccin IP de los nodos que impulsan la tarjeta para transmitir o recibir desde la red. */
# Incluir "prctlHandlers.c" /* incluye un archivo para los cdigos de manipulacin y acciones como por los
protocolos utilizados para conducir corrientes para la red. *1
2. SysClkRateSet (1000); /* Set system clock rate 1000 ticks por segundo. *1
3. I* inicializar el zcalo parmetros y otros parmetros de red valores iniciales*/
/* SourcePort significa nmero de puerto de origen de la aplicacin utilizada. DestnPort significa nmero de
puerto de destino. Definir una variable string, Str. */
Unsigned short SourcePort; unsigned short DestnPort; unsigned char [ ] Str,
Unsigned short puertodeorigen = ;
Unsigned short DestnPort = ;
Unsigned short SourcelPAddr = ;
Unsigned short DestnIPAddr = ;
4. /* declarar los tipos de datos de secuencias de bytes de salida para argumentos en
las tareas. */ unsigned char [ 1 applStr, OutStream, socketStream, pipeNetStream;
5. /* declarar los tipos de datos de los tamaos mximos de flujos desde y a las tareas. Declarar el tipo de datos
de tamao de bloque, blkSize. Es el nmero de bytes que debe estar disponible antes de enviar un IPC para un
buffering stream. Evita repetir cmo pasar de una tarea a la siguiente despus de cada byte. */
Unsigned int, blkSize strSize strSize maxSizeOutStream,,,, maxSizepipeNetStream maxSizeSocketStieam;
6. /* asignar valores predeterminados para varios tamaos*/
MaxSizeOutStream = 1024 * 1024; /* aplicacin permiten poner 1 MB en la red. */
unsigned int i = 1; strSize* que tamao de cadena predeterminada desde una
aplicacin I byte. */ blkSize = 256; /* permiten ser predeterminado de bloque de 256
bytes. *1
MaxSizeSocketStream = 64 * 1024; /* le toma 64 kB puso el paquete en la red. */ * maxSizeSocketStream
maxSizepipeNetStream = 16; /* controlador de red permiten poner 16 paquetes = I MB mximo nmero de
bytes. *1
7. /* declarar toda la tabla 11.5 Tareas */ prototipos de funcin.
Void TaskJJtrCheck (SemID SemFlagl); /*tarea comprobar la cadena de disponibilidad. */
Void Task_OutStream (SEM_ID , SemFlagl SemFlag SEM_ID2, MSG_Q_ID QStreamInputID); void
Task_TCPSegment (SEM_ID, SEMJD SemTCPFlag SemMKeyl, MSG_QJD QStreamInputID); void
Task_UDPDatagram (SEM_ID, SEMJD SemUDPFlag SemMKeyl, MSG_Q_ID QStreamInputID, OutStream,
SourcePort, DestnPort, maxSizeOutStream, blkSize);
Void TaskJPPktStream (SEMJD SemMKeyl, SEMJD SemPktFlag, MSG_QJD QPktInputID); void
Task_NetworkDrv (SEMJD SemMKeyl, SEMJD SemPktFlag, SEMJD SemFinishFlag, SEMJD SemFlag2,
MSG_QJD QPktInputID pipeNetStream blkSize socketStream,,,,, maxSizepipeNetStream
maxSizeSocketStream MSG_FRAME aFrame);
8. /* declarar toda la tabla 11.5 identificadores de tareas, prioridades, opciones.imd Ufacksize. Deje ID
inicial hasta generado ser ninguno. No hay opciones y stacksize = 4096 para cada una de las seis tareas. *1
Task_int StrCheckID = Error; int TaskJitrCheckPriority = 120; int Task_StrCheckOptions = 0; int

546

. __/

Los sistemas integrados

Task_StrCheckSlackSize = 40%:
Task_int OutStreamlD = Error: im Task_OutStreamPriority =121; int TaskJDutStrcamOptions = 0.
Int TaskJDulStreamStackSizc = 4096:
Task_int TCPSegmentlD = Error; int Task_TCPSegmentPriority = 122; int Task_TCPSegmentOptions = 0; im
Task_TCPSegmentStackSize = 4096; int Task_UDPDalagramlD = Error; int Task_UDPDalagramPriority =
122: ini Task_UDPDatagramOption.s = 0: int Task_UDPDatagramStackSize = 4096; int TaskJPPktStreamlD
= Error; int TaskJPPktStreamPriority = 123; int TaskJPPktStreamOptions = 0; int Task_lPPktStreaniStackSize
= 4096; int Task_NetworkDrvID = Error; int Task_NetworkDrvPriority = 124; int Task_NetworkDrvOptions
= 0; int Task_NetworkDrvStackSize = 4096;
9.I!s crear e iniciar (Spawn) todas las seis tareas de la tabla 11.5. *1 Task_StrChecklD = taskSpawn ( '
tTask_StrCheck". Task_StrCheckPriority,
Task_StrCheckOptions,
Task_StrCheckStackSize, void (*Task_StrChcck) (STAF SEMJD SemFlagl, SEM_ID), 0, 0,0, 0. 0, 0,

0, 0, 0, 0).
= taskSpawn TaskjOutStreamlD ("_tTask OutStreanv'. Task_OutStreamPriority, tarea J3utStreamOptions.
Task_OutStreamStackSize, void (*TaskJ)utStream) (SEMJD SemFlagl, MSG_QJD QStreamlnpulID. appIStr,
OutStream, maxSizeOutStreani, blkSize). 0, 0. 0, 0, 0, 0, 0, 0,0, 0).
=
taskSpawn
TaskJTCPSegmenllD
(
''\
TCPSegment
tTask_task_TCPSegmentPriorily,
Task_TCPSegmentOptions, Task_TCPSegmentStackSize, void (*Task_TCPSegment) (SEM_1D, SEMJD
SemTCPFlag SemMKeyl, MSG_Q_1D QStreamlnpuilD, unsigned char [ ] OutStream, int, int blkSize
maxSizeOutStream. unsigned char (I6| txtcpState, unsigned char [16] ixlcpOpPdFormat) unsigned
short SnurcePort, unsigned DcstnPort. unsigned int , unsigned int AckNum SecptenNum. unsigned char
* *TCPHdrFlags TCPHdrLen, unsigned, unsigned short TCPCheeksum 16. unsigned short ventana. Unsigned
short ''UrgPtr. unsigned char |optPdLen| extras)
Tarea U DP_ID = taskSpawn datagrama (".UDPDatagram tTask". Task_UDPDatagramPriority,
Task_UDPDatagramOptions. Task_UDPDatagramStackSize. void (*Task_UDPDatagram) (SEM_ID
SemUDPFlag, SEMJD SemMKeyl. MSG_Q_ID QStreamlnpulID. unsigned char [ | OutStream. int
maxSizeOutStream. int blkSize). SourcePorl. DestnPon. 0. 0. 0. 0. 0, 0. 0. 0);
Task_IPPktStreanilD = taskSpawn ("tTask JPPklStream". TaskJPPktStreamPriority, TaskJPPklStreamOptions,
tarea JPPkiStreamStaekSize. void (Task_IPPktStream) (SEM_ID SemPktFlag.
MSG_Q_1D QPktlnputlD, unsigned char [ | OutStretnn, int, blkSize maxSizeOutStream. unsigned char (]
SocketStream, maxSizeSocketStream), 0, 0. 0, 0, 0. 0. 0, 0, 0, 0).
Task_NetworkDrvID = taskSpawn ("tTask_ El trabajo neto div". Task_NetworkDrvPriority, tarea_
NetworkDrvOptions. Task_NetworkDrvStackSize, nula (* Task_NetworkDrv) (SEM_1D, SEMJD SemMKeyl
SemPktFlag, SEMJD SemFinishFlag, SEM_I D SemFlag2, MSG_QJD QPktl nputID socketStream, unsigned
char [ ] blkSize pipeNetStream, int, int, int maxSizepipeNetStream maxSizeSocketStream, unsigned char [ J
Encabezado de trama, unsigned char [ ] trailBytes), 0,0,0,0, 0,0, 0,0, 0,0);
10. /* declarar identificadores y crear el semforo binario banderas, claves y colas de mensajes. */
SEMJD SemTCPFlag, SemUDPFlag; I* declaradas en la solicitud */
= semBCreate SemTCPFlag (SEM_Q_FIFO, SEM_EMPTY); I* declaradas en la solicitud */ SemUDPFlag =
semBCreate (SEM_Q_FIFO, SEM_EMPTY); I* declaradas en la solicitud */
/* Nota: La aplicacin se marchitan SemUDPFlag SemTCPFlag puestos o para que una de las dos tareas se
ejecutan.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

[Ta.sk_task_UDPDatagram TCPSegment o. */
I|l|j
SEM_ID , SemFlagl SemPktFlag SemFlag2, St'mFinishFlag, SemMKeyl; I* declarada para los seis ul^|
enumerados en la Tabla 11.5. */
:$
11. /* crear el binario de semforos, cola de mensajes para una secuencia de bytes de una aplicacin y pasar
las opciones seleccionadas. */
I = semBCreate SemFlag (SEM_Q_PRIORITY, SEM_EMPTY); / *Tarea de prioridad superior lagos
primero. *1 - semBCreate SemFlag2 (SEM_Q_PRIORITY. SEM_EMPTY); / *Tarea de prioridad superior
toma el primero. */ SemPktFlag = semBCreate (SEM_Q_PRIORlTY, SEM_EMPTY); /tarea de prioridad
superior toma primero.*/ SemMKeyl = semBCreate (SEM_Q_FIFO. SEM_EMPTY); / *tomadas en el FIFO */
= semBCreate SemFinishFlag (SEM_Q_FIFO, SEM_EMPTY); / *tomadas en el FIFO */
MSG_Q_ID QStreamlnpulID;
Void char [ ] msgStream; /* Puntero para el bfer de mensaje */
12. /* crear la identidad de la cola de mensajes y pasar los parmetros y las opciones elegidas. Deje que el
nmero mximo de mensajes sea de 256 kB y el mensaje debe ser de I byte cada uno. Un paquete IP tiene un
mximo de 216 bytes. Supongamos que un segmento TCP stream de transmisin tiene un mximo de 256 kB.
Adems, se permiten 64 bytes asignados para los encabezados. Bytes de encabezado agregar en las capas
inferiores (consulte la columna 3 de la tabla 11.5). */ QStreamlnpulID = msgQCreate (maxSizeOutStream,
strSize, MSG_Q_FIFO I MSG_PRI_NORMAL); QPktlnputlD = msgQCreate (maxSizeSocketStream,
strSize, MSG_Q_FIFO I MSG_PRI_NORMAL);
13. /* Los Pasos 1 a 3, como por ejemplo 7,21 para la creacin de una tubera. *1
14. /* crear una canalizacin nombrada como pipeNetStream para incluir los gastos generales y el marco de
mensajes, cada uno si me byte. Los gastos generales significa bytes de encabezado, as como bytes finales. */
Pipestatus estado:
Pipestatus pipeDevCreate = {''/tubo/pipeN'ctSiream". maxSi/epipeNetStream. I);
modo = 0 = 0x0:
15. /* otras declaraciones que son necesarios. I;/

16. /* declarar funciones comunes necesarias en las tareas de red. S7


/* gel para declarar las funciones de 32 bits. De 16 bits y 8 bits de longitud a partir de una secuencia o cadena.
*/
Unsigned int getLength32 (unsigned char | Str) (
/* Los cdigos para encontrar como un entero sin signo de la longitud de una cadena o secuencia de hasta
2'2 bytes * /
Unsigned short getLengthlb (unsigned char f | Str) {
/* Los cdigos para encontrar, como un unsigned short, la longitud de una cadena o secuencia de hasta
2I(| bytes. * /

Bytes sin signo (unsigned char getLength8 [ ] Str) {


.
,ns
/* Los cdigos para encontrar, como un byte sin signo, la longitud de una cadena de hasta 256 bytes. * /

548

Los sistemas integrados

/17. /* declarar cdigos para agregar relleno adicional de menor tamao o cadena o secuencia de mensajes para
llenar os para que iguala el tamao de cadena de tamao de bloque, blkSize. *1
Unsigned char [ ] StrAddPadding (unsigned char [ ] Str, unsigned int blkSize) {

/;
18. /* cdigos ejemplar para encontrar una funcin para gel de suma de comprobacin de 16 bits a partir de
una secuencia de bytes o cadena. *1
Unsigned short checksuml6 (unsigned char [ ] Str) {
I* cdigos para encontrar, como un entero sin signo, la longitud de una secuencia de bytes o cadena* /
/* StrPtr es puntero a la cadena o la secuencia. Para el bucle while, 'I' es un nmero entero de 16 bits. Nmero
de transporta
Generado = numCarry. */
Unsigned short *strPtr esttica, yo numCarry;
Static unsigned int suma = 0.
Unsigned short num = (unsigned short) getLength32 (unsigned char [ ] Str); /* num es nmero de 16 bits para el
nmero total de bytes de la cadena. Somos la fundicin de tipos de imprenta el tipo de datos de longitud a 16
bits */
/* El mtodo de suma de comprobacin de 16 bits es la siguiente: Suma de las palabras de 16 bits y el primer
recuento la lleva, que generan en las sucesivas adiciones. A continuacin, agregue estos lleva a obtener la suma
de comprobacin de 16 bits. Sin embargo, estamos teniendo la secuencia de bytes. As mtodo es como sigue:
*/ strPtr = (unsigned short) Str; / conversin de tipo direccin al valor de 16 bits puntero. */
I = num/2; /* nos permiten dividir el clculo en dos partes porque estamos agregando los bytes en lugar de
palabras de 16 bits para obtener el checksum*/ mientras que (i) - {
Sum += *strPtr ++: /* agregar el byte en la suma y, a continuacin, el puntero al siguiente byte. */ si (i) y
1)suma += *(unsigned char *) strPtr;}; /* suma el extrao byte desde la siguiente direccin. */ mientras
((numCarry = (unsigned short) (suma "16)! = 0) {sunt = (Suma & OxFFFF) + numCarry);} volver ((unsigned
short) suma); / conversin de tipo suma a 16 bits. */
/;
/* Reader para escribir cdigos de suma de comprobacin de 32 bits para la funcin checksum32 por l (o ella).
*/
'* declarar una funcin de comprobacin de redundancia de ciclo */
Unsigned int32 (CRC CRC, unsigned int unsigned char aByte) {I* para encontrar los cdigos de 32 bits bits de
comprobacin de redundancia del ciclo como un entero sin signo para el mensaje dado el bastidor. * /

/;
19. /* en una red, mientras que estamos enviando a los bytes de un protocolo utiliza diferentes tipos de datos,
como unsigned int, unsigned short, unsigned char, etc. Por lo tanto, las definiciones de las siguientes seis
funciones para obtener el byte inferior y superior byte desde un corto de 16 bits, datal6 y para obtener cuatro
bytes, bytel byleO, byte2 y byte3 desde un int de 32 bits, los datos32.j: xsse>;ial. */
Unsigned char LByte datos unsigned short (16) { ... }; unsigned char HByte unsigned short (16 datos)

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

549

Unsigned char byteO (datos unsigned int32) { ... ); unsigned char bytel (unsigned int32) de datos
I - );
Unsigned char byte2 (datos unsigned int32) { ... ); unsigned char byte3 (unsigned int32) de datos
{ , }:

/*------------------------------------------------------------------------------------------------------------------ */
20.

A 27./* Cdigo para otra declaracin medidas especficas para las distintas redes */

/* final de los cdigos para la creacin de tareas, semforos, tubo de cola de mensajes, tareas, y las variables y
todas las declaraciones de funcin necesarios */
28. /* Inicio de cdigos para task_StrCheck*/
Void tarea.StrCheck (SEMJD STAF, SEMJD SemFlagl) {

29.
Mientras que (1) / /* Inicio del bucle while. */
/* cuando la salida de caracteres es generado por la aplicacin, el semforo est dada. */
SemTake (STAF, Rfaga_FOREVER); I* Espere a que el indicador de estado de la
aplicacin. *1
29. /* Los cdigos para la tarea. *
(SemFlagl semGive)(SemMKeyl semGive); /* versin el mutex si cualquiera tomado antes.
*/ taskDelay (10); /* 10 ms de retardo para permitir ejecutar tareas de
menor prioridad. */
I; /* final del bucle while. */
//*_StrCheck Fin de la tarea. */
30. /* Inicio de cdigos para task_OutStream. */
Void
Task_OutStream
(SEM_ID SemFlagl, MSG_Q_ID, applStr
QStreamlnputlD, OutStream,
maxSizeOutStream, blkSize) {
31. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan
una sola vez*/ int numBytes;
32. Mientras (//{/* iniciar un bucle while infinito. Tambin podemos utilizar siempre en lugar de tiempo (1).
*/
34.1 *esperar a cambio de estado SemFlagl SEM_FULL por semGive funcin para comprobar disponibilidad
cadena de tarea */
(SemFlagl semTake, WAIT_FOREVER);
35. /* la clave para no dejar que cualquier otra aplicacin que no sea la tarea poner el mensaje en
la cola puerto descifrar tarea que necesite ejecutar SemMKeylD */

(SemMKeyl semTake, WAIT_FOREVER); I* SemMKeylD no est ahora disponible y la crtica


Regin comienza */

:55;

Los sistemas integrados

36. /* Los cdigos para cifrar applStr si cualquiera o de carcter ilegal o mensaje compruebe si cualquier */

37. /* al final, enviar el byte de entrada a OutStream como mensaje en la cola, QStreamInputID. Consulte
Seccin 9.3.4. para la comprensin de la funcin msgQSend. NO_WAiT si siring es mayor que el tamao de
bloque de 236 bytes. De lo contrario cadena es demasiado corto para merecer el envo en la secuencia sin relleno
con extra os. Llamar a una funcin para agregar bytes de relleno. */
NumBytes = (applStr getLength32);
Si (numBytes < blkSize) (StrAddPadding (applStr, blkSize); numBytes = blkSize);
/* ahora esperar si alguno de los bytes de applStr anteriores no han sido puestas en el zcalo arroyos.
TaskJPPktStream hace eso. Se puestos SemFlag2 en enviar el applStr exitosamente en el arroyo con dos
encabezados de capa de transporte y de internet. */ semTake (SemFlagI, WAIT_FOREVER);
(QStreamInputID msgQSend, applStr, numBytes, N0_WA1T, MSG_PRl_NORMAL);[;
SemMKey semGive (1); I* regin crtica termina aqu. */}
38. /* reanudar la tarea retrasada, Task_StrCheck como mensaje se ha puesto en la cola de mensajes. */
taskDelay (20).
(TaskJStrChecklD laskResunte);
. /* los cdigos restantes para la tarea. */

/;
39. } /* final de los cdigos para task_OutStream. */
40. /* Inicio de cdigos para task_TCPSegment. */
Void Task_TCPSegment (SEM_1D, SEMJD SemTCPFlag SemMKey I. SEMJD SemF!ag2. MSG_Q_ID,
maxSizeOutStream QStreamInputID, OutStream, blkSize, unsigned char [16] txtcpState, unsigned char (161) {
txtcpOpPdFormat
41. /'' Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/ static int numBytes: /* nmero de bytes ledos con xito. Equivale a un error en el tiempo de espera o ID
de la cola de mensajes no identificado. */
Static int timeout = 20: /* dejar despus de 20 reloj de sistemagarrapatas 20 ms:i7 unsigned char 116] txtcpState; unsigned char
[16] txtcpOpPdFormat:
Unsigned char [ ] OptionAndPds (unsigned char [16] txtcpState, unsigned char
[16] txtcpOpPdFormat)', unsigned char [optPdLen] extras;
Unsigned char [ ] Str, unsigned int , unsigned int AckNum SequenNum, unsigned char * TCPHdrLen, unsigned
*TCPHdi'Banderas, unsigned short ventana, unsigned short *TCPChecksum/6, unsigned
short *UrgPtr, unsigned char [optPdLen] extras); esttica unsigned char [ ] de cabecera;
Unsigned char [ ] TCPHeader (unsigned short SourcePort, unsigned short DestnPort, unsigned char [16]
txtcpState, unsigned char [16] txtcpOpPdFormat, unsigned char [ ] Str, unsigned int , unsigned
int AckNum SequenNum, unsigned char * *TCPHdrFlags TCPHdrLen, unsigned, unsigned
short ventana, unsigned short *TCPCiiecksi;!/l16, unsigned short *UrgPtr, unsigned char
[optPdLen] extras;

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

! 551

42. Mientras que (i j / /* Sian tarea bucle infinito. */


/* por lo tanto hasta que headei mutex se inserta en la secuencia, no se libera a
Task_0utStream. */
(SemTCPFlag semTake. WAIT_FOREVER);
(SemMKeyI semTake. WAlT_FOREVER); /* SemMKeylD no est ahora disponible.
Esperar para entrar en la regin crtica*/
43. /* recibe el mensaje enviado por Task_OutStream */
NumBytes = msgQReceive (QStreamInputID, OutStream, maxSizeOutStream, 20); si
el valor de NumBytes (1= error) j
44. /* Cdigo para definir el txtcpState segn el estado de la conexin. */

/* Cdigo para definir el SequenNum segn txtcpState *1

I* Cdigo para definir el AckNum segn txtcpState */

/* Cdigo para definir la ventana segn txtcpState */

/* Cdigo para definir el txtcpOpPdFormat segn txtcpState */

45. /* para encontrar los cdigos enteros como opciones adicionales y relleno para ser colocado en
el cabezal. */ extras = OptionAndPds (txtcpState. txtcpOpPdFormat);
46. /* para recuperar los cdigos de bytes de encabezado TCP */
Cabezal = TCPHeader (SourcePort, DestnPort. txtcpState, txtcpOpPdFormat. OutStream. SequenNum, AckNum.
* TCPHdrLen. *TCPHdrFlaas. ventana. ''TCPChecksum 16. *UrgPtr. extras).
47. /* Enviar encabezado en la parte delantera de la cola fV
(QStreamInputID msgQSend. cabezal. getLength32 (encabezado). NO_WAIT, MSG_PRI_URGENTE):
48. /* Enviar datos a la parte posterior de la cola */
(QStreamInputID msgQSend, applStr. numBytes. N'0_WAIT, MSG_PRI_NORMAL):
); /* final del mensaje cdigos de manipulacin. */
SemMKey semGive (I); /* regin crtica termina aqu.
*/) (SemTCPFlag semGive); /* */ taskDelay
SemTCPFIag. (20);
(TaskjOutStream taskResume);
); / * final del bucle while. */
49. } /* Final de cdigos para task_TCPSegment */
50. /* Inicio de cdigos para TaskJJDPDatagram */
Void Task_llDPDatagram (SEM_ID, SEMJD SemUDPFlag SemMKeyl, SEMJD SemFlag2, MSG_Q_1D,
OutStream, maxSizeOutStream QStreamlnputrD, blkSize) {
51. / ^ Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se
ejecutan una sola vez*/

1552

Los sistemas integrados

Static int numBytes; /* nmero de bytes ledos con xito. Equivale a un error en el tiempo de
espera o si la ID de la cola de mensajes no identificado. */
Static int timeout = 20; /* dejar despus de 20 reloj de sistemagarrapatas 20 ms*/ static unsigned char [8] encabezado;
Unsigned char [8] (unsigned short UDPHeader SourcePort, unsigned
short DestnPort, unsigned char [ ] OutStream);

52. Mientras que (1) / /* Iniciar la tarea bucle infinito. */


/* mutex por lo tanto hasta que el cabezal se inserta en la corriente; no es liberada a Task_OutStream. */
semTake (SemUDPFlag, espere,FOREVER);
(SemMKeyl semTake, WAIT_FOREVER); /* SemMKeylD no est ahora disponible. Esperar para entrar en la
regin crtica*/
53. /* recibe el mensaje enviado por Task_OutStream */
NumBytes = msgQReceive (QStreamlnputlD, OutStream, maxSizeOutStream, 20); if
(numBytes != error) (
54. /* para recuperar los cdigos de bytes de encabezado UDP */
Cabezal - UDPHeader (SourcePort, DestnPort, OutStream); 55. /* Enviar encabezado al frente de la cola */
msgQSend (QStreamlnputlD, Encabezado 8, ningn_WAIT_MSG_PRI URGENTE);
56. /* Enviar datos a la parte posterior de la cola */
(QStreamlnputlD msgQSend, applStr, numBytes, NO ESPERE,_MSG_PRI_NORMAL);
}; /* final del mensaje cdigos de manipulacin. */
/* regin crtica termina aqu. */
57. (SemMKeyl semGive);
(SemUDPFlag semGive)-, /* SemUDPFlag liberar para uso en aplicacin nueva cadena, applStr. */
58. /* dejar la tarea de menor prioridad, TaskJPPktStream iniciar una mayor prioridad
reanudar. */ taskDelay (20);
(TaskjDutStream taskResume);
}; / * final del bucle while. */
59. } /* Final de cdigos para task_UDPDatagram */
60. /* Inicio de cdigos para TaskJPPktStream */
Void TaskJPPktStream (SEMJD SemFlag2, SEMJD SemPktFlag, MSG_QJD maxSizeOutStream QPktlnputlD,
int, int, unsigned short SourceAddr blkSize, unsigned short DestnAddr, unsigned short IPverHdrPrioSer,
unsigned char [16] txipState, unsigned char [16] txipOpPdFormat, unsigned char *timeToLive, unsigned char
*PrctlField) {
61. I* de las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez*/ static int numBytes; /* nmero de bytes ledos con xito. Equivale a un error en el tiempo de espera o si la
ID de la cola de mensajes no identificado. */
Static int timeout = 20; /* dejar despus de 20 reloj de sistemagarrapatas 20 ms*/ static unsigned char [8] encabezado; unsigned
char [ ] Str;
Unsigned char [ ] IPHeaderSelPkt (unsigned short SourceAddr, unsigned
short DestnAddr, unsigned short IPverHdrPrioSer, unsigned short *IPPktLen, char
* IPVerHdrLen, unsigned char * IPHdrLen, unsigned char *IPHdrFlags, unsigned short
*IPHdrFrag, unsigned short *IPChecksuml6, unsigned short UniquelD, unsigned char
*tiempo.ToLive, unsigned char

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1 ! 553

*PrctlField, unsigned char [ | Str. unsigned char [ j OutStream, char [optPdLen] IPextras, unsigned char
[16] txipState, unsigned char [16] txipOpPdFormat);
62. Mientras que (i) / /* Iniciar la tarea bucle infinito. */
/* mutex por lo tanto hasta que el cabezal se inserta en la corriente; no es liberada a
Task_OutStream. */
(SemMKeyl semTake, WA1T_F0REVER); /* SemMKeylD no est ahora disponible. Esperar para entrar en la
regin crtica*/
63. /* recibe el mensaje enviado por Task_OutStream */
NumBytes = msgQReceive (QStreamlnputlD, OutStream, maxSizeOutStream, 20); if
(numBytes != error) {
64. /* para recuperar los cdigos de bytes de encabezado de paquete IP */
Cabezal = IPHeaderSeIPkt (DestnAddr IPverHdrPrioSer SourceAddr,,, *IPPktLen, *, * IPHdrLen
IPVerHdrLen, *lPHdrFlags, *IPHdrFrag, *IPChecksumI6, UniquelD, *timeToLive, *PrctIField, Str,
OutStream, IPextras, txipState, txipOpPdFormat)65. /* Enviar encabezado en la parte delantera de la cola *1
(QPktInputID msgQSend, encabezado * IPHdrLen, NO ESPERE,_MSG_PRI_URGENTE);};
66. /* Enviar datos a la parte posterior de la
cola */ numBytes = *IPPktLen - * IPHdrLen;
(QPktInputID msgQSend. Str, numBytes, NO ESPERE,_MSG_PRI_NORMAL);};
/* Ms enviar encabezado y Str bytes en la cola si ms los paquetes IP son para ser enviados */

); /* final del mensaje cdigos de manipulacin. */


/* seccin crtica termina aqu. */)
67. (SemMKeyl semGive);
(SemPktFlag semGive): I* SemPktFkig versin para su uso en tareas de controlador de red. *1
68. /* dejar la tarea de menor prioridad, TaskJPPktStream iniciar una mayor prioridad
reanudar. */ taskDelay (20);
(TaskJJDPDatagramlD
taskResume): taskResume
(Task_TCPSegmentID);
); / * final del bucle while. */
69. } I* Final de cdigos para TaskJPPktStream. */
70. /* Inicio de cdigos para task_NetworkDrv. */
Void
tarea
J'JetworkDrv
(SEMJD SemMKeyl, SEMJD SemPktFlag, SEMJD SemFinishFlag, SEMJD SemFlag2, MSG_QJD
QPktInputID socketStream, unsigned char [ ] blkSize pipeNetStream, int, int , int maxSizepipeNetStream
maxSizeSocketStream, unsigned char [ ] Encabezado de trama, unsigned char [ ] trailBytes) {
11. I* declarar el tipo de datos para especificar los encabezados. Deje que la longitud del cabezal del
bastidor sea longitud-, el tipo de controlador de red ser netDrvType; y desplazamiento del fragmento en
el arroyo , que frameOffset se especifica el ndice en la matriz de bytes a partir de la cual comienza una
trama en caso de que la corriente es enviada en fragmentos. */ unsigned char [ ] marco, encabezado de
trama, trailBytes, Fragment, trailBytes', unsigned short fragOffset;

*FRlength unsigned short, *, * endLen HdrLen, *FrameHdrFlags, *FrameHdrFragOffse(


*PrctlField;

Los sistemas integrados

*FrameCRC unsigned int32.


Unsigned char l [ Str, unsigned char [ | SocketSiream. unsigned char [
| FRextras, unsigned char [I6| txFRState, unsigned char
(161 txFROpPdFormat, unsigned char [12] netDrvType
72. /* Deciare Funcin del controlador de red. *1
Void NetHdrFrTr (unsigned char [ | Trama, unsigned char [ ] Encabezado de trama, unsigned char [
1 trailBytes, unsigned shortfragOffset, unsigned char (] fragmento, unsigned char [ ] trailBytes. unsigned
short *FRlength, unsigned short * HdrLen, unsigned short * endben, unsigned short *FrameHdrFlags, unsigned
short *FrameHdrFragOffset unsigned short ::FrameCRC32, unsigned short *PrctlField, unsigned char ( 1 Str, unsigned
char [ ) SocketStream, unsigned char [ ] FRextras, unsigned char [16] txFRState, unsigned char [16
] txFROpPdFormat, unsigned char [12] netDrvType)13. /* nmero de bytes enteros para leer correctamente, el tamao del mensaje y dispositivo de archivo,
respectivamente. */ int numBytes, IBytes, fd;
74. /* Un puntero netDrvConfig permiten definir un puntero a un archivo de configuracin para un
controlador de red. */ int fd; I* Definir un entero para un dispositivo de archivo. */
Fd = abierto (netDrvConfig.txt, 0_RDWR, 0); I*, consulte el paso 5 Ejemplo 8.26. *1
75. /* Cdigo de lectura netDrvType, protocolo para el enlace (SLIP o PPP), formato de la capa de enlace de
datos (digamos) Ethernet, IP de host, puerto, Baudrate, especificaciones de tarjeta, etc. Utilice IBytes y funcin,
lea lo siguiente. */ IBytes =12: /* Deje el primer mensaje bytes ledos = 12*/
NumBytes = Lectura (fd, Str, IBytes);

Cerrar (FD):
75. /' abrir el tubo para el flujo de red. Consulte el paso 5 Ejemplo 8.26. */ fd = abierto (-'IpipelpipeNetStream"
0_RDWR. 0);

76. Mientras que (I) (:


/* en desbloquear SocketStream tarea lee y escribe el bastidor bastidor en un tubo, pipeNetStream. El tubo almacena y transmite los bytes en el encabezado de la trama.
Encabezado de trama. y SocketStream fragmento de la trama en el caso de frame es de menor tamao que la SocketStream y al final bytes finales, trailBytes. Estos ltimos son
generalmente por error o en el marco de funciones de control terminal (final) funciones. Deje la tarea dar el fotograma uno tras otro a un tubo identificado por pipeNetStream.
Esto

permite

la

capa

siguiente

tarea

desbloquear

outStream

iniciar

la

formacin

de

paquetes

cuando

el

RTOS

listas.

-1

semTake

WA1T_F0REVER); semTake (SemMKeyl, WAIT_FOREVER);


77. /* recibe el mensaje enviado por TaskJPPktStream */
NumBytes i (msgQReceive SocketStream maxSizeOutStream QStreamInputID,,, 20); if (numBytes != error) (
78. /* para recuperar los cdigos de bytes de trama */
[NetHdrFrTr bastidor, encabezado de trama, trailBytes, fragOffset, Fragment, trailBytes. '
FRIength, * HdrLen, *endLen, *FrameHdrFlags, *FrameHdrFragOffset, *FrameCRC32 *PrctlField Str.
SocketStream FRextras,,, ,, netDrvType txFRState txFROpPdFormat)/* Escribir un mensaje, info de IBytes. */
Unsigned char [ info ]; /* que el mensaje sea una cadena de caracteres. */ int IBytes;
IBytes =12;
(SemPktFlag,

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

555

Escritura (fd. bastidor, *FRIength);


79. /* ms escribir en el tubo si ms marcos para ser enviados */

(SemMKeyl semGive);
(SemFinishFlagy semGive, /* despus del prximo semforo para esperar colmillo en el applieation
capa. *1 semGive (SemFlag2); /* despus del semforo para tareas de espera para enviar un flujo de
salida. */ taskResume (TaskJPPktStrecimID); /* reanudar la tarea de mayor prioridad retras
anteriormente. */
); /* final del bucle While */
80. ) /* Final de cdigos para task_NetworkDrv */
/* Inicio de cdigos para task_NetworkDrv. *1
% Jit :\: * .* * * *i]i * :"s * :|s s}8 sit!Ji * Jj: ft # s?i * * * * Jjs Ji: sh i>. * * * # sjt >(:t[: * * * :] * * :" % % % * x *-f * * * * * * * * * * * * * * *J

Un archivo prcltHandlers.c tiene los cdigos para UDP, TCR y los protocolos de red IP para incluir
encabezados y manipulacin de las funciones, la seleccin de los fragmentos de bytes cuando se forman los
paquetes IP y bytes de trama en la formacin de los marcos. Los cdigos estn diseados como sigue:
1. /* declarar una funcin para devolver una cadena de encabezado UDP. Dutat>rainLen significa longitud
del datagrama UDP, que transmite a la siguiente capa. Sir significa la secuencia o cadena de la capa de
aplicacin para ser enviados con el protocolo UDP. *1
Unsigned char [8 J UDPHeader (unsigned short Sourer Puerto, unsigned short UesinPuri, unsigned char |
J StrU
2. /* Los cdigos para devolver la cadena de encabezado UDP. Recuerde que el protocolo UDP transmite los
enteros con big endian. Consulte el apartado (I) en las instrucciones de un diseador de hardware en la seccin
2.1. Big endian significa que los bytes ms significativos transmitir en primer lugar. * /
Unsigned char [8| UDPHStr:
Unsigned short DatagramLen = getLengthl6 {pecado + 8; /* Aadir cabecera de 8 bytes de longitud. :7
unsigned short UDPChecksitmKi
checksum = 16 {Sir):
UDPHStr |0J = HByte (Puerto de origen): 111 = LByte UDPHStr tSource Port):
|2| UDPHStr = (HByte UDPHStr DesmPon): (3) = (DesinPort LByte):
UDPHStr |4| = HByte (DatagramLen): UDPHStr [5| =LByte (DatagramLen):
[6] UDPHStr = HByte (UDPCheckswn/6): UDPHStr |7| =
LByte (UDPClmksinul6): retorno (UDPHStr)
):
/'--------------------------------------------------------------------------------------------------------------------------- 7
3. /* declaraciones y cdigos para la funcin. TCPHeadcr para devolver una cadena de encabezado
TCP. Sir significa que el flujo de la capa de aplicacin en un nodo, nodeI final para ser enviado con protocolo
TCP en el otro extremo. El nodo2. '7 /* definir la posicin de byte (ndice) del presente OutStream bytes desde
la aplicacin. Valor inicial = 0*/ unsigned int SequenNum = 0:
/* definir el nmero total de bytes que ya haba recibido en un flujo de entrada desde el nodo2 a esta nodel.
Corriente de entrada es el que fue enviado como pilas TCP y recibidos en el nodo/ desde el receptor nodel. Esto
es dejar que un outstream transmitir simultneamente al otro extremo un acuse de recibo, junto con una nueva
secuencia de bytes. OutStream y sincronizar el flujo de entrada y no se controla el flujo de bytes entre los dos
extremos, el nodo/ y nodo2. Valor inicial = 0. */ unsigned int AckNurn =0.
/* Declarar 4 bits y 4 bits reservados, sin usar Tor expansin futura. Los encabezados TCP varan entre 5 a 15
enteros sin signo de 32 bits cada uno. */

556;

Los sistemas integrados

Unsigned char *TCPHdrLen:


/* Cadena de 16 caracteres que se permiten txtcpState especifica el estado de la transmisin del segmento TCP
actual y su accin requerida para el control de la transmisin. Una accin deseada. Se puede establecer una
conexin, de terminacin o de gestin o de control de flujo. Consulte protocolo TCP en cualquier texto estndar
para las definiciones. *1
Unsigned char fl6J txtcpState;
! declarar TCPHdrFlags de 6 bits y 2 bits para banderas inutilizados y reservados para futuras modificaciones
en el protocolo. Bit 0 es FIN, bit I es SYN, el bit 2 es el bit 3 RST, es Push, el bit 4 es el bit 5 y ACK es URG.
*/ unsigned char *TCPHdrFlags\
/* deje que otra cadena de 16 caracteres txtcpOpPdFormat especificar formato, que da el nmero y significado
id" agrega opcionalmente enteros acolchada y enteros. Por ejemplo, un entero opcional puede especificar una
ventana alternativa de 32 bits en lugar de 16 en el campo de ventana de 16 bits en el cuarto entero en el
encabezado TCP. Otra opcin entero puede especificar el protocolo TCP maxSizeOutStream. */ unsigned char
[16] txtcpOpPdFormat;
4. /* Inicio de los cdigos de devolucin de un corto. especifica el encabezado TCP de 4 bits La longitud del
campo, as como seis campos de indicador. Estas son segn el estado de la transmisin y la transmisin TCP y
opciones de formato de relleno, y 'xtcpOpPdFormal txtcpState, respectivamente */
Unsigned short TCPHdlenFlagBits (unsigned char 116] txtcpState, unsigned char [16] , &TCPHdrFlags
txtcpOpPdFormat. &TCPHdrLen) l
Valor booleano bit 15, 14 bits, 13 bits, 12 bits, 11 bits, 10 bits, 9 bits, 8 bits;
5. /s cdigos que tienen cuatro bits, 15 bits, 14 bits, 13 bits, 12 bits en el entero devuelto segn el tamao del
encabezado TCP, que especifica el nmero total de enteros sin signo en el encabezado TCP. El total es 5, adems
de los enteros sin signo para las opciones y el relleno. Estas son segn txtcpState y txtcpOpPdFormat utilizada
por segmento TCP ihat est transmitiendo. Los bits, bit II, 10 bits, el bit 9. El bit 8 arc reservados. */
s Bus 0 a 5 son como por Six Flags. Los bits 6 a 11 estn reservados. Los bits 0 a 7 son de carcter puntero
TCPHdrFlags unsigned. */
"TCPHdrFlags = *TCPFIags (txtcpState): /* utilizando la funcin encontrar los bits 0 a 7, */

B. I* Cdigo para encontrar TCPHdrLen de 15 bits, 14 bits, 13 bits. El bit 12. */

J: F Final de los cdigos para devolver un entero que especifica la longitud del encabezado
TCP y los campos de indicador. */
7. /* declarar una funcin TCPFIags volver TCPHdrFlags segn txtcpState. Inicio de los cdigos
para encontrar el byte para representar los campos de indicador de TCP. */ unsigned
char *TCPFlags (unsigned char txtcpState) /
Aleta de tipo Boolean, SYN, RST, empujar, ACK, URG, 6 bits, 7 bits;
/* cdigos para crear segn txtcpState en qu segmento TCP est transmitiendo. */

]\ /* final de los cdigos para devolver el puntero de un byte para el campo flags TCP. */
8. /* declarar otros campos del encabezado TCP. *1
Ventana unsigned short, /* nodel especifica por la ventana como un anuncio al nodo2 cuntos ms bytes
en nodel puede capturarse en su bfer ms all de las que ya est almacenado y reconocido por nodel a

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

|557

Noik'2. Buffering es un estado intermedio en los bytes que an tienen que ser enviados a una capa de
aplicacin superior por una pila TCP de la entidad receptora. El nodo 2 si encuentra window = 0 o un nmero
demasiado pequeo, entonces no debe enviar cualquier cosa a este nodel. Este campo de 16 bits es entonces
una solicitud al otro nodo final no inundar los bytes de datos en la red innecesariamente. Es entonces
indirectamente una solicitud a esperar. *1 *unsigned short TCPChecksuml6\ I* definir la suma de
comprobacin de 16 bits. */
/* Definir un puntero urgente de 16 bits. */ unsigned short urgentes;
/ *Un valor de 16 bits que indica una urgencia al Nodo2 cuando el indicador URG est establecido. Indica el
primer byte del inicio de los datos urgentes de nodel. Es una solicitud al nodo2 que debera considerar el
puntiagudo bytes primero en lugar de asistir a los bytes en el buffer y los bytes despus de este encabezado de
segmento. Los datos almacenados en el buffer y comienzo datos pueden ser ignoradas y bytes a partir UrgPtr son
solicitados para ser dada la urgencia. Dado o no depende en el nodo2 programa la tarea al segmento TCP que
enva los bytes a su capa de aplicacin. */ unsigned short *urgPtr = Urgente;
*TCPURGENT unsigned short (unsigned char txtcpState, &TCPHdrFlags, *urgPtr) [
URG Boolean;
URG = get distintivo (&TCPHdrFlags) (
/ * Cdigos para extraer el bit URG. Es el bit 5 del byte de la direccin de TCPHdrFlags.
Yo
/* .Si URG es true y, a continuacin, defina el campo urgente y devolver un corto de 16 bits. Cdigos para
devolver un corto de 16 bits como puntero urgente segn txtcpState en qu segmento TCP est transmitiendo.
*/ si (URG) (
. I:
";
Unsigned char f ] extras: unsigned char OptPdLen; extras = OptionAndPds (txtcpState. txtcpOpPdFormat.):
GetLength OptPdLen =8 (extras):
*TCPHdrLen = (optPdLen + 20) /4 ;
Unsigned char [ ] OptionAndPds (unsigned char [16] txtcpState. unsigned char [16] txtcpOpPdFormat) )
9. /* Los cdigos para devolver una matriz de bytes para los enteros de 32 bits para las opciones y el relleno.
Estas son como por el Estado y por lo tanto los parmetros de longitud de encabezado TCP. */ 10

10. /* Los cdigos para devolver la cadena de encabezado TCP. Recuerde que el protocolo
TCP transmite los enteros con big endian. Esto significa que el byte ms significativo debe
transmitir en primer lugar. * /
/* Nota: En lugar de utilizar muchos argumentos, un typedef podran haber sido
utilizados para la estructura de datos del cabezal. Sin embargo, esto consumir
ms memoria. */
Unsigned char [ ] TCPHeader (unsigned short SourcePoii, unsigned short DestnPort, unsigned char [16]
txtcpState, unsigned char [ I,(} txtrxrOpPdFormat, unsigned char [ ] Str, unsigned int , unsigned int
AckNum SequenNum, unsigned char * *TCPHdrFlags TCPHdrLen, unsigned, unsigned short ventana,
unsigned short *TCPChecksum16, unsigned short *UrgPtr, unsigned char [optPdLen] extras) {

558

Los sistemas integrados

Ini i: unsigned char [ | TCPHStr; unsigned short lenflag; unsigned char optPdLen:
Unsigned short TCPCItecksitnil6 = 16 (checksum pecado: unsigned short urg: unsigned char [ | extras;
*urg - "TCPURGENT (unsigned char txtcpState. &TCPHdrFlags. "urgPtrt
TCPHStr f()J = MByte (SourcePort): TCPMStr [ 11 =/rcPort LByte (SOW): TCPHStr |2| = (HByte TCPHStr
DesInPorl); 131 = LBy le (TCPHStr DestnPort); [4] = ByteO (SequenNum); TCPHStr [51 = Byte I (TCPHStr
SequenNum); (6| = Byte2 (SequenNum); TCPHStr [7| = Byte3 (SequenNum):
181 = ByteO TCPHStr (AckNum): TCPHStr [91 = Byte (I): TCPHStr AckNwn [10] = Byte2 (.AckNum);
TCPHStr |ll] = Byte? (AckNum):
*lenflag
=
*
TCPHdlenFlagBits
(unsigned
char
[I6| txtcpState, unsigned
char
[I6| txtcpOpPdFormat &TCPHdrF!AGS. &TCPHdrLen);
[121 = HByte TCPHStr (TCPHStr lenflag); [13] = LByte (Ienflag);
(141 = HByte TCPHStr (ventana); TCPHStr [15] = Byte3 (ventana);
116| = HByte TCPHStr (16); TCPHStr TCPCIiecksum [17] = LByte (TCPChecksum/6):
TCPHStr [18] = *Urg++): TCPHStr [19] = '"(unsigned char *) urg):
Extras = OptionAndPds (unsigned char (16] txtcpState, unsigned char [16]); optPdLen
txtcpOpPdFormat = getLenglh8 ( extras).
"TCPHdrLen = (optPdLen + 20) /4:
Mientras (optPdLen > = ++i) [TCPHStr [i| = extras [i - 201;);/* llenar las opciones y bytes de relleno. */
unsigned short getLength TCPSegLen = 16 (SIR) + (optPdLen + 20); /* agregar bytes de longitud del cabezal.
*/
Retorno (TCPHStr):
]

/* ------------------------------------------------------------------------------------------------------------------- /*

/* declaraciones y cdigos para la funcin. IPHeaderSelPkt para devolver una cadena de encabezado IP y los
paquetes de datos en soekelStream desde OutStream. Sir significa que el flujo de la capa de control de la
transmisin en un nodo, el nodo I, final para ser enviado con el cabezal segn el protocolo IP para el otro
extremo. El nodo2. a travs del controlador de red, conmutadores, puentes y enrutadores. */
11. /* Los primeros nos permiten declarar IPVerHdrLen de 4 bits (7 bits, 6 bits. bit 5 y el bit 4) para el nmero
de versin. Actualmente, la versin 4 de IP se utiliza principalmente. As, estos bits son de 0100. Otro de cuatro
bits (bit 3. El bit 2, bit 1 y el bit 0) son los nmeros de enteros sin signo en la cabecera. Longitud del cabezal
incluye 5 estndar y enteros sin signo de 0 a 10 nmeros enteros para opciones y relleno. Los ltimos nmeros
enteros se utilizan para controlar la ruta y el flujo a travs de los routers. Algunos de estos nmeros enteros
tambin puede ser usado para agregar seguridad a la red. Las opciones pueden ser la grabacin de la ruta del
paquete, el sello de cal en el paquete, el router origen direccin IP que se utilizar antes de enrutamiento a travs
de una fuente comn, cualquier opcin de origen flexible, la opcin de seguridad, etc. se pueden encontrar
detalles en la obra clsica de D. E. Comer y D. Stevens. El internetworking con TCP/IP Vol. I. Principios,
protocolos y arquitectura frente Prentice Hall. NJ. 1995. Normalmente, las opciones y el relleno no estn
presentes. A continuacin, los cuatro bits inferiores son 0101. */
Unsigned char * IPVerHdrLen:
/* Longitud de encabezado como por cuatro bits superiores en
IPVerHdrLen. ::V unsigned char IPHdrLen:
12. /* asumamos que las opciones y el relleno se aplican segn el formato especificado por una cadena de 16
caracteres, txipOpPuFormat. Representa el nmero de significados y, opcionalmente, agrega nmeros enteros y
enteros acolchada. */
Unsigned char [16] txipOpPdFormat;
13. /* deje una cadena de 16 caracteres txipState especificar el protocolo del segmento IP actual y su accin

Estudios de casos y ejemplos de diseo ot programa de modelado y programacin con RTOS-1

1559 j

Tor requiere la transmisin controlada. Puede ser el protocolo ICMP. IGMP. OSPF. EGP y BGP. Consulte este
libro del autor en Internet y tecnologas Web de Tata McGraw-Hill para definiciones y cualquier texto estndar
para los detalles de estos protocolos. */ unsigned char [I6| txipState-,
14. /* Inicio de los cdigos para devolver un cortocircuito. especifica el campo Versin de 4 bits y 4 bits en el
campo de longitud del encabezado IP * IPVerHdrLen seguido de 3-bit que especifica la prioridad de los paquetes
IP en la red y 5 bits para el tipo de servicio. Deje que los ltimos 8 bits en la direccin apuntada por IPPrioServ.
Los bits de Precedencia. "000" significa precedencia habitual en Internet. ' l o s m a l o s ' significa mayor
prioridad, el necesario para el streaming de audio y vdeo en el servicio net bits para la calidad del servicio que
se proporciona en trminos de seguridad, rapidez, demorado o costo a ser acusado frente al remitente. El nmero
entero de 16 bits devueltos por la funcin. IPVerHdrPrioServBits es as como por la versin y el estado de
transmisin de paquetes IP y transmisin IP y opciones de formato de relleno, y
txipState txipOpPdFormat, respectivamente. */
Unsigned char * IPPrioServ;
Unsigned short IPVerHdrPrioServBits (unsigned char [I6| txipState, unsigned char
116| txipOpPdFormat. &IPPrioServ, &IPHdrLen) /
15. /* entero devuelto bit 15 bit. 14. 13 bits. El bit 12 bit, 10 bit II., bit 9 y el bit 8 son como por 8 bits a
IPHdrLen. Tres bits de precedencia, 7 bits, 6 bits y 5 bits en el entero devuelto son segn la precedencia de IP y
el servicio de bits de 4 bit, bit 3 bit 2. bit I y 0 bits son como por QOS (calidad de servicio especificado
en txipState. */ Boolean 15 bits, 14 bits, 13 bits. de 12 bits, 11 bits, 10 bits, 9 bits, 8 bits. bit 7, bit 6. bit5, bit 4,
bit 3. El bit 2. bit I, el bit 0.
/* Los cdigos para buscar caracteres en IPPrioServ desde txipState. V
16. /* Cdigo para encontrar IPHdrLen desde txipOpPdFormat */

I: /i: final de los cdigos para devolver el entero que specilies versin IP. Longitud del encabezado,
precedencia y servicio. */
17. /* dos enteros de 16 bits de longitud corta paeket y paquetes de identificacin por el receptor. */ unsigned
short IPPktLen: /:i' para especificar la longitud del paquete IP S7
Unsigned short UniquelD: F- Especificar la UniquelD del presente paquete IP Esto es poner el router o el
transmisor, el nodo I. identificacin exclusiva para la tiie enrutado de paquetes. Esto ayudar a que el receptor
para reensamblar los fragmentos de este paquete IP al nodo2 para la transmisin hacia arriba para el transporte
y la capa de aplicacin. Nota. Un fragmento puede perderse en la red entre los routers debido a algn error en
la detonacin. Esto le ayudar a recuperar los fragmentos perdidos. */
18/* una secuencia desde OutStream puede ser mayor que 6536 bytes menos los bytes de encabezado del
paquete IP. Por lo tanto, es a ser fragmentados. La fragmentacin tambin es requerido cuando el controlador
de red y otras dependencias entre no permitir incluso un paquete IP de 65536 bytes y necesita menor Marcos.
Funcin. Cdigos IPFIagFragBits es para devolver la bandera 3 bits y 13 bits de desplazamiento de
fragmentos. Desplazamiento especifica el nmero de fragmentos. Adems de precedencia y
QOS, txipState especifica qu pabelln 3 bits y 13 bits del campo de fragmento debe ser definida por esta
funcin. */ unsigned char *IPHdrFIags; unsigned short "IPHarFrag;
I* Funcin para encontrar una secuencia de bytes realmente ha puesto con el paquete. */
Void selectPktData (unsigned char [ ] Str, unsigned char OutStream, unsigned char [16] txipState, unsigned
char [16] txipOpPdFormat, unsigned char [ ] Str) (

1560

Los sistemas integrados

1.
Unsigned short IPFIagFragBits (unsigned char [16] txipState, unsigned char [16] tx ip Ptl Op forma t,
&IPHdrFlags, &IPHdrFrag). char [ ] OutStream) (
15 bit booleano. 14 bits, 13 bits, 12 bits, 11 bits, 10 bits, 9 bits, 8 bits, 7 bits, 6 bits, 5 bits, 4 bits, 3 bits. bit 2, 1
bits, 0 bits;
19.
/* cdigos que tienen tres bits, 15 bits, 14 bits y 13 bits en el entero devuelto por las banderas. Un
indicador es mfb. Mfb = 0 significa que el receptor debe esperar como hay ms fragmentos para seguir este
fragmento, mfb = 0 para iast fragmento. Se refiere al tamao del encabezado IP, que especifica el nmero total
de enteros sin signo en el encabezado IP. El total es 5, adems de los enteros sin signo para las opciones y el
relleno. Estas son segn txipState y txipOpPdFormat utilizada por segmento IP que est transmitiendo. Los bits,
11 bits, 10 bits, 9 bits, 8 bits estn reservados. */ I* Bits, 12 bits a 0 bits son como desplazamiento de fragmentos
de bits y bytes transmitidos ya por de controlador de red en el nodo tarea I. */
/* Cdigo para encontrar el carcter IPHdrFlags desde 15 bits, 14 bits y 13 bits. Los bits son como por txipState.
20. /* para encontrar el cdigo de 16 bits IPHdrFrag entero corto de 13 bits a 0 bits. Estos bits segn la
especificacin, OutStreamSize txipState y los bits ya transmitidos por el controlador de red. I significa OutSireain
IPHdrFrag = byte (8) numeracin" est siendo enviado con este paquete. */

/; /* final de los cdigos para devolver un entero que especifica el encabezado IP banderas y fragmento offset
Bits. */
21. /* declarar otro encabezado, campo de suma de comprobacin de 16 bits, 8 bits en el tiempo para vivir y 8
bits. Protocolo presentado, Nodo origen I direccin IP de destino y el nodo 2 direccin IP. */
Unsigned short *lPChecksuml6;
Unsigned char *timeToLive\ /* Nota: se reduce en cada enrutador en el camino hacia el Nodo2. *1
Unsigned char *PrctlFieId; / Nota: PrctlField = 17 para UDP, = 6 para TCP, = I de ICMP.
Unsigned short SourcelPAddr:
Unsigned short DestnIPAddr;
Unsigned char [ ] extras", unsigned char OptPdLen;
= (txipState IPextras OptionAndPds, txipOpPdFormat.);
optPdLen = getLength8 (IPextras);
optPdLen JPHdrLen = ( 14 + 20);
Unsigned char [ ] IPOptionAndPds (unsigned char [16] txipState, unsigned char
[16] txipOpPdFormat) t
22. /* Los cdigos para devolver una matriz de bytes para los enteros de 32 bits para las opciones y el relleno.
Estas son como por el Estado y por lo tanto, la longitud del encabezado IP Parmetros.

I':"- ,(un
23. /* Los cdigos para devolver la cadena de encabezado IP. Recuerde que el protocolo IP transmite los enteros
con big endian. * /
/* Nota: En lugar de utilizar muchos argumentos, un typedef podran haber sido utilizados para la estructura de
datos del cabezal. Sin embargo, esto consumir ms memoria. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin

Unsigned char [ | IPHeaderSeIPkt (unsigned short SourceAddr, unsigned


Cortocircuito IPverHdrPrioSer, unsigned short ^IPPktLen, IPVerHdrLen, unsigned
char *
Char *IPHdrFlags, unsigned short *IPHdrFrag, unsigned short *IPChecksuml6,
Unsigned char *timeToLive, unsigned char *PrctlFieid, unsigned char Str, unsi [ ]]
Char [optPdLen] IPextras. unsigned char [16] txipState, unsigned char [16] txipQpMi\
Int i; unsigned char [ ] IPHStr; unsigned short lenflag; unsigned char optPdLen;
24. /* Cdigo para encontrar una secuencia de bytes realmente ha puesto con el paquete. *1
Nuevo = IPVerHdrPrioServBits (txipState, txipOpPdFonnat, &lPPrioServ, &IPHdrLen);
IPHStr [0] = HByte (nuevo);
IPHStr [ I [ = LByte (nuevo);
25. /* Los cdigos para estimar la asignacin UniquelD al paquete. * /
[4] = IPHStr HByte (UniquelD);
[5] IPHStr = LByte (UniquelD);
26. /* para la asignacin de cdigos de tiempo para vivir y campo de protocolo de txipState. *1

IPHStr [8] = *timeToLive: IPHStr [9] = *PrctlField;


IPHStr [12] = byteO (SourceAddr); IPHStr [ 13] = bytel (SourceAddr);
IPHStr [14] = byte2 (IPHStr SourceAddr); [15] = byte3 (SourceAddr);
IPHStr [16] = (byteO IPHStr DestnAddr): [17] = = (DestnAddr bytel);
IPHStr [18] = = (byteO IPHStr DestnAddr); [19] = = (DestnAddr byteO);
= (txipState IPextras IPOptionAndPds, txipOpPdFormat); /* Buscar opciones y relleno. */ optPdLen =
getLength8 (IPextras);
"HPHdrLen = (optPdLen + 20) /4.
Mientras (optPdLen > = ++i) [IPHStr IPextras [i] = [i -20];); /* llenar las opciones y bytes de relleno.
*1
27. /* Los cdigos para seleccionar la secuencia de toma de datos a enviar y, a continuacin, estimar
IPPktLen / selectPktData (Str. OutStream. TxipState. txipOpPdFormat, IPextras); unsigned short
*IPPktLen = getLengthlb (Str) + (optPdLen + 20); I* agregar bytes de longitud del cabezal. */
[2] = IPHStr HByte (IPHStr IPPktLen); [3] = LByte (IPPktLen);
Nuevo = IPFIagFragBits (txipState. TxipOpPdFormat, &IPHdrFlags, &lPHdrFrag, Str)
[6] IPHStr = HByte (nuevo); IPHStr [7] = LByte (nuevo);
Unsigned short lPChecksuml6 = (IPHStr checksumI6); /* Encontrar la suma de comprobacin del
encabezado IP slo una parte. */ IPHStr [10] = (HByte\ IPHStr lPChecksuml6) [I] = LByte
(lPChecksuml6); return (IPHStr);
];

/* ------------------------------------------------------------------------------- ------ - --- ------------------- */


-

I* declaraciones y cdigos para la funcin, NetHdrFrTr para devolver una cadena de encabezado de
trama, encabezado de trama y el fragmento de datos en frame [ ] matriz desde SocketStream. Str significa el
stream desde intemefbayer en un nodo, el nodo/ final para ser enviado con el cabezal segn el protocolo de
enlace de datos y protocolo de tarjeta al otro extremo, el nodo2, a travs de la caera con secuencias de bytes
desde el controlador de la red. *1

Los sistemas integrados

Void NetHdrFrTr (unsigned char | Trama, unsigned char ( | Encabezado de trama. unsigned char [
| trailBytes. Unsigned short fragOffset, unsigned char ( ] fragmento. unsigned char f | trailBytes. unsigned
short *FRIengtlt. Unsigned
short
* HdrLen, unsigned
short
* endLen, unsigned
short *FrameHdrFUtgs. unsigned short *FrameHdrFragOffset unsigned short *FrameCRC32. unsigned short
*PrctlField, unsigned char [ | Str. unsigned char f 1 SocketStrcam, unsigned char | FRextras, unsigned char f
161 txFRState, unsigned char [ 16 ) txFROpPdFomuit, unsigned char ( I 2 | n e t D r v T y p e ) {
Unsigned char [ \ bastidor, encabezado de trama. trailBytes. fragmento, trailBytes: unsigned short fragOffset:
unsigned short *FRlengtli, *. * endLen HdrLen. *FrameHdrFlags. *FranteHdrFragOffset *FrameCRC32;
Unsigned int32 (CRC CRC. unsigned int unsigned char aByte);
/* Los cdigos segn netDrvType. Transmisin de estado del marco txFRState, transmitiendo el
bastidor y la opcin formato de relleno, txFROpPdForniat crear una matriz de caracteres para
el encabezado de trama, del fragmento y trailBytes. Cada uno es de longitud, fraglen endLen
HdrLen,.. FRlength.
Otros campos calculados son entero corto para fragOJfset y entero para el bastidor
Bits, FRCRC
CRC32, etc.
*/
Y
o
/****************************$*********"*****:

Resumen
El siguiente es ;i resumen de lo que hemos aprendido en este captulo.
Tres estudios de caso fueron explicadas. Estos son de chocolate-vcnding mquina automtica, cmara digital
y sistemas de pila TCP/ IP.
Enfoque de la ingeniera de software es el primer estudio de los requisitos, especificaciones, y finalmente el
modelado de UML.
Arquitectura de hardware y software de dibujo simplifica el diseo de arquitectura de aplicacin.
El uso de M y Vx RTOSes UCOS obras y uso del PIPPQ para sincronizacin de tareas y procesamiento
simultneo.
Sistema ACVM es modelada por tres diagramas de clase de las clases abstractas ACVM_Dcvices.
ACVM_Outpu! Puertos y ACVM_Tareas.
MUCOS RTOS funciones han sido utilizadas en un sistema incorporado para una mquina expendedora
automtica de chocolate. Despus de la inicializacin de la primera tarea, siete tareas han demostrado para
controlar las diversas funciones de la mquina: (a) El usuario System monedas son de tres denominaciones.
Rs I, 2 y 5 b) Coleccin de monedas en un pecho (c) de reembolso en caso de cambio corto (D) Exceso de
restitucin de un canal en el caso de exceso del importe insertado en la mquina (c) Entregar el chocolate
a travs de un puerto (f) Mostrar mensajes segn el estado de la mquina (g) mostrando la hora y dale.
Muestra cmo el semforo como mucos puede utilizarse como marcador de evento. Tambin muestra cmo
utilizar los buzones MUCOS y el sistema RTC.
Tareas de la cmara son modelados por cuatro diagramas de clase se dividen Picture_FileCreation.
Picture_FileDisplay. Picture_Controller.FileTransfer y tareas. Nos enteramos de que adems de
microcontrolador y el fp son necesarios varios ASIPs;'Performance Suite.(Mance. Un microcontrolador
ejecuta el controlador_Tareas. Las tareas del controlador son las siguientes: (i) Task_LightLevel control
(ii) Task_flash (ii) la inicializacin de tareas, tareas de disparo (iii), (iv) inicia Picture_FileCreation, tareas
que se ejecutan en un nico propsito procesador CCD (CCDP) para la corriente oscura, correcciones de
compresin DCT, codificacin Huffman, DCT descompresin, decodificacin de Huffman y guardar

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

(v) Inicia Picture_FileDisplay, tareas que se ejecutan en un nico propsito mostrar DispIP (procesador) para
descodificar y mostrar imgenes de archivo comprimido despus de la secuencia de bytes de archivo necesarios para el
procesamiento de turno o girar o estirar o zoom o contraste o color y resolucin, fvj inicia memory stick guardar sobre
notificacin de Picture_F-'ileTransfer objeto del sistema de archivos mediante una transferencia de propsito nico
procesador (MemP), (vi) inicia la impresin en una notificacin de Picture_FileTransfer utilizando un nico propsito
el procesador de impresin (PrintP) y (v) ) inicia el controlador de puerto USB sobre notificacin de Picture_FileTransfer
utilizando un nico objeto procesador USB (USB_P).
Pila TCP generacin est modelada por la clase Task_TCP, que es una clase abstracta de la cual la clase extendida (es) se
deriva para crear paquete TCP o UDP a un socket. El Grupo de los objetos son instancias de las clases (i) Task_StrCheck,
fii)Task_OutStream, (iii) Task_TCPSegment o task_UDPDatagram (ivj Task_IPPktStream
(v) Task_NetworkDrv.
VxWorks RTOS ha sido utilizada por los cdigos del sistema integrado para la conduccin de una tarjeta de red despus
de generar la pila TCP/IP. Los cdigos ejemplar mostrar un mtodo de diseo de cdigo para enviar la bytestreams en
una red. Una secuencia de bytes pasa primero a travs de las mltiples capas con protocolos TCP/IP. Un controlador de
red enva finalmente el arroyo en una red TCP/IP. Cmo VxWorks horarios las seis tareas est demostrado, (a) una tarea
para controlar la insercin de cadenas de aplicacin por la aplicacin, (b) una tarea para crear la secuencia de aplicacin
de la capa de control de transmisi n, c) dos cdigos de tareas son dadas para insertar los campos de encabezado con
cualquiera de los dos protocolos, TCP o UDP, en la capa de transporte, (d) una tarea crea paquetes IP para la red
fragmentando el segmento TCP stream, (e) una tarea impulsa el driver de red y coloca la secuencia de bytes en un tubo
(un dispositivo virtual;. Cmo manejar las tareas mltiples tipos de datos en los campos de encabezado tambin fue
mostrada. Este estudio de caso ofrece al lector una comprensin cabal de la aplicacin y las diversas funciones del
sistema RTC en VxWorks RTOS. El lector debe ser capaz de desarrollar soluciones para un sistema de red integrada
con el sistema operativo VxWorks.

Palabras clave y sus definiciones


Capa de aplicacin
Checksum

una capa compuesta de campos conectados antes de colocar el mensaje en la red


De modo que la aplicacin al otro extremo comprende la solicitud y servicio.
: una suma que representa el nmero de lleva generados por la adicin de los nmeros
\

de 8 bits
O 16-bii nmeros o nmeros de 32 bits.

Ecu

: Cargo par dispositivo que consta de un gran nmero de pxeles horizontales y


verticales
Las clulas. Rojo, verde y azul (RGB), las clulas se generan tres salidas para un pxel.
CODEC
: una unidad de procesamiento para la codificacin y descodificacin de los bytes o
bytestreams, por
Ejemplo. CODEC JPEG para la codificacin y descodificacin de los bytes o
Compresin
bytestreams
Desde un CCD de preprocesador.
: para convertir los bytes de un archivo mediante la codificacin adecuada en un
nmero
reducido
de modo
que de manera que si hay un error en la transmisin.
CRC (Verificacin de redundancia cclica) : un 32-bit
o 16-bit
integer
calculado
Ellos
coche. ser recuperados
por un comparando
proceso inverso
de ladel
codificacin
adecuada
A continuacin,
puede detectarse
el CRC
mensaje recibido.
Separa
tarda
Lams
descompresin.
tiempo en calcular, pero es mejor que la suma de comprobacin.
Protocolo orientado a conexi n

: un protocolo en el que inter-comunicacin de red se realiza primero para'conexin "


Establecimiento, entonces el mensaje fluye bajo un mecanismo de control de flujo y,
a continuacin, la terminacin de la conexin se produce despus de adecuada
comunicacin entre redes. Protocolo de control de transmisin, TCP, es un ejemplo.

564

Protocolo sin conexin

Software criptogrfico
Datagrama

Los sistemas integrados

: un protocolo en el que inter-comunicacin de red se realiza sin primer


establecimiento de conexin y sin un mecanismo de control de flujo y sin la
terminacin de la conexin entre la comunicacin de red. Normalmente, en el
modo de emisin, este protocolo se observa. Protocolo de datagramas de
usuario (UDP,
es suyejemplo.
: Software
para cifrar
descifrar un mensaje o un conjunto de bytestreams. Se
utiliza un algoritmo de cifrado y otra para el algoritmo de descifrado.
: un flujo de bytes que es independiente de la secuencia anterior. El datagrama
UDP tiene un tamao mximo de 216 bytes.

DES
: Estndar de cifrado de datos.
DES3
: una versin de DES.
Fabricacin de dispositivos : dispositivo para operar un sistema mecnico mediante seales electrnicas.
electromecnicos principales : una clave embebido en la ROM en el momento de fabricacin de la tarjeta de
modo que la tarjeta obtiene una identidad nica.
Capa de internet
: una capa para inter-red usando el protocolo TCP/IP. La capa se compone de
campos conectados antes de colocar el mensaje en la red a travs de
enrutadores, de manera que los routers enviar el mensaje como por la direccin
IP de origen y destino en los campos de la capa. Los campos en esta capa son
para el mecanismo de control de flujo de la red. Por ejemplo, campos de
IP enelTCP/IP.
Bytes segn
protocolo IP coloca sobre los bytes de un paquete de
Encabezado IP del paquete IP :cabecera
segmento TCP stream. : un paquete basado en protocolo IP de tamao
mximo de 216 bytes que transmite despus de paquetizacin de segmento
LCD de matriz de puntos
TCP stream-datos
despus
de la colocacin
encabezado
IP. una
: conjunto
de pantallayde
cristal lquido
que constadedebytes
filasde
y columnas,
como
matriz. Un controlador adecuado muestra los caracteres o imgenes en la
matriz.
Controlador de red
: una
tarjeta que enva y recibe los mensajes de la red fsica y facilita la conexin
fsica para la secuencia de bytes entre las diferentes capas. El conductor puede
utilizar el protocolo SLIP o PPP para la conduccin en la red despus de
colocar el cabezal y bytes finales como por Ethernet de otro protocolo. Cada
controlador tiene una nica?
Paquete
Un conjunto de bytes que incluye la aplicacin, transporte y encabezados de
capa de internet que dirige a travs de una serie de enrutadores disponibles
actualmente a lo largo de una ruta hacia un destino.
Pixel
La unidad ms pequea de una imagen, el rea de la que depende de manera
inversa en la resolucin de la imagen. Una imagen consta de pxeles
horizontales y verticales. En cada pxel de color la imagen hay tres celdas
(RGB).
RGB
Rojo verde y azul. Cualquier color en el rango visible es una combinacin de
estos tres colores. Puede haber 256 o 2lf' colores. Depende de la resolucin de
color.
Un
protocolo de interfaz de lnea de serie.
SUP
Encabezado TCP TCP/IP stack Un cabezal colocado en la capa de control de transmisin segn el protocolo
TCP.
Una pila de los bytes que se transmiten desde una unidad de red despus de la
colocacin
apropiada
del protocolo
suite encabezados
opcin
bytes
Segmento TCP.
Un segmento
de los bytes
junto conTCP/TP
los encabezados
de TCP y ylos
protocolos
sobre
eso. de aplicaci n que transmite en una instancia nica a travs de las
de la capa
inferiores.
Capa de control de transmisin capas
Una capa
para colocar campos de encabezado TCP o UDP los campos de
encabezado en una red TCP/IP. Un protocolo en la capa transmissioncontrol
para enviar un datagrama de red TCP/IP. ' " ,,en
Cabezal de impresin de datos Un encabezado que consta de cuatro campos, el puerto de origen y destino y
variables
las direcciones para la longitud y la suma de comprobacin.
UDP

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1

Preguntas de repaso
1. Por qu un diseador debe comprender primero los requisitos del sistema antes de disear los cdigos?
Por qu la lista de tareas
Y MODELOS DE SINCRONIZACIN requerida antes de utilizar las funciones RTOS.
2. El bucle while de la primera tarea slo contiene las funciones de suspensin de tareas. Explique por qu
debera ser as?
3. Explicar cmo la tarea lor puertos de lectura se sincroniza con el controlador de dispositivo de puerto.
4. Cmo se utiliza en el ejemplo MboxAmount 11.1.
5. Cul es la funcin de task_Display? Cmo puede el cdigo para la lnea de mltiples mensajes en una
pantalla LCD de matriz? (MUCOS)
6. Explicar el uso de scmFlags en el ACVM tareas en el Ejemplo 11.1. (MUCOS)
7. Podemos utilizar el nmero de buzn de mensajes desde un PC me tarea. Explicar cmo esto ha sido
efectivamente utilizado. Por qu es
Una cola de mensajes no se usa en lugar de varios buzones de correo? (MUCOS)
8. Explicar la funcin de cada semforo utilizado. Cmo se utiliza el semforo y, en consecuencia, los
cdigos de ejemplo 11.1
Ser modificado en la siguiente modificacin al sistema? ACVM utiliza un generador de nmeros aleatorios
funcin C
Ofrece un chocolate libre de un promedio de ocho coin inserciones y reembolsos todas las monedas a los
afortunados.
(MUCOS)
9. Por qu necesitamos mltiples procesadores de propsito nico junto con un microcontrolador en una
cmara digital?
10. Por qu son los DCTs y inverse DCTs realizada en una cmara digital? Por qu se utiliza aritmtica de
punto fijo, en lugar de
Aritmtica de punto flotante en una cmara digital?
11. Describir las clases, los objetos que se utilizan en la escritura de cdigos para guardar un archivo de imagen
Ejercicios de prctica
en una cmara digital.
12. Cmo funciona el rango de asignacin de prioridades difieren de las asignaciones en mucos VxWorks?
15.
cmo laaltarea
para que
leer se
Pons
se sincroniza
con 11.2
el controlador
deeldispositivo
13. Explicar
Cmo Explttin
semforo
utiliza
en el ejemplo
para dirigir
uso de UDP en lugar de TCP
de puerto.
en la capa de transporte.
(Vx Works)
16. Dibuje
el diagrama de clase de biela(roller_Tareas lor de una cmara digital.
14. Explicar
Cmo son secuencias
de tamao
la permitida en un"fd
paquete,
permitidos por la MTU
17.
el uso
de mayor
la que
declaracin:
= anilabierto
(mximo transferible en
unidades).
(nerO.'vCon/fg./.VR.
0_RDWR.
0): . (VxWorks)
Una vez
manipulados?
18. Dibuje
el diagrama
de estado ACVM funciones.
19. Dibuje el diagrama de estado de las funciones de la cmara digital.
20. Dibuje el diagrama de estado de pila TCP de generacin.

Estudios de casos y
ejemplos de diseo del
programa de modelado y
programacin con RTOS-2
I:
X.

----------

En el captulo anterior, es un ejemplo interesante


ACVM diseado para ensear el diseo de sistemas integrados ^
Conceptos y objetivos de tiempo de recuperacin de las
aplicaciones. Hemos visto tres
Estudios de caso en este captulo. Estos fueron para
ACVM, cmaras digitales y sistemas de pila TCP. Nos enteramos
de que ^ Primero estudiamos los requisitos, obtener claridad de
la
Fin requerido, insumos, seales, eventos, notificaciones,
salidas de las funciones del sistema, diseo de mtricas y
condiciones de ensayo y validacin, las especificaciones en
trminos d De usuarios, objetos, secuencias, actividad, estado y
clase
Diagramas para abstraer el componente,
comportamiento y eventos y crear una descripcin en trminos de
seales, los Estados y las transiciones de la mquina de estado para
cada tarea que ayudan a l
Nosotros en gran medida en la
definicin de la arquitectura del sistema para
Hardware y software. La codificacin para la
implementacin se realiza segn la arquitectura. El sistema es
thenrfinsM'sy r
Probado.

Al igual que en el captulo anterior, vamos a empezar con un ejemplo interesante de


orquesta del robot. Vamos a aprender aspectos de diseo de sistemas integrados de
morir cuatro nuevos estudios de casos descritos en este captulo.
1. En la comunicacin inter-robot un robot orquesta.
2. Los sistemas integrados necesarios en un automvil. Entender el diseo de
sistema de control y aplicacin del cdigo mediante el ejemplo de un automvil
Cruise Control (ACC) del sistema en un coche. Aprenda tambin cmo morir el
diseo del cdigo puede hacerse utilizando VxWorks despus emulando OSEK
secta t ion 10.2) caractersticas.
J. Aprender tareas de comunicacin con el host de tarjeta smart card y funciones
del SO. Tambin aprender el diseo del sistema y la aplicacin del cdigo para
la comunicacin de smart card con la mquina host (por ejemplo, banco, cajero
automtico o la mquina de pago cuando se usa una tarjeta de crdito en un
centro comercial).
J. Se inclin interrumpe, tareas y conceptos de la mquina de estado por ejemplo
de crear la aplicacin SMS en un telfono mvil.

12.1

Estudio de caso de la comunicacin entre los robots


orquesta

Qrio fue un invento de Sony. La revista Times lo describi en 2003. Qrio significa
Quest lor cuRIOsiiy. Qrio es un robot humanoide ms fluida y rpida diseada que
nunca antes. Qrio pesaba 7,3 kg y 58 cm. y haba una hora de batera. Cuatro Qrius
realiz una rutina de baile complicado en 2003.
Qrio w;es un robot bpedo que onda couid hola y reconocer la voz, sus dos cmaras
CCD en los ojos reconoce hasta 10 diferentes rostros y objetos, y determina la ubicacin
de los objetos a la vista. Tres cmaras CCD W C T utilizado en todo el mundo. uno en
cada ojo y uno en el centro. Qrio poda conversar, cantar, bailar, caminar cuesta arriba,
patada y jugar con su persistente. Qrio haba siete micrfonos. Qrios poda cantar al
unsono y de interactuar con los seres humanos con movimientos y habla con ms Titan
1000 palabras. Puede aprender palabras nuevas. Las emociones se han mostrado por
luces de hash.
En 2006, diez Qrios de cuarta generacin realiza un nmero de baile. Tambin
llevaron a cabo toda una orquesta. Me dieron una copia nica de Beethoven
5LH SYMPHONY (1808). Una de las ms conocidas y composiciones populares de la
msica clsica occidental, que a menudo es jugado en la orquesta usando varios
instrumentos
musicales
y
conducida
por
un
conductor.
|http://en.wikipcdia.org/wiki/ Symphony_No._5_(Beelhoven)|. El robot Qrio orquesta
tena nuevos instrumentos tocados por actuadores robticos.
Cada Qrio tena 38 movimiento fluido juntas flexibles controlados por motores
independientes para cada una de ellas con un AS1P en cada una. Sistema central de
microcontroladores tres movimiento controlado, voz reconocida e imgenes visuales,
respectivamente. Memoria 64 MB witlt cada microcontrolador.

568

Los sistemas integrados

Qrio embedded algoritmos complejos para maniobras mecnicas complejas para equilibrar durante el baile o en
la orquesta. Embedded Qrios orquestales complejas y/o programas coreogrficos.
La figura 12.1 muestra un robot orquesta.

Comandos y mensajes comunicados en cada Qrio entre los microcontroladores, sensores y actuadores. Un rooot
fue programado utilizando un Orchestrator.
Suponga que hay k entradas del sensor al mdulo y q generar salidas a los actuadores y p salidas a cuadros de
mensaje (tambin llamados buzones en determinados sistemas operativos o notificaciones en determinados sistemas
operativos) en una secuencia. Orchestrator es software que secuencias, sincroniza las entradas desde el P' para el
klh sensor y genera mensajes y salidas para los actuadores, mostrar y cuadros de mensaje en los casos especificados
e intervalos de tiempo. Los cuadros de mensaje almacenar las notificaciones, que iniciar las tareas segn las
notificaciones.
Figura 12.2(a) muestra el mdulo de software incrustado Orchestrator-1 en un microcontrolador I. Figura
12.2(b) muestra los comandos y los mensajes de comunicacin entre Orchestrator-.v. Orchestrator-y y Orchestrator.: mdulos de software en el mismo o diferentes microcontroladores.
Un dispositivo musical comunica datos a otro, utilizando un protocolo llamado MIDI (Musical Instrument
Digital Interface). Lector se recomienda estudiar un tutorial sobre MIDI. Los sitios web ms populares
son http://www.borg.com/--jglatt/ lutr/miditutr.htm
y http://www.xtec.es/rtee/eng/tutorial/midi.htm para
este
propsito.
La mayora de instrumentos musicales MIDI son compatibles y tienen conexiones MIDI IN y MIDI OUT, que
son pticamente aislado con el instrumento musical del hardware. Tres definir especificaciones MIDI (i) Qu es un
conector fsico, (ii) Qu formato de mensaje es utilizado por la conexin de dispositivos, control en tiempo real y
estndar para MIDI (interfaz digital de instrumentos musicales) archivos. Cada mensaje consta de un comando y los
datos correspondientes para ese comando. Los datos se envan en el byte de formatos y siempre estn entre 0 y 127
y el comando correspondiente bytes en un mensaje de canal son de 128 a 255.
Un canal (comando) mensaje 128-255 (entre 0x80 a OxEF) en archivo MIDI tiene la nota musical, pitch bendpmgram, cambio de control, cambio y despus de tocar (Poly-presin) de los mensajes. Hay un mximo de 16
canales en un sistema. Especifica el sistema MIDI mensajes, mensajes exclusivos del sistema del fabricante y en
tiempo real los mensajes exclusivos del sistema (entre OxFO a OxFF). Un ejemplo de mensaje del sistema en tiempo
real es el siguiente: Un conductor es empezar desde MIDI comando OxFA y siempre la reproduccin comienza al
principio de la cancin (denominada MIDI Beat 0)]. As que cuando un jugador recibe un esclavo MIDI Start
(OxFA), automticamente se restablece su cancin posicin = 0.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

cuadro de mensaje ...

----------- ---- ------ , P


- cuadro de
mensaje

Orchestrator
Girando a

Un
microcontrolador

(a)

\ 5691

------i

Sensor ;

Tr
*1

Sensor '

Actuador j-*^-

(h)

Fig. 12.2 (a) mdulo de software incrustado de orquestador-1 en un microcontrolador 1 entradas de sensor, con

k, q salidas a los actuadores y p salidas a cuadros de mensaje { b ) Comandos y mensajes


de comunicacin entre Orchestrator, Orchestrator x-y-z y Orchestrator mdulos de
software en el mismo o diferentes microcontroladores

Los mensajes MIDI define un evento como lo nota musical est presionado y con qu velocidad se presiona.
Este evento es de entrada MIDI a otro receptor. Receptor MIDI reproduce la nota que vuelve con la velocidad
especificada. Por lo tanto, todo un conjunto de un robot-orquesta puede controlarse utilizando el protocolo MIDI.
Tambin los actuadores estn sincronizadas por las notas y velocidades.
Transporte de un archivo MIDI puede ser a travs de Bluetooth, alta velocidad de serie. USB o FireWire. Para
tile robot orchestra, protocolo de comunicacin para archivos MIDI pueden ser Bluetooth o WLAN 802.11.
La figura 12.3 muestra la comunicacin entre el robot conductor C y cuatro robots esclavos
(jugadores FI P4) en el robot de orquesta. Cada robot esclavo desempea distintos instrumentos musicales y, por
lo tanto, reproduce las notas de diferentes vas (canal) del archivo MIDI desde el master (conductor).

.1*

Fig. 12.3 El modelo de comunicacin de un robot- orquesta

570

Los sistemas integrados

_ _

12.1.1 Requisitos
Requisitos ol el comunicar los robots pueden entenderse a travs de un requisito la tabla dada en la Tabla 12.1.

Tabla 12.1 Requisitos del sistema de comunicaciones de archivos MIDI en la orquesta del robot
Requisito

Finalidad
Entradas

Seales, Eventos y
notificaciones
Salidas

Funciones del sistema

Parmetros de diseo y

Descripcin

Para comunicar los datos del archivo MIDI seleccionado ms de rea personal Bluetooth-red de
comunicacin Conductor Robot tarea para reproducir msica robots
1. Orquesta_Choice para archivo MIDI seleccionado
2. Archivo MIDI
1. Comandos de canal (mensajes) en los datos del archivo

! Archivo MIDI a travs de la red de comunicacin


2. Mensajes a los accionadores de los movimientos, como por va mensajes y datos especficos
Un usuario seala una orquesta_Choice. decir Beethoven 5,h symphony para empezar. El conductor C
(Figura 12.3) task_MIDI selecciona el archivo MIDI elegido y los puestos de los bytes de los archivos
en cola de mensajes para task_Piconet_Master. Piconet es una red de dispositivos Bluetooth. Los
dispositivos Bluetooth pueden formar una red conocida como piconet con los dispositivos dentro de una
distancia de unos 10 m. Piconet Bluetooth consta de red de C, PI. P2, P3 y P4. task_PICONET_SlavePI.
task_PICONET_SlaveP2. task_PICONET_SlaveP3 y TASK_PICONET_SlaveP4 acepta los mensajes
de task_Piconet_Master. Un task_Pieonet_Slave puestos los mensajes MIDI a una tarea_ MIDLSIave.
tarea__Slave MIDI puestos mensajes a un mosaico utsk_Orehesiraioi, que controla los movimientos del
motor motor robot esclavo y actuadores actuadores de nota musical.
1. Pow er disipacin: Un requeridos por unidades mecnicas, unidades musicales y actuadores
2. Rendimiento: Cerca de derechos equivalentes de orquesta jugar
3. Costo de ingeniera: USS 150000 (supuesta) incluyendo actuadores mecnicos
4. Coste de fabricacin: US$ 50000 (supuesta)
1. Todos los comandos MIDI debe activar todas las funciones orquestales correctamente

prueba

12.1.2
de clase y las clases
CondicionesDiagrama
de
validacin

Un diagrama de clase [cuadro 6.3] puede ser modelada por un diagrama de clase de task_Conductor. La figura 12.4
muestra los diagramas de clase de task_Conductor y otras clases que se utilizan para publicar un archivo MIDI los
mensajes a travs de la piconet a los esclavos.
I. Task_interfaces Conductor de orquesta de ISR__Choice y se extiende a Task_MIDI. Tarea_ Conductor se
extiende a Task_Piconet_Master.
. 2. Task_SlavePI, Task_SlaveP2, Task_SlaveP3 y TASK_SlaveP4 son clases abstractas y extender a las clases
Task_Piconet_SlavePI, tarea_ _SlaveP Piconet2, Tarea_ _SlaveP Piconet3 y tarea_ _SlaveP Piconet4,
respectivamente.
3. Task_MIDI_SlavePI, Task_MIDI_SlaveP2, Task_MIDL_SlaveP3 y TASK_MIDLSlaveP4 son clases de
esclavos PI, P2, P3 y P4, respectivamente.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

571 1

4. Task_Orchestrator_SlavePI. Ta.sk Orcheslrator _SlaveP2. Tarea__Slavt Orche.strator'P3 y _SlaveP


Orchcstrator tarea4 son clases de esclavos PI. P2. P3 y P4, respectivamente.
Yo ISR__Choice Orquesta I
TaskMlDI

Conductor de tareas

Tarea Piconet Master


Tarea SlavePI

Task_SlaveP2 |

I La tarea Piconet SlavePI


Tarea_ SlavePI MIDI
Task_Orchestratror SlavePI

Task_Piconet_SlaveP2

Tarea_ SlaveP MIDI2


Task_Orchestratror SlaveP2 j

Tarea SlaveP3

Tarea SlaveP4
T

Task_Piconet_SlaveP3 [-* 1
Tarea_ SlaveP MIDI3
Task_Orchestratror SiaveP3
Tarea Piconet SlaveP4
Tarea_ SlaveP MIDI4
Task_I_Orchestratror SlaveP4

Fig. 12.4 Task_Conductor del diagrama de clase para publicar un archivo MIDI de datos a travs de la
piconet Bluetooth
A los esclavos

Class una clase es un grupo lgico

MIDI de tareas

Y tiene campos (atributos) y


TypeO. lileType:
Mtodos (operaciones). Figura 12.5
Nota MsgMusical. MsgPitchBend. MsgControlChange.
Se muestra un ejemplo de los campos
Msg AlterTouch. MsgSystem. MsgManufExcl, MsgProgramChange:
en la clase
MsgRealTime: Cadena NumMsg: unsigned int.
Task_MIDI. La clase consta de
Campo fiteType. Especifica el tipo
(); OSMsgOPend
De archivo. Define si el archivo tipo
OSMsgQAccept
0
(); OSMsgQPost ();
El archivo contiene slo una pista,
Fig. MIDI Clase 12.5
que
Tiene todos los mensajes MIDI,
En diferentes canales MIDI, un canal para cada esclavo robot. Tipo I archivo especifica cada pieza musical en una
Lo que significa que la orquesta
pista separada para cada siavdTob.'f'ambos, el tipo 0 y puedo guardar una interpretacin orquestal, por ejemplo.
entera
5LH sinfona de Beethoven. Los dems campos son de clase, MsgMusicalNote MsgControlChange
Rendimiento para esa pista. Un
MsgProgramChange MsgPitchBend,,,,, MsgManufExcIMsg MasgAfterTouch MsgSystem y MsgRealTime. Estos
Va puede tener muchas piezas
son los objetos de cadena para la nota musical, pitch bend, cambio de control, cambio de programa, despus de
musicales
tocar, mensajes del sistema,

572

Los sistemas integrados

Mensajes de sistema exclusivo del fabricante y en tiempo real de los mensajes de sistema exclusivo. NumMsg es
el nmero de mensajes que la transferencia en un ciclo de maestros a esclavo. OSMsgQPend OSMsgQAcoept ()
() y () son OSMsgQPost OS mtodos para aceptar, espere y publicar los mensajes de orquesta eleccin y mensajes
MIDI.
Objetos un objeto es una instancia de una clase. Asumir una representacin de notacin en el que representamos
un Id. de objeto de proceso o tarea por caracteres comenzando con minscula y la correspondiente clase por
caracteres comenzando con el primer carcter en el caso de pena capital. Por ejemplo, la tarea_MIDI,
task_Piconet_Master_task_SlavePl Piconet, tarea_ _SlaveP Piconet2, tarea_ _SlaveP Piconet3 ,
task_Piconet_SlaveP4_task_MIDI MIDI SlavePl, tarea__SlaveP2, task_MIDI_SlaveP3 y TASK_MIDI_SlaveP4,
task_Orchestrator, SIavePI_task_Orchestralor_SlaveP2, tarea__SlaveP Orchestrator3 y tarea_ _SIaveP
Orchestrator4 son los objetos (procesos) de las clases TaskMIDI, Task_Piconet_Master_task_SlavePI Piconet,
tarea_ _SIaveP Piconet2, Tarea_ _SlaveP Piconet3 , tarea_ Piconet _S!aveP4, Task_MIDI_SlavePI,
Task_MIDI_SlaveP2,
Task_MIDI_SlaveP3
y
TASK_MIDI_SlaveP4,
Task_Orchestrator,
SlavePl_task_Orchestrator_SlaveP2, Task_OrchestratorJ?laveP3 y tarea__SlaveP Orchestrator4.
Los objetos de cola de mensajes, MsgQBIuetooth MsgQMidi, MsgQMidiPI, MsgQBIuetoothP2
MsgQBluetoothP MsgQMidiP233, MsgQBIuetoothP MsgQMidiP4, MsgQMidiP4, SigPortl, SigPort2, SigPort3 y
SigPort4 se utilizan para publicar y aceptar mensajes. Puestos MsgQMidi NumMsg mensajes del archivo MIDI en
un ciclo para el objeto task_Piconet_Master. Los datos de la pila Bluetooth MsgQBIuetooth puestos en un ciclo a
Port_Bluetooth. Seal SigPorts objetos a puertos inicia la transferencia de Bluetooth Stack. Objeto de seal,
SigPortP SigPortPl2, SigPortP3 y SigPortP4 inicia la recepcin de Bluetooth Stack.

12.1.3 Diagrama de estado


La figura 12.6 muestra un diagrama de estado para los objetos de clases de task_Conductor. Un diagrama de estado
muestra un modelo de estructura para su inicio, fin, entre asociaciones a travs de las transiciones y muestra los
eventos etiquetas condicin tor) asociados con las transiciones. Una marca rectangular oscuro dentro de un crculo
indica el final [cuadro 6.3] las transiciones de estado tiene lugar entre las tareas, task_MIDI.
task_Piconet_Master_task_SlavePl Piconet, tarea_ _SlaveP Piconet2, tarea_ _SlaveP Piconet3 . tarea_ _SlaveP
Piconet4, task_MIDI_S!avePl, tarea_ VlIDI_SlaveP2, tarea__MIDI SlaveP3 y tarea__MIDI SlaveP4,
task_Orchestrator, SlavePI_task_Orchestrator_SlaveP2, tarea__SlaveP Orchestrator3 y tarea_ _SlaveP
Orchestrator4.

12.1.4 Orquesta Robot comunicacin MIDI Arquitectura de hardware y


software
Arquitectura de hardware especifica la descomposicin adecuada de hardware en procesadores, memoria, puertos
ASIPs, dispositivos mecnicos y electromecnicos y unidades. Tambin especifica la interconexin y el mapeo de
estos componentes. La figura 12.7 muestra un diagrama de bloques de la arquitectura de hardware de comunicacin.
Las siguientes son las especificaciones:
1. Un microcontrolador en cada esclavo y maestro para controlar Orchesuator para movimientos. La ASIP
para cada motor de movimiento.
2. La ASIP al maestro y esclavo para cada piconet Bluetooth comunicacin entre maestro y esclavos.

Arquitectura de software arquitectura de software especifica la descomposicin apropiada


del software en mdulos, componentes, estrategias de proteccin adecuadas, y la
asignacin de software. El software consta de los siguientes elementos en cada esclavo y
maestro.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

573
^ ______ ,

Fig. 12.6 Diagrama de estado task_MIDI

SI, 8 interrupciones hardware,

Fig. 12.7 Diagrama de bloques del sistema de comunicacin y de microcontrolador ASIPs al maestro y
cada esclavo
1.

OS

Isr para iniciar la accin sobre las entradas de usuario y notificaciones de la GUI, por ejemplo para
orquesta_Choice.
3.
Las tareas son los objetos de las clases se muestra en la Figura 12 4.
4.
Orchestrator tareas para maestro y esclavos. 2.

5.

Y OSMsgPend OSMsgQPost OSMsgQAccept, cola de mensajes son los mtodos (funciones) del sistema

Llamada al sistema operativo. Tres mtodos sincronizar las tareas y su procesamiento concurrente de tal
manera que la primera

1574
1

Los sistemas integrados

'> J

Task_MIDI mensaje espera para orquesta_Choice del ISR_Orchcstra_Choice, el


Task_VIIDI puestos los bytes de Message Queue para task_Piconci_Master.
Ft. lask_,VHDI espera NumMsg mensajes MIDI desde el archivo MIDI para orquesta elegida y los puestos de
la
NumMsg MsgQMidi mensajes a task_Piconet_Master.
7. T.ask_Master_Piconel descubre los esclavos y establece una piconet dispositivo Bluetooth en la red
Primera iniciacin. Al aceptar MsgQMidi mensajes, enva los productos a travs de la pila de protocolo
Puerto de comunicacin.
8. Una Piconet_task_esclavo recibe Pila Bluetooth para el NumMsg mensajes del archivo MIDI y configura
Con la red como servidor maestro. Los mensajes MIDI se clasifican para los mensajes que se dirigen a la
va PI
O P2 o P3 o P4. Por ejemplo, mensajes trackPl post para task_MIDI_I_fromtask SlaveP Piconet_SlavePl.
Luego task_MIDI_SlavePI puestos los mensajes a los actuadores y Orchestrator task_OrchetratorPI.
9. Pasos similares a repetir el paso 8 anterior para todos los esclavos pistas en robot-orquesta.

12.1.5 Modelo de sincronizacin de tareas de comunicacin


Figura 12.6 Diagrama de estado mostr la sincronizacin del ciclo de tareas diferentes. El sistema de comunicacin
tiene un
Ciclo de acciones en un modelo de sincronizacin de tareas.
1. Comienza un ciclo de task_MIDI, que recibe los eventos (Orquesta_Choice). Enva mensajes MIDI
En Message Queue MsgQMidi. Los mensajes MIDI que se encuentran en el archivo MIDI de
orquesta_Choice almacenados
En el mster.
2. Una tarea task_Piconet_Master es para descubrir la piconet esclavos, estableciendo comunicacin
Bluetooth.
Con los esclavos PI, P2. P3 y P4 y luego aceptar mensajes MIDI desde el MsgQMidi.
Task_Piconet_Master pila Bluetooth puestos en cola de mensajes y seales sigPort MsgQBIuctooth
A PORT_Bluetooth.
3. Task_Piconet_SlavePI ejecuta en una seal de Bluetooth SigPortPl BltietoothPI_port en el
Esclavo. Asimismo, las acciones estn en Port_BlueoothP2, Port_BluetoothP3 y PortBluetoothP4, qu
seal
Tres seales SigPortP2. Y SigPortP SlgPortP34 para la tarea,!aveP Piconei_S2_task_Piconet SlaveP3
Y TASK_Piconet_SlaveP4 respectivamente.
4. Task_Piconet_SlavePI, task_Piconet_SlaveP2. Uisk_Piconet_SlaveP3 task_y_Piconct SlaveP4 (i) aceptar
Bluetooth Stack oi'el maestro. (ii> seleccione la va mensajes de las cuatro pistas de cuatro esclavos, y
despus en
Cuatro colas de mensajes los cuatro mensajes en formato MIDI _SlavePI task_MIDI. tarea_ _SlaveP
MIDI2.
Tarea_ _SlaveP MIDI3 y tarea_ _SlaveP MIDI4 POR VA PI. P2. P3 y P4, respectivamente.
5. Task_MlDl
_SlavePl. tarea_
_SlaveP MIDI2.
_SlaveP MIDI3 y tarea_ _SIaveP MIDI4 post
12.2
Los sistemas
integrados
en eltarea_
automvil
Va PI, P2, P3 y P4 Orquestadores los mensajes MIDI. Orquestadores dirigir los mensajes a la
Los automviles
actuales
tienen
sistemas
embebidos.
La figura 12.9 muestra el tipo de sistemas en un
Accionadores
de la
pista muchos
de msica
y movimientos
del robot.
coche.
Cada sistema
tiene al
o microcontrolador
y software.
Un coche
puede contener
La figura
12.8 muestra
unmenos
modeloundemicroprocesador
sincronizacin de
robots maestro-esclavo
las tareas
de comunicacin
con
los
siguientes nueve tipos de sistemas incrustados.
mensaje
Control(Tareas
del motor:
sistemadedeIPCs,
control
motor
control automtico
de la inyeccin de
Colas1.y seales.
pendientes
6b, del
6c, 6D,
5b,es5cmediante
y 5d no seelmuestran
en la figura).
combustible.
2. Control de velocidad y freno: Control de velocidad y sistemas de freno son automticos, control de
crucero (ACC), el frenado antibloqueo, el frenado automtico y el frenado regenerativo.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2^

76: MsgQMidiP4

6d: MsgQBIuetoothP4

5d: SigPortP4

Fig. 12.8 Modelo de sincronizacin de robots maestro-esclavo las tareas de


comunicacin

Fig. 12.9 Tipo de aplicaciones de los sistemas embebidos en el coche


3. Sistemas de seguridad: Los sistemas de seguridad son para la seguridad personal y la seguridad de los
coches. La seguridad personal es proporcionado por varios airbags y velocidad variable. Los airbags se
utilizan para la amortiguacin, en particular para la rpida inflacin automtica de la bolsa en el caso de
una colisin seguida por defbition^ar la seguridad es proporcionada por clave de entrada remota (RKE)
y el inmovilizador unidad. sistema RKE tiene CPU incorporada y software para el control de las
cerraduras de las puertas. Un inmovilizador unidad inmoviliza el vehculo si un usuario no autorizado
intenta conducir el coche. Los sistemas de seguridad incluyen alarmas, cercanas de alerta y alerta de
salida de carril. Una mitigacin collission CMB (freno) tambin se ha implementado el sistema de
seguridad.

57 6

Los sistemas integrados

4. El asiento y los controles del pedal". Asiento y controladores de pedal son el controlador de sujecin del
asiento (SRC) y la memoria del mdulo del pedal ajustable asiento calefactado (MHSAPM).
5. Coche : controladores ACHVWLT controles para controlar el aire acondicionado, calefaccin, ventilacin,
ventanas, luz y temperatura.
6. Ruta: ruta de trfico y monitores y controles de trfico y la vigilancia son hecho por GPS (Sistema de
posicionamiento global, GPS) Mapeo de rutas guiadas que la programacin y los planificadores de rutas.
7. Monitorizacin del estado del automvil: supervisin del estado del automvil, registradores de datos y
gestin de dispositivos de ayuda a la conduccin, faros orientables, parabrisas 1R cmara, parabrisas heads
up display, asistencia de visin nocturna.
8. Interfaces con el sistema de activacin por voz para las rdenes, y la interfase: interfaces del sistema son
suaves pro
9. Sistemas de infoentretenimiento: sistemas de infoentretenimiento son las siguientes: Muestra text-tospeech, convertidores de coche basado en GPS la ubicacin y alrededores mapas, informes de trfico en
cach en tiempo real para el control de trfico, tocacintas, alquiler de telfonos, reproductor de CD de
audio, pantalla LCD, pantalla tctil, basado en la radio por satlite o por Internet, reproductores VCD/DVD
y telefona manos libres mediante Bluetooth y GSM o CDMA.
Las siguientes funciones son los componentes discretos que luego son integrados a un sistema de servicio
central.
1. RTC y temporizadores de vigilancia para las tareas. [Consulte las secciones 1.3.4 y Seccin 3.7]
2. Control en tiempo real para todos los medios electrnicos, electromecnicos y sistemas mecnicos.
3. El control de crucero adaptativo (ACC) para mantener constante la velocidad en modo de crucero y
desacelerar cuando un vehculo viene en frente a una distancia inferior a seguros y acelerar de nuevo a
modo de crucero en el modo de adaptacin.
4. Sistema de Adquisicin de datos (DAS) para lo siguiente:
(a) Se mostrarn la fecha y hora actuales, la actualizacin, la recodificacin de instancias de la anomala
y los intervalos de tiempo de funcionamiento normal. La actualizacin tambin se puede sincronizar
peridicamente tiempo de seales del sistema GPS
(b) Temperatura externa
(c) Temperatura interna
(d) Distancia total recorrida por el cuentakilmetros y el CAC
(e) Velocidad del vehculo en km/hr para el CAC, velocmetro y advertencia de
velocidad (D la velocidad del motor en rpm. [La revolucin por minuto]
(g) La temperatura del refrigerante, instancias de su exceso por encima de 115 C y constancia dentro de
80 a 90" C
(h) Los niveles de iluminacin en los paneles de visualizacin y en el interior del vehculo
(i) Nivel de combustible (vaco, R l , R 2 , R3, 1/4, 3/8, 1/2, 5/8, 3/4, 7/8 o total).
(j) La presin de aceite para iniciar la activacin del sistema de advertencia de presin de aceite para la
velocidad del motor por encima de 5000 rpm y la activacin del sistema de alarma por encima de
15000 rpm.
(k) Informacin marcha metida actualmente
(l) Front-end en coche
5. Panel frontal de interruptores y controles de pantalla
6. Puerto para seales de alarma. Estos son enviados al panel de visualizacin, Bip chivato y sistemas de
sonido. Se emite una advertencia al mostrar pictogramas y aumentar el sonido de alarmas y sus registros
correspondientes se guarda para su anlisis y diagnstico. [Un pictograma es una imagen pre-grabados en
un archivo de datos de imagen. Se muestra en una pantalla LCD de matriz. Se muestra el pictograma es
segn el mensaje requerido]
7. Diagnstico de anomalas en los clculos de tiempo de conduccin y resultados de anlisis de estadsticas
para un rpido diagnstico de fallos por mecnico <*'
8. Interfaces multimedia
9. rea de Control de interfaces de red
10. Interfase de comunicacin serial (SCI), el transmisor y el receptor.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

Hardware de sistemas integrados de un coche puede disearse usando ASICs y microcontroladores y DSPs,
por ejemplo, 80x51,68HC11 /12, PIC. C167. ADSP2106x, 68HC0x MCORE, Starl 2, TMS470, Hitachi H8S2xxx
Series y brazo 9 basa ST9 series. Seccin 12.3 se describe un caso de estudio de los aspectos de la aplicacin de
software de un sistema ACC en un coche.

12.3

Estudio de caso de un sistema integrado para un control de crucero


adaptable (ACC) EN UN COCHE

La eleccin del estudio de caso del CAC se toma hasta comprender un diseo de sistema de control y tambin para
comprender la utilizacin de RTOS para la aplicacin del cdigo. El sistema tiene un nmero de puertos de entrada
y salida de datos. El sistema utiliza un algoritmo de control. Las secciones 12.3.1 y 12.3.2 dar los pasos de diseo,
para conocer los requisitos y el diagrama de clases de tareas del sistema ACC. Las secciones 12.3.3 y 12.3.4
Describir la arquitectura de hardware y software. Las secciones 12.3.5 y 12.3.6 dan la sincronizacin de tareas del
CAC y del modelo de implementacin de software, respectivamente.

12.3.1 Requisitos
Requisitos del sistema ACC puede ser entendida a travs de un requisito la tabla dada en la Tabla 12.2.

Cuadro 12.2 Requisitos de un control de crucero adaptativo


Requisito

Descripcin
I. Crucero controlado de coche con control adaptativo de la velocidad del vehculo e interFinalidad
coche.
Entradas
1. La alineacin actual de radar (o emisor) haz de lser.
2. Intervalo de retardo en el pulso reflejado con respecto al impulso transmitido desde el
emisor.
3. Posicin del acelerador de un sensor de posicin del motor paso a paso.
4. Velocidad desde un velocmetro.
5. Estado de freno freno de actividades desde el interruptor del freno y el pedal.
Las seales. Eventos 1. Los comandos de usuario dada como seales de interruptores/botones. Las entradas de
y notificaciones
control de usuario para acc ON, OFF, Costa, reanudar, set/acelerar botones.
2. Evento de freno. (Freno taping para desactivar el sistema ACC, como alternativa al
botn "Cancelar" en el panel frontal).
3. Seguro/inseguro notificacin a distancia.
Salidas
1. Transmite impulsos a intervalos regulares.
2. Alarmas
3. Destellaban mensajes
4. El alcance y la velocidad de los mensajes de otros coches (en el caso de estabilidad de
cadena mode).
5. Control de freno
6. Salida para sistema de pedal para aplicar los frenos de emergencia y el conductor no
intervencin para hacerse cargo de crucero desde el sistema ACC.
Panel de control
Panel de control frontal dispone de las siguientes: (a) Interruptor cum mostrar a 'ON' para
'OFF', 'Costa', 'RESUME', y establecer y acelerar. El controlador se activa o se desactiva,
el sistema ACC pulsando Encendido o apagado, respectivamente. S/manos sobre l o reanuda el sistema ACC
(Conid)

Los sistemas integrados

Requisito

Descripcin
Cargar pulsando la costa o reanudar, respectivamente. S/l establece la velocidad de crucero por SET/
Acelerar el interruptor. Un interruptor se ilumina en color verde o rojo segn el estado cuando el CAC

Activa, b) las alarmas y el mensaje unidad intermitente temas apropiados de las alarmas
y el mensaje parpadeante
Pictogramas.

Funciones de la
Sistema

Parmetros de diseo

1. Sistema de control de crucero se encarga de controlar la posicin del acelerador del conductor y
permite la consigna del vehculo a la velocidad constante predefinida. Un sistema de radar
mantiene entre coche y advierte de situaciones de emergencia.
2. Un circuito de alineacin alinea el radar emisor. Circulando en una zona montaosa, el emisor
alineacin es un deber. Un motor de pasos alinea el archivo adjunto para que el transmisor haz de
radar emite con la requerida para la alineacin de viga carril de conduccin y de divergencia para
mantener la lnea de visin del carril del front-end coche. lask_Align hace esta funcin.
3. Transmitir impulsos emiten a intervalos peridicos y el perodo de demora en recibir su reflejo
desde el front-end se computa del vehculo. Cada pulso puede ser convenientemente modulada de
manera que no hay inmunidad contra el ruido en el sistema y vigas de mltiples fuentes no
interfieran. task_Seal realiza esta funcin.
4. El retardo medido en intervalos peridicos se multiplica por l.5x 10k m/s (la mitad de la velocidad
de la luz) da la distancia calculada d (= RangeNow) del extremo delantero del coche en esa
instancia. task_ReadRange realiza esta funcin.
5. Las diferencias de d con respecto a seguros d^ y distancias establecidas d*., (en el caso de mantener
la estabilidad de cadena) son estimados cclicamente. task_RangcRate realiza esta funcin.
6. El velocmetro mide la velocidad y error en velocidad preestablecida y mide la velocidad se calcula
peridicamente. tarea_Speed realiza esta funcin.
7. Todas las estimaciones de las diferencias son cclicamente enviada como entrada para un algoritmo
adaptativo, que adapta los parmetros de control y enva la salida calculada para aspirar el actuador
de la vlvula de estrangulacin. task_Algorilhm hace computaciones y TASK_Acelerador inicia
la salida de control funciones para esta accin. Rutina de servicio de interrupcin
!SR_ThrottleControl hace las funciones crticas de control del acelerador. El coche desacelera y
acelera segn el ajuste del orificio de la vlvula de mariposa.
8. El freno se controla cuando la distancia de seguridad no se mantiene y se transmite el mensaje de
advertencia en la pantalla. tarea_Brake inicia las funciones crticas de control del freno. Rutina de
servicio de interrupcin !SR_BrakeControl realiza estas funciones.
9. Cuando la energa de la batera es baja, el sistema ACC se desactiva despus de emitir mensajes
de alarma e intermitente (notificaciones).

1. Fuente de energa y disipacin: Alquiler de funcionamiento de la batera.


2. Resolucin: 2 m inter-coche.
3. Rendimiento: el ajuste de distancia de seguridad de 75 a 200 nt. Ningn rebasamiento de salida
controlada por el acelerador del algoritmo adaptativo.
4. Plazos de proceso: menos de 1 s respuesta a la observacin de la inseguridad del front-end de
distancia del coche.
5. Interfaces de usuario: Grfico de la pantalla LCD o la pantalla tctil en la pantalla LCD y
los comandos para el CAC, modo de crucero activado o desactivado, la reanudacin del control
de la conduccin del CAC, ajuste de la velocidad de consigna, alarmas de diferentes tonos para
mensajes de ACC para el conductor.
6. Ampliacin: El sistema es ampliable para mantener la estabilidad de cadena de varios coches en
Prueba y validacin 1. Probado
en densos y iirghl Ira/rOC, condiciones
una fila.
2.
llanuras, US$
colinas
y (asumido).
caminos del
7. Probado
Costo deen
ingeniera:
50000
valle.
8. Coste de fabricacin: US$ 600 (supuesta).

3. Todos los comandos de usuario debe funcionar correctamente.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

A continuacin se detallan las funciones de un sistema ACC. Control de crucero (CC) tambin se llama autoregulacin o control de velocidad. Controla automticamente la velocidad del coche. El controlador de velocidad
preestablecidos y el sistema asumir el control de la mariposa del coche. En los sistemas de control de una corriente
en un solenoide controla la posicin de la mariposa. Un motor de pasos con accesorio de mando desgastadas pueden
ser utilizados. Un algoritmo adaptativo calcula y enva las seales de control para el motor de pasos en el actuador
de la vlvula de vaco. El orificio de apertura de la vlvula de vaco controla el acelerador vaive. La vlvula electroneumtico. Creacin de vaco proporciona la fuerza a travs de los fuelles. (d.c. o un motor de pasos con un
accesorio de accionamiento desgastada del acelerador puede ser utilizado directamente en lugar de accionador de
vaco y fuelles |.
Generalmente, el conductor mantiene el vehculo estable durante la unidad utilizando el pedal del acelerador.
Control de crucero alivia el conductor de esa obligacin y el conductor entrega el cargo a la CC cuando las
condiciones de la carretera son adecuados (no mojado o helado, o no hay vientos fuertes o niebla) y, si el coche
est navegando a alta velocidad, cuando no hay trfico pesado. El conductor reanuda la carga en estas condiciones.
El control de crucero adaptativo (ACC) o el control de crucero autnomo (CAC) o activa el control de
crucero (ACC) o el control de crucero inteligente (ICC) es comnmente utilizado en la aviacin y defensa
electrnica de aeronaves para realizar cruceros desde hace tiempo. Uso en la automolives es de origen reciente.
[Consulte http://www.ee.surrey.ac.uk/Personal/ R.joven/java/htmUeniise.hlml]. Un sistema ACC-coche se mueve
en modo de crucero a una velocidad preestablecida. Un radar o lser o UV (ultravioleta) emite seales a intervalos
regulares. Estas seales se reflejan en la parte delantera del vehculo. Cuando la seal reflejada es recibido antes de
lo esperado desde una distancia mnima de seguridad, notifica la presencia de otro vehculo para el sistema. El
sistema ACC luego desacelera y el coche se ralentiza. Acelera de nuevo a la velocidad preestablecida cuando las
condiciones lo permitan. Un mtodo comn para el CAC es slo para controlar la velocidad a travs de la posicin
del acelerador descendentes. Los nuevos sistemas tambin se aplican los frenos e implementar un sistema de CMB.
CMB avisa al conductor si el objeto frontal se encuentra a menos de 100 m de distancia. Para un objeto cercano,
CMB aplica los frenos suavemente y alertas por remolcadores en el cinturn. Si el conductor no reacciona, el
sistema se retrae, bloquea el cinturn de seguridad y los frenos de disco.
Un sofisticado sistema ACC tambin puede mantener la estabilidad de cadena para controlar la transmisin
de varios vagones a travs de autopistas y en el caso de los convoyes VIP. [Consulte un documento Chi-Ying Liang
y Huei Peng. "un ptimo control de crucero adaptable con cadena garantizada la estabilidad" oficial de la
dinmica de los sistemas del vehculo, 31, pp. 313-330. I999\.
Un control adaptativo se refiere a un algoritmo parmetros en los que se adaptan a la situacin actual de las
entradas de control en lugar de una constante serie de parmetros matemticos en ecuaciones algortmicas.
Parmetros adaptarse dinmicamente. Parmetros de ejemplares, que se adapten continuamente, son
la proporcionalidad. integracin y diferenciacin constantes.
La Figura 12.10 muestra cmo un algoritmo de control adaptativo puede adaptar y funcin. Calcula los valores
de salida de las seales de control. Para un sistema ACC, una subunidad del sistema ajustable genera la seal de
control de salida de la vlvula de estrangulacin. Neumtico de la velocidad de crucero deseada v, distancia
preestablecida deseada dscl y segura distancia preestablecida ds.lfc son las entradas de ndice de rendimiento
measuremc-NT-subunidad. La medida de la velocidad de crucero v y distancia d son tambin las entradas de ndice
de rendimiento informtico-subunidad. La comparacin y la decisin de la Subunidad tiene entradas de establecer
los parmetros de rendimiento y los parmetros de rendimiento observadas. Enva los productos que son insumos
para la subunidad mecanismo adaptativo. El mecanismo de adaptacin de la subunidad enva salidas, que son
insumos para sistema ajustable. [Para ms detalles sobre el sistema de control de algoritmos, el lector puede
remitirse a los textos estndar en la Ingeniera de Control, es decir, sistemas de control continuos y discretos bv
Joint F. Dorsey. McGraw Hill - Edicin Internacional. 2002. Control digital y pizarra mtodo variable por Madatt
Gopal, Tata McGraw Hill, Nueva Deilii-. 1997 y sistemas modernos de control - Anlisis y Diseo bv Walter J.
Grantham y Thomas L Vincent. John Wiley & Sons, Nueva York, 1993],
El poit dispositivos y sus funciones son las siguientes:
I. Port_Align: es un motor de pasos puerto. Motor de pasos arriba a la derecha o a la izquierda en la seal
de task_AIign. El motor se alinea el radar o (JVHF dispositivo transmisor en el carril del extremo frontal

580

Los sistemas integrados

2. Port_ReadRange: es un front-end car range-puerto de medicin. Diferencia horaria deltaT es ledo en una
seal de task_SignaI al dispositivo de puerto. El puerto radar emite las seales a travs de la antena y la
antena del sensor recibe la seal reflejada desde el front-end task_ReadRange coche lee el dispositivo de
puerto del circuito para los clculos de tiempo de demora entre la transmisin y la recepcin de instancias.
Periodo de retraso en s multiplicado por 1,5 x 105 m mide el intervalo rangeNow (= distancia d) en km
del front-end coche. task_ReadRange enva un mensaje para d a task_RangeRate streaming y todos los
dems coches.
Componentes ControlEssentiai adaptable
Desconocida
Las
perturbaciones

Perturbaciones conocidas

Fig. 12.10 Modelo para una adaptacin del algoritmo de control adaptativo y funciones

3. Port_Speed: La funcin de control de puerto libre permite ejecutar la rutina de interrupcin de


desbordamiento del contador. Al recibir una seal de task_velocidad, el dispositivo de puerto lee un contador
free running countO en primer bit de entrada de la rueda y tambin establece un parmetro N_rotation = 0.
Los conteos se guardan en un bfer de memoria asignado para el puerto de datos. Cada giro de la rueda hace
observar el puerto countN en esta instancia, donde countN es el recuento sobre la ensima rotacin. Tambin
N_rotation aumenta en 1 cada vez countN salva. La funcin de control del puerto de rutina cuando se
desactiva el contador de marcha libre se desborda. Una vez que el contador se desborda, busca la diferencia
del ltimo valor de countN en el bfer y countO. v = velocidad actual speedNow = (N_rotation x
circunferencia de la rueda en m)/ [Tdock x (countN - countO ]) x 1000 km/s. tarea_Speed enva mensaje a
task_RangeRate y el controlador para visualizacin en el velocmetro, por speedNow. Task_RangeRate
luego enva los mensajes para el - rangeNow (DSET) y (speedNow - vKl) a task_ALGORITHM.
4. Port_Freno: dispositivo de puerto aplica los frenos frenos de emergencia o en una seal de interrupcin. La
rutina de servicio ISR_BrakeControl deshabilita las interrupciones al principio y permite salir de la seccin
crtica. Se aplica los frenos y las seales esta informacin a todas las dems secuencias de automviles
tambin.
La Figura 12.11 muestra el diagrama de bloques de unidades del sistema ACC. La Figura 12.12 muestra el
ciclo del sistema ACC de acdons y sincronizacin de ciclo de diferentes unidades.

12.3.2 Los diagramas de clase

El cuadro 12.2 muestra las funciones y tareas diferentes. Un ciclo de acciones y la sincronizacin de las unidades
mostr en Figura 12.12 nos lleva a un modelo para el sistema de las tareas. Las mediciones del sistema ACC.de
coches finales fiyit rango, distancia y estimaciones de error y control adaptable puede ser modelada por dos diagramas
de clase de las clases abstractas, Task_ACC y TASK_Control. La Figura 12.13 muestra dos diagramas de clase de
task_ACC y TASK_Control y tambin otras clases ampliadas a partir de estas clases.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

581.

Panel de control de crucero


T de j
Costa

! Reanudar
1 ____________

Off |
Set/
Acelerar

Alarmas/
I Mensajes 1
Flash

La rueda de cadena del velocmetro del vehculo del pedal de freno de pedal de embrague
Sistema
Sistema
El sistema de interruptor de sistema de conmutador

ACC
Sistema

J
Fig. 12.11 Diagrama de bloque de unidades del sistema ACC

Control de coche

Fig. 12.12 sistema ACC ciclo de acciones y sincronizacin de ciclo de diferentes unidades

L. Task_ACC es una clase abstracta de la cual

clase extendida(es) se deriva a medir el alcance y los


errores. Instancias de objetos es una tarea de la clase extendida, que task_ACC se extiende.
Task_ACC se extiende a Task_Align, Task_Seal, tarea^ReadRange y TASK_ALGORITHM.

' 582 i

Los sistemas integrados

ISR_acosan

Task_Align

! TaskACC

Task_seal
ISR_van

Task_ReadRange

Ii1 1

Task_RangeRate ---------

ISR_Align |

Task_Algorithm

Fig. 12.13 Dos diagramas de clase de task_ACC y Tarea_Control

2. Task_Control es una clase abstracta de la cual se deriva de la clase extendida para medir el rango y los
errores. El Grupo de los objetos son instancias de las clases (i) Task_freno, (ii)Task_Mariposa y (iii) Tarea_
Velocidad, que se extiende desde el task_Control. Task_task_interfaces algoritmo freno, acelerador,
Task_task_Speed y tarea_ ReadRange.
3. Hay dos objetos de ISR, ISR_y_BrakeControl ThrottleControl ISR.

12.3.3 La arquitectura de hardware de ACC


Un sistema de hardware en electrnica de automocin tiene que proporcionar seguridad funcional. Hardware
importantes normas y orientaciones en la actualidad son las siguientes:
(a) TTP (tiempo activ protocolo)
(b) CAN (Controller Area Network) [Seccin 3.10.2]
(c) La mayora (Media Oriented System transporte)
(d) IEE (Instituto de Ingenieros Elctricos) existe para el estndar de orientacin magntica electromagnticas
(EMC) de control y orientacin de seguridad funcional.
La Figura 12.14 muestra subunidades de hardware en un sistema ACC. Un automvil Embedded System
utiliza la unidad de control basado en microcontrolador y microprocesador separado o DSP. El CAC incrusta las
unidades de hardware siguientes:
1. Un microcontrolador ejecuta las rutinas de servicio y tareas (Figura 12.12) excepto task_ALGORITHM.
El microcontrolador dispone de RAM/ROM interna. La memoria RAM almacena las variables temporales
y pila. ROM/Flash guarda los cdigos de aplicacin y RTOS cdigos para programar las tareas. Puerto
CAN interfaces con el bus CAN (Seccin 3.10.2) en el coche. Las interfaces CAN sistema ACC con el
resto de sistemas integrados del coche. El controlador de interrupciones en el microcontrolador controla la
interrumpe.
2. Un procesador separado con la RAM y la ROM para la tarea_Algorithm ejecuta el algoritmo de control
adaptativo (Figura 12.10).
3. Velocmetro
4. Motor paso a paso basado en la unidad de alineacin.
5. Motor paso a paso basado en la unidad de control del acelerador.
6. Transmisor para transmitir impulsos a travs de una antena escondida bajo las placas de plstico.
7. Display LCD de matriz de puntos, controlador de pantalla con botones.
8. Los dispositivos de puerto Port_ALIGN_Puerto_ReadRange Velocidad de puerto, Port_PORT_Acelerador
y freno. Estos dispositivos se usan cinco puertos de cinco acciones de la siguiente manera: alineacin de
rayo transmitido de hacia el carril, medicin de velocidad v, gama d en el CAC, de posicin del acelerador
(segn los mensajes de control fro task_Algorithm) y la accin de frenado (como por mensajes fro
ISR_BrakeControl).

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

Fig. 12.14 El CAC hardware

12.3.4 Arquitectura de Software ACC


OSEK (Seccin 10.2) mencion que las tareas pueden clasificarse en cuatro tipos y un programador debe tener
una clara distincin: la clase que se usa para los mdulos en el sistema. Para el sistema ACC de clase 1 de
conformidad bsica (BCCI) se utiliza. El cuadro 12.3 muestra la BCCI tareas, funciones y IPCs, que son
necesarias para que el CAC con cadena de algoritmo de estabilidad. OSEK tareas pueden consistir de tres tipos
de objetos. Evento (semforo), recursos (funciones e instrucciones) y dispositivos, incluidos dispositivos de
puerto. Las columnas 5 y 4 dan de seales y semforos IPCs publicado y adoptadas. Los semforos se utilizan
para definir la secuencia de ejecucin de tareas y cclicamente ejecutando el CAC tareas y ejecutar el algoritmo
del controlador de estabilidad de cadena en task_ALGORITHM.

12.3.5 Modelo de sincronizacin de tareas de software ACC


Figura 12.12 mostr las unidades, tareas del sistema ACC, ciclo de acciones y sincronizacin de ciclo de
diferentes unidades. Sistema ACC ciclo de acciones y el modelo de programacin de tareas. Nota las marcas I a
10 del ciclo starling y terminando en la figura.
1. Se inicia el ciclo de una tarea, la tarea_A!ign en un evento (ISR llamada). Enva la seal a un motor paso
a paso, el puerto y el puerto_ALIGN_Van.El motor paso a paso mueve en un paso en el sentido de las
agujas del reloj o en sentido contrario a las agujas del reloj como se indica.
2. Una tarea task_ReadRange es para medir el front-end gama de coche. La tarea se deshabilita todas las
interrupciones como es entrar en una seccin crtica. Necesitamos la medicin en tiempo real.
Port_ReadRange encuentra d.
3. Task_Speed obtiene la lectura de puerto en un puerto port_speed. Tarea enva v, mediante el countO
countN y el intervalo entre la primera y N"1 la rotacin.
4. Tarea _RangeRate enva el rangeNow. Se estima que el error final en el mantenimiento de la estabilidad
de cadena de task_ReadRange salida. Se estima que del error para mantener la velocidad del vehculo
desde el task_salida de velocidad. Genera tanto valores de error para su uso por el sistema de control del
algoritmo adaptativo. Port_Speed se conecta al sistema de velocmetro de la DAS, que muestra speedNow
tras la correspondiente funcin de filtrado. Port_RangeRate transmite el streaming speedNow tambin a
otros coches tambin. Ahora, tarea calcula el rango y la tasa de errores y transmite
tanto rangeNow y speedNow.

S
Los sistemas integrados

5. Task_Algorithm ejecuta el algoritmo adaptativo principal. Que las entradas son como sigue. Recibe
aportaciones de task_RangeRate. Los resultados de tarea son eventos al puerto_de acelerador y freno.
Mariposa_puerto atribuye al actuador de vaco motor paso a paso. Despus de un retardo, el ciclo comienza
de nuevo desde el task_Align. Lee el estado de Port_Freno de esta y otras secuencias de coches.

Cuadro 12.3 Lista de BCC 1 Funciones y tareas IPCs objetos de las clases se muestra en la
figura 12.5
HCCl
Funcin de la
tarea

BCC / Prio
ridad

Lask_Align

101

Iusk_readGama

103

Iask .Velocidad

105

Tusk
Rate

.Rango-

Iask_
Algoritmo

107

Accin

Empieza el evento y enviar la seal a


puerto y puerto_ALIGN_van
Deshabilitar las interrupciones, recibe
seal desde el puerto. El puerto se activa
un radar de parpadear, registros de tiempo
de activacin, obtiene la hora de la
deteccin de la seal de radar reflejadas y
encuentra diferencia horaria, deltaT.
Habilitar las interrupciones.
Caso port_speed para iniciar un mensaje
de inicio del contador, ahora son ms finos
y esperar el 10 recuentos del nmero de
giros de rueda. Salidas desde el puerto de
eventos deltaT.
Se calcula rangeNow. Obtenga preset
frontal del automvil y stringRange gama
de memoria y comparar. Obtenga
velocidad de consigna, v^; compararla con
la velocidad actual speedNow.

109

IPCs
Pendiente

IPCs
Publica
do

Restablece
r

Alinear DeltaStep,
Paso
Gama

Paso

Velocid
ad

SpeedNow

Alinear

Velocidad

ACC
(i) obtener errores de velocidad y alcance
y ejecutar el algoritmo de control
adaptativo, (ii) obtener errores de otros
vehculos a travs del puerto_RangeRate.
(iii) otros vehculos Port_Estado de freno,
(iv) se presente la posicin del acelerador,
(v) enviar la salida, throttleAdjsut al
puerto.El Acelerador. (vi) se enva una
seal al puerto_freno en caso de frenado
de emergencia
Es necesario, (vii) Puerto_Brake
transmite la accin necesaria para
otros vehculos tambin.

ACC

Input

AvgTire
Circum,
Tiempo-diff,
DeltaT,
Cadena
Gama,
Velocidad,
Cruise
N_rotation

Salida

DeltaT

RangoError,
VelocidadError,
Gama
Velocidad

RangoMariposaError,
Ajustar,
Velocidad- Emergencia
Error,
Todos los
puertos_
RangeRate
Valores y
Freno_puerto
Los Estados,
VehiclelD,

"tarea bsica con una tarea de cada prioridad y solo la activacin. Se llama BCC I (clase I) de conformidad bsica

> ']

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

585

Task_algoritmo genera salida para la accin del CAC. Puerto de salida para seales de control genera eventos
para un puerto con una mariposa. Las seales en este puerto, Port_acelerador, se calculan de la siguiente manera:
Un algoritmo ajustable, A. obtiene los insumos de la velocidad "velocidad" y delantera-objeto rango 'Rango' ,
as como el desconocido y perturbaciones desconocidas, P_UNKNOWN y PJKnown. Ajusta la seal de salida
al puerto_Mariposa. Un algoritmo, B, calcula el ndice de rendimiento IP. Un algoritmo, C, compara la IP con
un conjunto dado de valores de IP. Algoritmo D es como por el control adaptativo, que adapta la salida de
C. C enva los nuevos parmetros que se adaptan por A. La Figura 12.15 muestra un modelo de sincronizacin
de tareas del CAC y los semforos.
2: Eventos

Task_Align
1 :Evento9: SigReset

ISR_Align

!SR_van

4: SigRange

Task_ReadRange

3:Evento
10-EvenK
Freno de ISR

5: Evento

6:Sigspeed

7:SigACC

8: Eventos

Fig. 12.15 Modelo de sincronizacin de tareas del CAC

12.3.6 Implementacin de software de ACC


El CAC el software para su uso en automviles primero deben estar certificadas por un organismo autorizado para
emitir dicha certificacin. Hemos visto que OSEK OS estndar es necesario [Artculo 10.2]. Slo aquellas
funciones que MUCOS VxWorks o adherirse a OSEK debe ser utilizado. La codificacin de software IEC 61508
parte 3 y MISRA C versin 2 (2004) las especificaciones de las normas de seguridad y codificacin de idioma debe
utilizarse [Misra es sinnimo de fiabilidad de la Asociacin de la industria del motor.) MISRA C especifica un
conjunto de reglas para ser utilizado mientras que la codificacin en C.
MISRA-C es un estndar para el software de lenguaje C y define las directrices para sistemas de automocin.
MISRA-C versin 2 (2004) 141 reglas de codificacin especificado y dio una nueva estructura para C. detalles
pueden ser encontrados en http://www.misra.org.uk. La Figura 12.16 muestra importantes normas y estndares de
codificacin MISRA-C.

Fig. 12.16 importantes normas y estndares de codificacin MISRA-C

Los sistemas integrados

A continuacin se examinan algunas de las reglas. Su abeto.si la regla es que todos los C los cdigos utilizados
en los automviles deben ajustarse a la norma ISO 9899 estndar de extensiones de C y no debe permitirse. El
artculo 43 no permite la utilizacin de conversin implcitos que pueden provocar una prdida de informacin.
Regla nmero 50 no permite la desigualdad o igualdad pruebas lor las variables de punto flotante. Clculos de
punto flotante : sufrir errores de redondeo. La lgica para la introduccin de esta norma es el siguiente: considerar
"si 1(1/3) * 3 = 11 entonces ..." 1/3 = 0.33333 con 3 o 4 en el ltimo dgito y el resultado siempre es incierto. Regla
nmero 65 no permiten el uso de nmeros de coma flotante como un contador de bucle. El artculo 101 no permite
la utilizacin de aritmtica de punteros. Es similar a la regla en Java. El artculo 118 no permite la asignacin de
memoria dinmicamente a un montn. Asignacin dinmica tiene riesgo de utilizar la asignacin de la memoria
adicional que est disponible en el sistema, lo que puede provocar prdidas de memoria.
Ya hemos leamt VxWorks (Seccin 9.3). Utilicemos VxWorks para comprender la aplicacin del cdigo para
el sistema ACC. Para demostrar la aplicacin del CAC, veamos la aplicacin de VxWorks y cmo nos adaptamos
OSEK en los siguientes cdigos ejemplar (por ejemplo, 12.2).
1. Utilizar CCO I tipo de tareas, como se muestra en el cdigo de ejemplo de aplicacin VxWorks 12.2.
Definimos cada tarea de prioridad diferente y activar slo una vez en los cdigos.
2. No utilizar colas de mensajes.
3. No utilice la creacin y supresin de la tarea.
4. Utiliza semforos como evento bandera slo con tareas no tener tiempo de ejecucin eliminacin o
creacin de estos.
5. Utilice MISRA C reglas de codificacin.
6. Utilice deshabilitar las interrupciones cuando una tarea o funcin entra en la seccin crtica y habilitar las
interrupciones al salir de la seccin crtica.

Ejemplo 12.1.
1. # incluir "vxWorks.h" /* incluyen VxWorks funciones. */
# Incluir "semLib.h" /* se incluyen la biblioteca de funciones de semforo. */
# Incluir "taskLib.h" /* se incluyen la biblioteca de funciones multitarea. *1
# Incluir "sysLib.c" /* incluyen biblioteca del sistema para las funciones del sistema. */
#include "sigLib.h" / * inicializar el componente del ncleo para funciones de seales. *1
2. I* Set system clock rate 10000 ticks por segundo. Cada 100 ,nosotros por
garrapata*/ sysClkRateSet (10000);
3. /* declarar e inicializar los parmetros globales. */
unsigned byte VehiclelD; /* declarar este auto ID. */
= numCars esttica /* del nmero de automviles en la cadena que debe desplazarse a velocidad de crucero. */
Static _N bytes sin signo = rotacin
/* Inicializar el nmero de rotaciones necesarias cuando la bsqueda de la
velocidad. */
Static int avgTireCircum = ...;/* Inicializar media circunferencia de liras en mm. */
4. I* Inicializar la cadena Gama = Separacin para mantenerse entre los dos coches en la cadena en mm.
Inicializar la velocidad de crucero. */
/* Todas las distancias estn en mm, velocidades en kin/hr y tiempo en nanosegundos, a menos que se
especifique lo contrario. */
Static int stringRange = ...; /* En unidad de mm */ int = ... CruiseSpeed esttico;/* en unidad de km/hr */
Flotacin esttica unitChange = 3600000.0; /* Km en 1 mm dividido por horas en un nanosegundo. */ float
permittedSpeedError =...;/* en unidades de mm/ns error pemiitted en velocidad. Previene oscilaciones en el
sistema de control. *1
Esttico alineacin boolean = false; /* declarar la alineacin = false para iniciar la alineacin de transmisor de
radar. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

5. /* otras variables. */
*paso byte esttico; I* motor de pasos paso ngulo en grados. */
* deltaStep estticos byte = 0; /* motor de pasos paso cambiar el ngulo en grados. *1
/* la diferencia de tiempo entre la seal emitida y la seal reflejada desde front-end coche. rangeNow est
presente gama en mm. Es timeDiff multiplicado por speedNow despus de una funcin de filtro de
aplicacin. *1 *timeDiff unsigned long esttico; int *rangeNow esttico; esttica unsigned long *deltaT; /* n
intervalo de tiempo para la rotacin en ns. *1
6. /* declarar punteros para las variables de rango, el rango de error ahora', velocidad, velocidad de error
ahora. */
Int rangeError, speedError, rangeNow = 0. SpeedNow =0; I* son las velocidades en km/hr y gama en mm. */
7. /* declarar matrices de tamao nmero de automviles, numCars. Muchos de estos automviles funcionan
como una cadena. Declarar, RangeErrors SpeedErrors brakeStatus, velocidades, rangos, para todos los coches.
*/
[numCars brakeStatus booleano];
Int RangeErrors [numCars], rangos [numCars], [numCars SpeedErrors], velocidades [numCars];
[numCars emergencia booleano]; I* declarar una variable para el mensaje de emergencia enviado a Port_freno
de automvil Nlh.
*1
Int *throttleAdjsut; /* para declarar las variables de parmetros de ajuste del acelerador */
8.
I* declarar
otras variables.
*! 12.3 tarea prototipos de funcin. */
9. /*
toda la tabla
Void task_Alineacin (SemlD SigReset. SemlD SigAlign. byte byte *paso, *de!taStep); /*tarea para alinear el
motor de pasos en el front-end alquiler de vista. :;7
\oid task_ReadRange (SIG1D SigAlign, SIG1D SigRange. unsigned long *timeDijf): /*tarea para recibir el
timeDiff usando el radar para calcular rangeNow. */
Void task_Speed (SIGID SigRange. SIGID SigSpeed, unsigned long *deltaT); /*tarea para recibir el deltaT
utilizando la rueda del contador temporizador para calcular speedNow ami. *1
Void task_range_Rate (SIGID SigSpeed. SIGID SigReset, SIGID avgTireCirciun SigACC. int, unsigned byte
N_rotation. int . ini stringRange CniiseSpeed, unsigned long * tiempo-Dijf, unsigned long *deltaT. int * rango
de error '^speedError, int, int *ninge-Ntw, int :>velocidad-Ahora); /*lask para calcular rangeNow. speedNow. rangeError,
speedError. ,:7
Void task_Algorithm (SIGID SigACC. SIGID SigReset. Boolean numCars brakeStatus [int], [numCars
RangeErrors intervalos [int]], int SpeedErrors numCars {numCars], int velocidades [numCars], [de
emergencia] numCars booleano, unsigned byte); /* VehiclelD declarar la matriz para el mensaje de
emergencia enviado a Port_freno de automvil Nlh. */
Int *throttleAdjsut; /* para declarar las variables de parmetros de ajuste del acelerador */
10. /* declarar toda la tabla 12.3 identificadores de tareas, prioridades, opciones y Stacksize. Deje ID
inicial. Hasta generado (iniciados) ser ninguno. No hay opciones y Stacksize = 4096 para cada una de las seis
tareas. */
Int taskiAlignlD = Error; int task_AlignPriority - 101; int task_AlignOptions = 0; int task_AlignStackSize =
4096;
Task_int ReadRangeID = Error; int task_ReadRangePriority = i03; int task_ReadRangeOptions = 0; int
task_ReadRangeStackSize = 4096;
. S- ,ih
Task_int SpeedID = Error; int task_SpeedPriority = 105; int task_SpeedOptions = 0; int task_SpeedStackSize
= 4096;
Task_int RangeRateID = Error; int task_RangeRatePriority = 107; int task_RangeRateOptions = 0; int

588

Los sistemas integrados

Task_RangeRateStackSize = 4096;
Task_int AlgorithmlD = Error; int task_AlgcrithmPriority = 109; int task_AlgorithmOptions = 0; int
task_AIgorithmStackSize = 4096;
11. /* crear e iniciar (Spawn) todas las seis tareas de la tabla 12.3. */ task_AlignlD = taskSpawn ("
ttask_Align", task_AlignPriority, task_AlignOptions, task_AlignStackSize, void (*task_Alineacin)
(SemlD SigReset, SemID SigAlign, byte *paso, byte *deltaStep), 0, 0,0, 0, 0, 0, 0, 0, 0, 0).
Task_ReadRangelD = taskSpawn ("_ttask ReadRange", task_ReadRangePriority, task_ReadRangeOptions,
task_ReadRangeStackSize,
void
(*task_ReadRange)
(SIGID SigAlign, SIGID SigRange, unsigned
long *timeDiff), 0,0,0,0,0,0,0,0,0,0);
WskJSpeedID=taskSpawn (" ttask_speed", task_SpeedPriority, task_SpeedOptions, task_SpeedStackSize, void
(*task_Speed) (SIGID SigRange, SIGID SigSpeed, unsigned long *deltaT), 0,0,0,0,0, 0,0,0, 0,0);
msk_RangeRaieID = taskSpawn (" ttask_range_Rate", task_task_RangeRateOptions RangeRatePriority,
"preguntar_
RangeRateStackSize,
void
(*task_range_Rate)
(SIGID SigSpeed, SIGID SigReset, SIGID avgTtreCircum
SigACC,
int, unsigned
byte
N_rotation,
int , int stringRange CruiseSpeed, unsigned long * tiempo-Dijf, unsigned long *deltaT, int * Error de rango, int
*speedError, int *rangeNow, int *speedNow), 0, 0, 0, 0, 0, 0, 0. 0, 0, 0).
Iask_AlgorithmID = taskSpawn ("ttask_Algorithm'\_task_AlgorithmOptions AlgorithmPriority, tarea, tarea
AlgorithmStackSize, void (*tarea_ Algoritmo) (SIGIDSigACC. sig_ID ,boolean SigReset numCars brakeStatus
[int], [numCars RangeErrors], int intervalos [int] numCars numCars SpeedErrors [int], [Velocidad], boolean
nunCars [de emergencia], unsigned byte numCars VehiclelD), 0,0, 0,0,0, 0, 0,0, 0,0);
12. /* declarar identificadores y crear semforo binario banderas de evento. *1
SIGID SigRange SigSpeed SigAlign,,. SigACC, SigReset; /* declarada para la tabla 12.3 cinco tareas.
13. /* Cree los semforos binarios tomadas en el FIFO como vaco para empezar. */
= semBCreate SigAlign (SEM_Q_FIFO, SEM_EMPTY);
= semBCreate SigRange (SEM_Q_FlFO, SEM_EMPTY);
= semBCreate SigSpeed (SEM_Q_FIFO, SEM_EMPTY);
= semBCreate SigACC (SEM_Q_FIFO, SEM_EMPTY);
= semBCreate SigReset (SEM_Q_FIFO, SEM_EMPTY);
14. /:declaro funcin para iniciar un temporizador RTC en el puerto_alcance. "7 void
RTCtimer_PORT_Van_Start () {

15. I* declarar una funcin para iniciar un temporizador RTC en el puerto_speed. */ void
RTCtimer_port_speed_Start () {

16. /* declarar una funcin para leer tiempo de 64 bits desde un RTC. *1 unsigned long timer_gettime
(&RTC) {
.1*
};

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

I 589.

17. I* Definir una macro para calcular el tiempo entre la instancia cuando el bit de control = true y el indicador
de estado = true.
*/
* boolean CB; /* */ boolean bit de
control * SF; / * indicador de estado. */
*Cb =0; /* Control bit = 0; */
*SF = 0; /* Indicador de estado = 0;*/
Unsigned short * RTC; /* puntero a un reloj de tiempo real. */
#define calcular_unsigned long Timelnterval (unsigned short * RTC, CB, boolean boolean * *SF) ( unsigned
long timelnstanceO, timerlnstancel;
Si bien (*CB != 1 && *SF = 0) { J; /* ESPERE para leer las instrucciones para el
temporizador. */ timelnstanceO = timer_gettime (&RTC); /* encontrar tiempo inicial a
iniciar en el temporizador *1 mientras (*SF ! = l) { |; /* ESPERE para el sensor indicador de
estado para ser verdad *1 timelnstancel = timer_gettime (&RTC); /* encontrar tiempo inicial
a iniciar en el temporizador */
*sf =0; *Cb =0.
Retorno (timelnstancel - timrlnstanceO);
) I* final de Macro para calcular el intervalo de tiempo entre dos instancias especificadas por CB y SF,
convirtindose en verdaderos. */
18. /* Definir una macro para calcular el intervalo de tiempo entre la instancia de control deltaT cuando ejecute
bit = true y
Instancia de N'h entrada de recuento. */
CR boolean; /* Control ejecute bit. */
countlnput boolean; / *indicador de
estado. */
*CR = 0; /* Control ejecute bit = 0; */
*countlnput = 0; /* countlnput valor inicial. */
#define unsigned long DelT (unsigned short &RTC. Boolean *CR, N_rotation, booleano *
contar!ntroduccin)( unsigned long timelnstance = 0; n = 0 byte por byte; (N =0; n < N_rotacin; N++) {
Si bien (*CR != 1 && ^countlnput != 0) { };/*' esperar conteo de entrada true. */ +=
timelnstance timer_gettime (&RTC); /* encontrar tiempo inicial a iniciar en el
temporizador */
:5countInput =0; /*countlnput Reset. Se establecer en el inicio de la rotacin siguiente. */

|; :!:countInput =0; retorno


(timelnstance);

) /* final de Macro para calcular el intervalo de tiempo para N entradas de recuento. */


19. /* declarar macro para enviar un byte para el ajuste del ngulo de paso al
puerto_Align. *1 unsigned short * Puerto_Align; /* declarar un puntero para el
puerto_Align. */
);
final deQut_Alineacin
Macro para envo
de byte parapaso)
ngulo
paso alen
puerto_Align.
*/
# /*Definir
(&Port_Align,
/ *de
Cdigos
lenguaje ensamblador
para el motor de pasos de
20.
rutina./* Declarar Macro para encontrar timeDiff desde Port_alcance. */
* /
Unsigned
short RTC_PORT_Van =...;/* Declarar Direccin de RTC en el puerto_alcance. *
/ RTCtimer Port_Van_Start ();
#definir Rango (unsigned short * Puerto_alcance, unsigned long * timeDiff) ( unsigned short * RTC_PORT_Van
= ..................................................................... ; /* Declarar Direccin de RTC de Port_alcance.
*/

! 590 i

Los sistemas integrados

IntLock (): /*deshabilitar las interrupciones. */


/ * Cdigos en lenguaje ensamblador para que van de rutina para iniciar la transmisin de radar haciendo un bit
de control CB = 1 * /
*CB = 1;
*timeDiff = calcular_TimeInterval (&RTC_PORT_oscilando, &CB, &SF); intUnlock (); /* Habilitar las
interrupciones. */
) /* final de Macro para encontrar el intervalo de tiempo de las seales de radar reflejadas. */
21. /* Declarar Macro para encontrar deltaT desde port_speed. */
Unsigned short RTC_port_speed =...; /* Declarar Direccin de RTC en port_speed. * /
RTCtimer_Port__Speed_Start ();
#define la velocidad (unsigned short * port_speed, unsigned long * deltaT) (
Unsigned short * RTC_PORT_Van = .......... ; /* Declarar Direccin de RTC de Port_alcance.*/
IntLock (); /^deshabilitar las interrupciones. */
/ * Cdigos en lenguaje ensamblador para velocidad de rutina para empezar a contar la rotacin de los
neumticos entradas de recuento haciendo un bit de control CR = 1 * /
*CR = 1;
*deltaT = DelT (&RTC_port_speed, &CR. N_rotation, &countlnput);
intUnlock (); /* Habilitar las interrupciones. */
) /* final de Macro para encontrar el intervalo de tiempo para el N-Recuento de entradas. "/

22.
# Definir filtro flotante (float_speed *speedNow calculatedSpeed, int, float permittedSpeedError) (/* Cdigos
para filtrar la velocidad calculada. Si el valor calculado en mm/ns est dentro del lmite de
permittedSpeedError plus minus, no cambian; else modificarlo con el nuevo valor. */ un flotador;
A = (float) (speedNow/ unitChange);
Si (calculatedSpeed > + permittedSpeedError I I calculatedSpeed < - permittedSpeedError) {return
(calculatedSpeed); 1 Mas el retorno (A).
) /* Fin de macro para el filtrado de la velocidad calculada para evitar las vibraciones y oscilaciones en el control
del vehculo. * /
23.
#define RangeRate (unsigned short * Puerto_RangeRate, int *speedNow. int *rangeNew :5speedError, int, int *rangeError,
unsigned byte VehiclelD) (

/ ^General cdigos para enviar al puerto_RangeRate y transmitir el alcance y parmetros de velocidad y


vehiclelD. Port_RangeRate enva tambin *speedNow para mostrar en el velocmetro en port_speed. /

); /* final de Macro para transmitir el alcance y parmetros de velocidad a travs del puerto_RangeRate. */
22. A 26. /* Declaracin de cdigo para otros pasos especficos para diversas funciones */

/* Fin de THF-codcasfor creacin de tareas, semforos, tubo de cola de mensajes, tareas, y las variables y todas
las declaraciones de funcin necesarios */
27.

/* Inicio de cdigos para task_Alineacin. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

591

Void task_Alineacin (SemID SigReset, SemID SigAlign, byte *paso, byte *deltaStep) {
28.
Mientras que (i ) f /* Inicio de bucle while. */
/* cuando se inicia el ciclo del semforo es dada. Espere. */
(SigReset semTake, WAIT_FOREVER); /* ESPERE PARA CICLO Restablecer evento de abanderamiento.
*/
28. /* Los cdigos para enviar el paso a la direccin de puerto_alcance. *
*paso = *paso + *deltaStep;
Out_Alineacin (&Port_Align, *Paso);
semGive (SigAlign)".
}; I* final del bucle while. */
} /* Fin de task_Alineacin. */
29. I* Inicio de cdigos para task_ReadRange. */
Void task_ReadRange (SIGID SigAlign, SIGID SigRange, unsigned long *timeDiff) {
30. /* de las asignaciones iniciales de las variables y la tarta de bucle infinito de instrucciones que se
ejecutan una sola vez *1 unsigned short puerto esttico que van = ....; /* declarar puntero a Port_alcance. */

31. Mientras que (I) {/* iniciar un bucle while infinito. Tambin podemos utilizar siempre en lugar de
mientras que (I). */
32. *esperar SigAlign / cambio de estado a sem_semGive FtfLL por
funcin. */ semTake (SigAlign, WAIT_FOREVER);
/*enviar la seal al puerto_alcance. El puerto se activa un radar de parpadear, registros de tiempo de
activacin, obtiene la hora de la deteccin de la seal de radar reflejadas y encuentra diferencia
horaria, timeDiff. Habilitar las interrupciones. */
Rango (& port_oscilando, &timeDiff);
);
Yo SigRange semGive):
H
33. } /* final de los cdigos para task_ReadRange. */
34. /* Inicio de cdigos para task_speed. *1
Void task_Speed (SIGID SigRange, SIGID SigSpeed. unsigned long *deltaT) {
35. /* Las asignaciones iniciales de las variables y pre-bucle infinito instrucciones que se ejecutan una sola
vez */ esttico Puerto unsigned short_Speed = ...;/* declarar puntero a port_speed. */
36. Mientras que (1) //*' tarea de inicio de
bucle infinito. */ semTake (SigRange,
WAIT_FOREVER);
/* Los cdigos para re ving el deltaT utilizando el temporizador y contador de ruedas para posteriormente
calcular speedNow. */ Velocidad (& port_speed, &deltaT); semGive (SigSpeed);
F ; l * Enid del bucle while. */
37. } /* Final de cdigos para task_Velocidad */
Y***#***#*J!sjt!*sI;*j({.-}:***4;%sf****4:**H:*4:**"***4tic5":j|s*^**** + *5f;$5*****4;***********-i!4:*******s

592

Los sistemas integrados

/* Inicio de cdigos para task_range_Rate. */


Void task_range_Rate (SIGID SigSpeed, SIGID SigResei, SIGID avgTueCircum SigACC. int, unsigned
byte_N CruiseSpeed roiation. int, int, unsigned long stringRange * lisne-diff. unsigned long *deltaT, int * Error
de rango, int *speedError, int *Rango ahora, int *Velocidad-Ahora) { static unsigned short Port_RangeRate
Declarar puntero a Port_alcance. *1

."9. Mientras que (I) { /* Iniciar la tarea bucle infinito . */ semTake (SigRange, WAIT_FOREVER);
40. /* .Cdigos para calcular rangeNow, speedNow, RangeError, speedError. */
*speedNow = (int) (unilChange * filter_speed ((float) (avgTireCircum * N_rotation) / (flotacin) (*dekaT), int
*permittedSpeedError speedNow, flotacin)));
*rangeNow = (*speedNow/unitChange) * (*timeDiff)/2.0; /* se dividen por 2 porque la seal reflejada viaja
dos veces la distancia en mm/ns. */
*speedError = cruiseSpeed - *SpeedNow;
RangeRate (& port_RangeRate, *speedNow, *rangeNow, *speedError, *rangeError, Vehculo(D); / *enviar los
parmetros para la transmisin a otros vehculos y port_speed para pantallas. *1 Si (alineacin 1= TRUE)
(semGive (SigReset);
41. /* Cdigo de bucle de tareas de prioridades 101,103, 105, en el que los valores de rangeNow se calculan a
distintos valores de paso cambiando deltaStep y, finalmente, en esa instancia, la alineacin se declara como true,
para rangeNow es mnimo. Front-end vehculo est ahora en la lnea de visin. */

( else (SigACC semGive); /* despus de la alineacin es perfecta, el algoritmo de control es enviada la bandera
del evento. */ /; i * final del bucle while. */
42. ) / Final de cdigos para task_range_Rate. */
I* Inicio de cdigos para task_ALGORITHM. */
Void task_Algorithm (SIGID SigACC, SIGID SigResei, booleano brakeStatus [numCars]
En; RangeErrors [nuniCars], int intervalos [int SpeedErrors numCars], [numCars). int velocidades [numCars]
[numCarsJ emergencia booleano, unsigned byte) { VehiclelD

43. Si bien (!)(/* Iniciar la tarea bucle infinito . */ semTake (SigACC, WAIT_FOREVER);
44. /* General cdigos para obtener errores de otros vehculos a travs del puerto y otros vehculos
RangeRate_PORT_estados de freno a travs del puerto_Brake. */

45. I* General cdigos para leer la posicin de la mariposa del acelerador_puerto. *1

46. /* Los cdigos de velocidad de crucero adaptable y el algoritmo de cadena de cdigo para mantener la
estabilidad del algoritmo adaptativo para generar la seal throttleAdjsut apropiado al puerto_Throttier */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

! 593

47. /* Los cdigos de accin, en caso de emergencia PortBrake = true. Freno_puerto transmite la
accin necesaria para otros vehculos tambin. */
Si (emergencia InumCars] = =1) |
) (SigACC semGive else); /* despus de la alineacin es perfecta, el algoritmo de control es enviada
la bandera del evento. */
48. /: / * final del bucle while. */
49. } /* Final de cdigos para task_ALGORITHM. */
F % * * 4: $ si * * * * * SFC

* * * * * * * * * * * * Jj: * * * * * * * * # * * * * * * * * * * * * * * * * * * * * * * * * * * * * *

12.4 Estudio de caso de un sistema incorporado de una smart card


La Seccin 1.10.3 introdujo un sistema de tarjeta inteligente de hardware y software. Seccin 12.4.1 da los
requisitos y el funcionamiento del sistema de comunicacin de la tarjeta inteligente. Seccin 12.4.2 da el diagrama
de clase. Figura 1.13 mostr smart card-componentes de hardware del sistema para un contacto menos inteligentes.
Las secciones 12.4.3 y 12.4.4 dan la arquitectura de hardware y software y modelo de sincronizacin. Seccin
12.4.5 proporciona los cdigos de ejemplar.

12.4.1 Requisitos
Asumir una tarjeta inteligente sin contacto para las transacciones bancarias. Ojal no magntico. [La tarjeta anterior
utiliza una banda magntica para mantener la memoria no voltil. Hoy en da, es la memoria EEPROM o Flash
que se utiliza para contener los datos de la aplicacin no voltil.] Requisitos del sistema de comunicacin de tarjetas
inteligentes con un host puede ser entendida a travs de un requisito-tabla dada en la Tabla 12.4.

12.4.2

Diagrama de clases.

En la tabla 12.4 figuran las funciones y tareas diferentes. Una clase abstracta es Task_CardConimunication. La
Figura 12.17 muestra el diagrama de clase de task_CardCommunication. Un ciclo de acciones y sincronizacin de
host de tarjeta en la tarjeta nos conduce al modelo Task_CardCommunication para tareas del sistema. Se comunica
con el sistema de tarjeta host host para identificar y autenticar a s mismo en el host. El ISRI_PORT_IO.
RMC2_PORT_IO y !SR3_PortJO son interfaces para las tareas. (una clase da la implementacin de los mtodos
de la interfaz rutinas.] La tarea_Appl. task_PW. task_re?.dPort y resetTask son los objetos de task_Appl. Task_PW,
Task_ReadPort y TASK_Reset, respectivamente. Estas clases son las clases extendidas de clase abstracta
tarea__CardCommunication.

Fig. 12.17 Los diagramas de clase de task_CardCommunication

Los sistemas integrados

En la tabla 12.4 Requisitos del sistema de comunicacin de tarjetas inteligentes con un host

Requisito
Finalidad

Descripcin

1. Habilitar la autenticacin y verificacin de la tarjeta y el titular de la tarjeta por un host y


habilitacin de GUI en mquina host para interactuar con el tarjetahabiente/usuario para
las transacciones; por ejemplo, las transacciones financieras con un banco o tarjeta de
crdito.
Sistema
1. La tarjeta se inserta en la mquina host. Las radiaciones desde el host activar una bomba de
Funcionami
carga en la tarjeta. La bomba de carga alimenta el circuito del SoC, que consta de la tarjeta
ento
de procesador, memoria, ahora son ms finos, manejador de interrupcin y PortJO.
2. Al encender el sistema, las seales de reset resetTask para empezar. La resetTask enva los
mensajes- y requeslHeader requeslSlart espera tarea task_ReadPott.
3. Task_ReadPort enva solicitudes de identificacin de host y lee a travs del PortJO el hostmensaje de identificacin y solicitud del host para la tarjeta de identificacin.
4. La tarea_PW PortJO enva a travs de la identificacin de la tarjeta solicitada despus de
que el sistema recibe la identidad del host a travs de PortJO.
5. La tarea se ejecuta entonces Appi_API requerido. El mensaje requestAppIClose cierra la
aplicacin.
6. La tarjeta puede ser retirado, y todas las transacciones entre el usuario/titular de tarjeta se
Entradas
realiza ahora a travs de la GUI utilizando el host en el panel de control (pantalla o pantalla
tctil o pantalla LCD).
Seales,
1. El encabezado recibido y mensajes en 10 puertos PortJO desde el host a travs de la antena.
Eventos
1. El encendido por radiacin-Alimentacin de la bomba de carga de la tarjeta de alimentacin,
anti
una seal para iniciar el programa de arranque del sistema en resetTask.
notificacio
2. Tarjeta requestHeader inicio mensaje a task_ReadPort desde resetTask.
nes
3. Solicitud de autenticacin de host requestStart mensaje a task_ReadPort desde resetTask
para permitir peticiones de PortJO.
4. Mensaje de verificacin UserPW (notificacin) a travs PortJO desde el host.
5. Solicitud de cierre de la solicitud de tarjeta de mensaje a PortJO requestAppIClose.
Salidas
Encabezados y mensajes transmitidos a travs PortJO antena.
Parmetros de Ningn panel de control est en la tarjeta. El panel de control y GUIs activar en la mquina
host (por ejemplo,
diseo
del En ATM o lector de tarjeta de crdito).
1. Fuente de alimentacin de energa y disipacin de energa: la radiacin powered contactless operation.
panel
de
2. Tamao de cdigo: Cdigo generado de tamao debe ser ptimo. El sistema de tarjeta de
memoria necesita no debe superar los 64 kB de memoria. Uso limitado de tipos de datos;
control
matrices multidimensionales, largo entero de 64 bits y canotaje puntos y un uso muy
limitado de los identificadores de error, excepciones, seales, serializacin, depuracin y
perfilado.
3. Sistema de Archivo(s): Tres capas de sistema de archivo para los datos. Un archivo para
el archivo maestro para almacenar todos los encabezados de los archivos. Un cabezal tiene
cadenas para el estado de los archivos, las condiciones de acceso y bloqueo de archivos. El
segundo archivo es un archivo dedicado a mantener un archivo de agrupacin y cabeceras
de archivos elementales el sucesor inmediato del grupo. El tercer archivo es el archivo
elemental para contener el archivo de encabezado y datos fiie.
4. Gestin de archivos: Existe un archivo de longitud fija o variable de gestin gestin con
longitud de archivo de cada archivo con un desplazamiento predefinidos.
5. Microcontrolador: hardware genera distintas direcciones fsicas codificado para el
programa y los datos de direcciones lgicas. Una vez protegido el espacio de memoria de
escritura.
6. Validez: el sistema est incorporado con fecha de caducidad, tras la cual la autorizacin
IContd)de
la tarjeta a travs de los hosts se desactiva.
7. Ampliacin: la fecha de caducidad del sistema es ampliable mediante transacciones y la
autorizacin de la unidad de control maestro (por ejemplo, banco servee).
8. Rendimiento: menos de 1 s para transferir el control de la tarjeta a la mquina host.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

Requisito

Descripcin

9. I'rocess plazos: Ninguno.


10. Interfaces de usuario: Ai mquina host, grfico de la pantalla LCD o la pantalla tctil en
la pantalla LCD y comandos para el titular de la tarjeta (card), transacciones de usuario.
11. Costo de ingeniera: USS 50000 (asumido).
12. Coste de fabricacin: USS 1 (supuesta).
Prueba y
1. Probado en diferentes versiones de la mquina host para fallar la prueba de tarjeta de
comunicaciones de host.
Validacin
Condiciones
1. Task_CardCommunicalion es una clase abstracta de la que se extendi a la(s) clase(s) se derivan de leer
el puerto y autenticar. Las tareas (objetos) son las instancias de las clases Task_appl,
Task_reset_task_ReadRange ReadPort y tarea.
2. Task_interfaces ReadPort ISRI_PORT_IO.
3. La tarea_PW es objeto de task_PW e interfaces ISR2_PORT_10. Task_appl interfaces ISR3_PORT_IO.

12.4.3 Arquitectura de hardware y software


Hardware de la tarjeta inteligente se introdujo en la seccin 1.10.3. La Figura 12.18 Muestra el hardware en el
interior de la tarjeta.

Fig. 12.18 hardware de la tarjeta inteligente


Software utilizando Java CardIN1 proporciona una solucin. |Ver 5.7.51 JVM ha construido en programador
de subprocesos. Ningn otro sistema operativo multitarea es necesario pues al usar Java porque todos los cdigos
de bytes de Java JVM de RIM en el medio ambiente. Java proporciona las caractersticas de soporte (/) de seguridad
utilizando la clase java.Iang.SeeurityManager). (ii) necesidades criptogrficas (paquete java.security*). Java
proporciona soporte para conexiones, datagramas, 10 arroyos y tomas de red. Mezcla de Java es una tecnologa
nueva en la que las aplicaciones nativas de la tarjeta ejecutar en C o C++ y aplicaciones descargables se ejecutan
en Java o Java CardIM. El sistema tiene OS Y JVM ambos.
Es un supuesto hipottico SmartOS so, en este ejemplo, como RTO en la tarjeta. Recuerde que un nombre de
funcin so similar es utilizado para comprender los fines idnticos a MUCOS SmartOS real pero tiene que ser
diferente de MUCOS. Su estructura de archivos es diferente. Tiene dos funciones: la funcin unsigned char [ ]
SmartOSEncrypt (unsigned char *applStr, tipo EnType) cifra segn el mtodo de cifrado, EnType = "RSA" o
"DES" algoritmo elegido y devuelve la cadena cifrada. La funcin unsigned char [ ] SmartOSDecrypt (unsigned
char *Str, tipo DeType) cifra segn el mtodo de desciframiento, DeType = "RSA" o "DES" algoritmo elegido y
devuelve la cadena descifrada. SmartOSDecrypt SmartOSEncrypt y ejecutar despus de comprobar las
condiciones de acceso de los archivos de datos que almacenan las claves, PIN y contrasea.
El cuadro 12.5 proporciona las tareas para el sistema operativo de la tarjeta, en este caso de estudio.

I 596

Los sistemas integrados

( ___

12.4.4 Modelo
sincronizacin

de

Las siguientes son las acciones en la tarjeta colocada cerca de la mquina host antena en una ranura de la mquina.
Paso 1: Recibir desde el host, sobre la insercin de la tarjeta, la radiacin de frecuencias portadoras o seales
de reloj en el caso de
Con la tarjeta de contacto. Extraer cobrar por el suministro de energa del sistema para el mdem, el procesador,
las Tabla
memorias
y de tareas, funciones y IPCs
12.5 Lista
Port_lO (tarjeta del puerto UART) dispositivo.
Prioridad

Accin

7. Yo

IPCs
Pendiente

Yo uncin

IPCs
Publicado

Cadena

sistema

o Cadena o sistema o salida de

entrada de host

ResetTask

Ninguno
Inicia el temporizador del
sistema garrapatas, crea
tareas, enva los mensajes
iniciales y suspende la
misma.

I:i'k_Read
I'TRN

Usk_PW

-l>k_App!

SigReset,
Mensajes
Desde
Espere resetTask
MsgQStart,
Suspenson, enva y recibe
MsgQPW,
mensajes de la cola de
MsgQAppl,
mensajes. Inicia la
MsgQApplaplicacin y busca el
Cerrar
permiso de cierre para
cerrar la aplicacin.
SemPW
Enva la solicitud de
contrasea de verificacin
de host cuando SemPW =
1.
SemAppl

host
Encabezado de peticin

SigReset,
MsgQStart

A la principal
llamada SmartOS

SePW

Funciones
SolicitudSmart
Contrasea
OS a cifrar,
Solicitud A/7/2 /.
descifrar, ApplStr SolicitudSmartOS -, Str, AppICIose
CercaPermitido

MsgQPW. SemAppl

RequestStart

SolicitudContrasea

MsgQAppl.

Cuando SemPW = 1.
Ejecuta el programa de
aplicacin.
Paso 2: Ejecutar cdigos para un arranque en reset resetTask tarea. Permtanos cdigo en una forma similar a los
cdigos de ejemplo 11.1 Para Firsttask. Los cdigos comienzan a ejecutar desde el principal y el principal crea e
inicia esta pregunta y comienza la SmartOS. Ah est el resetTask, que ejecuta en primer lugar.
Las medidas adoptadas por el modelo de sincronizacin de tareas son como sigue:
1. ResetTask es la tarea que se ejecuta como Firsttask en el Ejemplo 11.1. Se suspende definitivamente despus
de las siguientes: (a) Se inicia el temporizador para que el sistema las garrapatas, que se restablecen en I ms.
(b) crea tres tareas, task_ReadPort, task_PW y TASK_appl del sistema que se describen a continuacin (C)
para una tarea de espera, task_ReadPort, enva a una cola de mensajes, el encabezado de solicitud
MsgQStart requestHeader cadena. Este ltimo especifica el PIN asignado por el banco al usuario, (d)
tambin enva otra cadena requestStart una solicitud de PIN host al puerto I/O Port_IO para identificar el
host (e) publica un semforo bandera, SigReset, y suspende en s para que el control del sistema no vuelve
hasta otro reset.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

1597

2. Una funcin de macro ReceiveStr (&Str) utiliza la funcin void (*portIOdata portlOJSRJnput)' para
devolver una cadena de entrada Str. El 'portlO_ISR_input' recibe los caracteres uno por uno desde el
puerto de llamadas sucesivas. Asimismo, una funcin macro SendStr (&ApplStr) es utilizado por la
funcin void Port_OutStr (unsigned char [ | *applStr) para enviar una cadena de resultados.
portlO_ISR_Output enva un carcter al puerto.
3. Task_ReadPort slo comienza cuando un semforo SigReset es publicado por el resetTask. (a) task_ReadPort lleva el mensaje de la
cola MsgQStart y geles de la cola de mensajes pendientes, y requestHeader requestStart. Estas dos cadenas se cifra y se enva al puerto_IO, que lo transmite al host
mediante el transceptor o el mdem. Recibe mensaje de host hostStr a travs del transceptor. Especifica, por el host, el host hostStr PIN. Este PIN es el que se utiliza
para la autorizacin bancaria el PIN de la tarjeta, b) puestos un semforo SemPW bandera al esperando tarea task_PW si la tarea en ejecucin actualmente verifica
la hostPIN. Se espera un mensaje de la cola y recibe userPW MsgQPW despus del desciframiento de los puertos de entrada de da tos, de cadena (C) puestos
SemAppI semaphore, en caso de que el usuario contrasea almacenada en un archivo en la memoria EEPROM es verificado. Es un semforo SemAppI puestos
diferentes. Si se verifica que la contrasea de usuario. Enva al final de un mensaje de peticin de cierre en una cola MsgQA pplClose. Mensaje a la PortJO
requestApplClose y recibe la cadena cifrada de cierre "Permitido". Las tareas Eliminar en el desciframiento.

4. Task_PW despus del cifrado en la pendiente SemPW es enviar la cadena requestPW. Cuando toma SemPW, enva el requestPW en el
MsgQPW. task_ReadPort enviar al host a travs del puerto 10, el puerto_IO, a fin de identificar al usuario en el host.

5. Task_appl se ejecuta en teniendo el semforo SemAppI y ejecuta las operaciones. La operacin puede (i) modificar la contrasea de
usuario, (ii) imprimir mini declaracin de la cuenta bancaria del usuario, (iii) expulsar de efectivo necesarias desde el host, iv) la solicitud para aceptar los sobres
con efectivo, (v) solicitud de impresin foros de esta transaccin y (vi) Solicitud de transferencia a otra parte. Interacta a travs de task_ReadPort enviando los
mensajes a travs de la cola MsgQAppl.

El modelo de sincronizacin de tareas tambin se muestra en la Figura 12.19.

:Reset tarea task_ReadPortJ j j j task_PW


Sem
Reset Encabeza
do de solicitud j
j_ Solicitar inicio

Task_appl

Tiempo

Sem PW
Solicitud- |
Contrasea
MsgQPW

MsgQ appl.cerrar
Request.AppI
cerrar

SemAppI
RequestAppI
MsgQ Appl

Fig. 12,19 tareas y el modelo de sincronizacin


L.Vl.S Cdigos

ejemplar

Ejemplo 12.2 da el procedimiento de codificacin ejemplar para una aplicacin de esta tarjeta.

598

Los sistemas integrados

Ejemplo 12.2
1. /* las definiciones del preprocesador para el mximo nmero de eventos entre procesos para dejar que el
SmartOS asignar memoria para el caso de los bloques de control */
#define SmartOS_MAX_EVENTS 24/* permiten eventos IPC mximo 24 */
#define SmartOS_SEM_EN I/* permitir la inclusin de funciones de semforo en la aplicacin. */
#define SmartOS_Q_EN I/* permitir la inclusin de funciones de la cola de envo de los punteros de cadena de
tarea_ ReadPort * /
#define SmartOS_task_del_es = 0/* Deshabilitar la eliminacin de tareas por SmartOS al inicio. *1* / Final
de comandos de preprocesador para habilitar las funciones de la IPC SmartOS*/
2. /* Especifica todos los usuarios prototipo de la tarea de restablecer la funcin que es llamada por la funcin
principal y sea programada por SmartOS primero en el inicio. En el paso 11, estaremos creando todas las otras
tareas dentro de la tarea de restablecimiento. Recuerde: Esttico significa la asignacin de memoria permanente.
*/
Static void *taskPointer resetTask (void);
Static_STK_resetTaskStack SmartOS [resetTask_StackSize];
3. /* definir una variable pblica del servicio de tareas y funciones de distribucin */
Me SmartOS fino_TASK_idle_STK_SIZE 100 /* permiten la asignacin de memoria para un tamao de pila
de tareas en estado inactivo
Re 100*/
Mefine SmartOS_TICKS_PER_SEC 1000 / * Permita el nmero de tics 1000 por segundo. Un RTCSWT
x'malos interrumpir y, por lo tanto, marque cada 1 ms para actualizar cuenta. */
Mefine resetTask_Priority 1 /* definir la tarea de restablecimiento en la principal prioridad */
StackSize Mefine resetTask_ 100 /* definir la tarea de restablecimiento en tamao de la pila principal */
5TAF _En = 0; /*definir para la sealizacin de bandera de interrupcin del mdem para recibir un carcter. */
>TAF_Out = 0; /^definir la bandera de interrupcin de la seal de un mdem despus de enviar un carcter. */

* ----------------------------------------------------------------------------------------------------------------------- */

>. /* Prototipo definiciones para tres tareas para el coche cdigos de aplicacin
despus del restablecimiento. */ void task_ReadPort esttica (void *taskPointer); tatic
void task_PW (void *taskPointer); tatic void task_APPL (void *taskPointer);
. /* Definiciones para tres pilas de tarea. */
Tatic SmartOS STK_task_ReadPortStack [task_ReadPortStackSizeJ:
tatic SmartOS STK_task_PWStack [task_PWStackSize]; tatic
SmartOS STK_task_ApplStack [task_ApplStackSize];
. /* Definiciones de tamao de pila de tres tareas. */ definir
task_ReadPortStackSize 100 /* definir la tarea 2 tamao de la pila*/
definir task_PWStackSize 100 /* definir la tarea 3 tamao de la pila*/
definir task_ApplStackSize 100 /* definir la tarea 4 tamao de la pila*/
. /* Definiciones para tres prioridades de tareas. */
Definir task_ReadPortPriority 2 /* definir la tarea 2 prioridad */
Definir task_PWPriority 3 /* definir la tarea 3 prioridad */
. /* Prototipo definiciones para los semforos. */
MartOS_EVENT *SigReset; /* primera tarea que restablece la tarjeta puestos. *1 .
MartOS_EVENT *SemPW; /* task_PW puestos a enviar una solicitud para obtener a travs de la contrasea
de usuario
Tjs. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

599

*SemAppl SmartOS_EVENT; /* necesarios cuando se utiliza como indicador para inteiprocess Semaphore
comunicacin entre tareas y ReadPort_task_PW. *1
7. /* Prototipo definiciones para las colas. *1
*MsgQStart SmartOS_EVENT; /* necesarios para IPC entre resetTask y TASK_ReadPort. */
Void *MsgQStart [QStartMessagesSize]; /* deje el nmero mximo de mensajes en la cola ser punteros
QStartMessagesSize. */
*MsgQPW SmartOS_EVENT; /* necesarios para IPC entre task_PW y TASK_ReadPort. */
Void *MsgQPW [QPWMessagesSize]; /* deje el nmero mximo de mensajes en la cola ser punteros
QPWMessagesSize. */
*MsgQAppl SmartOS_EVENT; /* necesarios tor IPC entre task_appl y TASK_ReadPort. */
Void *MsgQAppl [QAppIMessagesSize]; /* deje el nmero mximo de mensajes en la cola ser punteros
QAppIMessagesSize. */
*MsgQApplCIose SmaitOS_EVENT; /* necesarios para IPC entre task_appl y iask_ReadPort. */ void
*MsgQApplClose [QAppICIoseMessagesSize]; /* deje el nmero mximo de mensajes en la cola ser
punteros QAppICIoseMessagesSize. */
8. /* definir tamaos de matriz de cola. Asumir un mximo de 16 cadenas pueden ser enviados en una cola.
*/
#define QStartMessagesSize 16; /* Definir tamao de mensaje inicial del puntero cuando lleno de cola */
#define QPWMessagesSize 16; /* Definir tamao de contrasea puntero ntessage cola cuando lleno */
#define QAppIMessagesSize 16; /* Definir tamao de mensaje de la aplicacin de cola del puntero cuando
lleno */ #define QAppICIoseMessagesSize 16; I* Definir tamao de mensaje de la aplicacin de cola del
puntero cuando lleno */
9. /* definir valores iniciales de semforo, 0 cuando se utiliza como un evento de abanderamiento y 1 cuando
el recurso clave. */
SmartOSSemCreate SigReset = (0); /* declarar el valor inicial del semforo = 0 para usarlo como un evento
bandera de resetTask. */
SmartOSSemCreate SemPW = (0); l* declarar el valor inicial del semforo = 0 para usarlo como un evento
de abanderamiento de task_ReadPort */
SmartOSSemCreate SemAppI = (0); /* declarar el valor inicial del semforo = 0 para usarlo como un evento
de abanderamiento de task_ReadPort */
/* Definir un comienzo del mensaje puntero array. Puntos QMsgPointer al comienzo de los mensajes para
empezar. */ MsgQStart = SmartOSQCreate (&QStart [0| QStartMessagesSize);
= SmartOSQCreate MsgQPW (&QPW [DO, QPWMessagesSize);
= SmartOSQCreate MsgQAppI (&QAppl [DO, QAppIMessagesSize);
= SmartOSQCreate
MsgQApplClose
(&QApplClose
10.
/* cualquier otra
SmartOS eventos
para el IPCs. [0],
*/ QAppICIoseMessagesSize);

11.
/* Cdigo similar a los pasos de ISR_task_ReadPortA CharInt y en el ejemplo 9.16. Estos eran
para leer desde un puerto y almacenar un carcter. Aqu, tenemos Port_IO. */
/* Prototipo declaraciones de mdem PortJO cadenas de entrada y de salida. */
Char Str [ ];.;1* Pc.lMO cadena de entrada para retener los datos desde el host a travs del circuito
demodulador de mdem. *1
Char [ ]; /* PortJO ApplStr string, que el mdem transfiere a host despus de modulacin. */

(600:

Los sistemas integrados

Unsigned char *puerto!ndata: unsigned char *portOutdata:


Void portlOJSRJapui Uportlndata); /* Declaracin prototipo tor recibe un carcter de entrada. */ void
portlOJSR_Ouiput UportOutdata); /* declaracin de prototipo para enviar un carcter. */ /* Inicio de
puerto de entrada JO rutina de servicio de interrupcin */ void porifO_fSR_Input (*portIOdata) {
Disablc_PortIOjnIntr (); /* Funcin para desactivar otra interrupcin desde el puerto de entrada 10. */
/* hisert cdigo para leer el puerto I/O bits juirilOdata = &Str;
T' Inicio de la rutina de servicio de interrupcin de salida PortJO */
\.nd portlOJSRJDutput (*portIOdata) {
.ii>ahie_PortIO_OutIntr (); /* Funcin para desactivar otra interrupcin desde el puerto de salida de E/S */
Definir una macro para enviar una
cadena */ tui'firmado byte i;
SendStr (&AppIS(r) (
|. ilOdata = &ApplStr; i = 0; STAF_Out = 1;
Rile (STAF_0UT = =1 && ApplStr [i] ! = null) { p.;!tlCdata = ApplStr fij; / *Elija un personaje desde el
mensaje de la cola. */
}< "CIT_ISR_Output (&portIOdata); /*enviarlo a la salida PortJO para el mdem. */ i--: / estar
listo para el siguiente carcter */
,sIAF fuera =0; /*Port interrumpir cuando uno de los caracteres enviados estableciendo STAFJDut
nuevamente. */
Yo
\ j plS:r =
/* borrar el mensaje de la cola para la nueva*/
.v \ppi.Jr = ApplStr [0]; i Fn ; de la
funcin macro SendStr. */
Definir una funcin macro para comparacin de cadenas. Nota: la funcin 'C' stremp est disponible en una biblioteca C.
En la . : Jcr lo optimizar cdigos, no estamos usando stremp funcin de biblioteca, pero nuestra propia macro aqu. */

E.-.'lnea boolean (ApplStr stremp, Str) (

/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /
/ Definir una macro para recibir una cadena */
#tM'ine ReceiveStr (&Str) (
mientras (STAFJn != 1) { }; i=0;
/' ejecutar rutinas de servicio de interrupcin para cada carcter recibido en mdem
PortJO*/ mientras (STAFJn == I && Str [i] != null) { portlOJSRJnput (&portIOdata);};
STAFJn = 0; /* RECUERDE: Tan pronto como un puerto de lectura se restablecer itseif
STAF para reflejar la siguiente condicin de interrupcin. */
Str [i] = portlOdata;/* escribir el puerto I/O elemento de matriz de entrada a partir de los datos devueltos*/
++;)
/* ' final de la funcin macro ReceiveStr. */
2. /* Inicio de los cdigos de la aplicacin principal.
Nota: Cdigo pasos son similares en el ejemplo 9.16 */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

1601

Void main (void) {


/* Iniciar SmartOS RTOS para utilizar funciones del ncleo
del sistema operativo *1 SmanOSlnit ();
13. /* Crear tarea de restablecimiento, resetTask que debe ejecutarse una vez, antes de cualquier otra tarea
crea definiendo su identidad como resetTask, tamao de la pila y otros parmetros de TCB. */
(resetTask SmartOStaskCreate, void (*) 0, (void *) &resetTaskStack
[resetTask_StackSize], resetTask_Priority j;
14. /* Cree otras tareas principales y la comunicacin entre procesos variables si estas tambin debe ejecutar
al menos una vez tras la resetTask. */
15. /* Inicio SmartOS RTOS para dejarnos RTOS control y ejecutar las tareas creadas */
SmartOSStart ( ) ;
I* bucle while infinito existe en cada tarea. As que nunca hay un retorno desde la funcin RTOS
SmartOSStart ( ). RTOS toma el control para siempre. */
16. ) / *** final de la funcin Main ***/

/*- --- ------------------------------------------------------------------------------------------- */


/* Los cdigos de la aplicacin restablece la tarea principal que cre. */
17. Static void *taskPointer resetTask (void){
18. /* Iniciar temporizador garrapatas para utilizar el temporizador garrapatas ms tarde. */
SmartOSTicklnit f ); I* Funcin para iniciar RTCSWT garrapatas que comienza en el tiempo configurado en
la configuracin SmartOS comandos de preprocesador en el paso 1 */.
19. /* Cree tres tareas definidas por tres identidades, tarea task_ReadPort, task_PW, task_appl y los tamaos
de pila, otros parmetros de TCB. */
(task_ReadPort SmartOStaskCreate, void (*) 0, (void *) y TASK_ReadPortStack [task_ReadPortSracfcS/ze],
task_ReadPortPriority );
SmartOStaskCreate (task_PW, void(*) 0, (void *) & task_PWSmck [task_PWStackSize], Start_PWPriority)',
SmartOStuskCreate (task_Appl. Void (*) 0, (void *J & task_ApplSr"ck [task_ApplSMek5i>"J,
task_ApplPriority)'
/* */ requestHeader declarar unsigned char [) requestHeader: unsigned char [ ] requestStart;
20. Mientras ({)/!* Inicio del bucle while*/
/* el cdigo para recuperar dos cadenas requestHeader por usuario y la solicitud de PIN PIN host string de la
estructura de archivos protegidos. *1

/* escribir los elementos de la matriz despus de cifrado. */


= SmartOSEncrypt requestHeader ApplStr (DES); /* con una funcin RTOS cifrar requestHeader y
puesto en cola de mensajes. */
(MsgQStart SmartOSQPost, ApplStr);
*SmartOSEncrypt requestStart ApplStr = (DES); /* con una funcin RTOS cifrar requestStart y puesto
en cola de mensajes. */
(MsgQStart SmartOSQPost, ApplStr);
- *-.
(SigReset SmartOSSemPost); /* post evento Semaphore bandera. */

21. I* Suspender la tarea de restablecimiento sin reanudacin posterior, tal como se debe ejecutar slo
una vez para la iniciacin de pulsos de temporizador

Los sistemas integrados

Y para crear las tareas que el programador controla por preferencia. */


(resetTask SmartOSiaskSuspend_Piioriiy); /*Suspender la tarea de restablecimiento y control de los RTOS pasa
a otras tareas de ejecucin en espera*/
22. J /* final del bucle while */
23. } /* Fin de cdigos resetTask */
24. Static void *taskPointer taskJReadPort (void) { while (1) {
25. /* ESPERE por IPC desde resetTask. */
(SigReset SmartOSSemPend, 0 SemErrPoinier)\.
26. /* Espere un mensaje de la cola MsgQStart requestHeader. *!
&QStart = SmartOSQPend (MsgQStart, 0 QErrPointer);
SendStr (&QStart); /* Enviar a puerto de transceptor_IO. Nota: despus de enviar el mensaje en cadena QStart
se convierte en nulo, *1
27. /* Espere un mensaje para requestStart MsgQStart de cola. */
&QStart = SmartOSQPend (MsgQStart, 0 QErrPointer);
SendStr (&QStart); /* Enviar a puerto modem_IO. */
/* recibir y descifrar una cadena desde el transceptor el puerto 10. */
ReceiveStr (&Str);
= SmartOSDecrypt ApplStr (Str, DES); /* con una funcin RTOS, descifrar la cadena de entrada desde el host
*/
28. /* para guardar el cdigo PIN y el host, si ha verificado, comandos de la aplicacin del host tambin se
guardan. Los ahorros estn en la estructura de archivos protegidos. */

(SemPW SmartOSSemPost); /* post evento de abanderamiento para solicitar una contrasea en MsgQPW. */
SmartOSTimeDly (100); /* retardo de 100 ms para permitir una tarea de menor prioridad_PW ejecutar. */
29. /* ESPERE foros de mensajes de la cola MsgQPW requestPassword. Si est disponible, enviar la
solicitud y esperar para la contrasea. */
&QPW = SmartOSQPend (MsgQPW. 0, QErrPointerj;
SendStr (&QPW); !'' Enviar solicitud de contrasea al mdem Poit_10. */
ReceiveStr (&Str); /* Recibe una cadena desde el puerto del mdem IO. */
= SmartOSDecrypt ApplStr (Str, DES); /* con una funcin RTOS, descifrar la cadena de entrada de
contrasea desde el host */
30. I* Cdigo descifrado para la verificacin de la contrasea de usuario en la memoria protegida o
archivo de datos. Si se verifican, entonces los comandos de la aplicacin del host por evento de
abanderamiento SemAppl posando. */

31.
/* Espere un mensaje para requestAppl MsgQAppl de cola. Si est disponible, enviar la solicitud y
esperar a que el comando de la aplicacin y los datos del usuario. */
&QAppl = SmartOSQPend (MsgQAppl, 0 QErrPointer);
SendStr (&QAppl); /* Enviar solicitud de contrasea para el transceptor Port_IO. */
ReceiveStr (&Str); /* Recibe una cadena desde el transceptor Pott 10. */

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2 j 6031

L_. J
= SmartOSDecrypt ApplStr (Str, DES):/* con una funcin RTOS, descifrar la cadena de entrada de comandos
de las aplicaciones y los datos del usuario desde el host */
32. /* Cdigo para usar los datos de usuario y ejecutar el comando de la aplicacin recibida. */

33. I* utilizando la funcin RTOS, cifrar Solicitud Solicitud de cierre y puesto en cola de mensajes. La
solicitud de cierre es desde una cola de mensajes MsgQApplCiose. Luego recuperarlo desde la cola en
QApplCIose despus del cifrado. *1

&QApplClose = SmartOSEncrypt (requestApplCIose, DES);


Enviar (*QApplClose);
ReceiveStr (&Str);
= SmartOSDecrypt ApplStr (Str, DES); /* con una funcin RTOS, descifrar la cadena de entrada de contrasea
desde el host. */
/* Comparar descifraron la cadena con el mensaje "cierre permitida". Si se encuentran igual, luego cierre
permitido y, a continuacin, borre esta tarea y otras tareas de baja prioridad. */
Si (strcmp (ApplStr, cierre "permitidos") (
SmartOS_task_DelEn = I /* permiten la eliminacin de tareas por SmartOS. */
(task_ReadPortPriority OStaskDel); OStaskDel (task_PWPriority); OStaskDel (task_ApplPriority);); j f* final
del bucle While */
/* Fin de la tarea JieadPorts cdigos. */
***:!; !*!*;&**

Sl.E * * * ^ *#**:* 3 :* * * :h sjt

T-c * * * * * .-j: :js * # $ * .1: *

Static void task_PW (void *taskPointer) {


Mientras (l) (
41.
/* ESPERE PARA IPC de lask_ReadPoi l. */
(SmartOSSemPend SemErrPointery SemPW, 0,
42.
/* el cdigo para recuperar una cadena a partir de la estructura de archivos protegidos. Se utiliza para
solicitar la contrasea del usuario en el host de la tarjeta. */
40.

/* escribir los elementos de la matriz despus de cifrado. */


= (rcquestPassword ApplStr SmartOSEncrypt, DES);
(MsgQPW SmartOSQPost, ApplStr);
SmartSTimeDly SmartOSSemPost(SemAppI)(100).
(task_ReadPortPriority SmartOSTimeDlyResume); !* reanudar una tarea retrasada_
ReadPort. */
44.
} /* final del bucle While */
45.
/* Fin de taskJPW cdigos. */
!**^***********************************************************************s/.
46.
Static void task_APPL (void *taskPointer) {
Mientras (l) (
.
. A-43.

(SemAppI SmartOSSemPend, 0 SemErrPointer); /* ESPERE PARA IPC de task_ReadPort. */


47.
/* el cdigo para recuperar una cadena para solicitar la aplicacin de comandos requestAppI desde la
estructura de archivos protegidos. Es para solicitar la contrasea del usuario en el host de la tarjeta. */

604

Los sistemas integrados

/* escribir los elementos de la matriz despus


de cifrado. */ ApplStr = SmartOSEncrypl
(requesiAppI. DES); SmartOSQPost (MsgQStart,
ApplStr);
49. /* reanudar una tarea retrasada_PW.
*/_PWPriority SmartOSTimeDlyResume (tarea).
L /* final del bucle While *7
50. }/ final de task_appl cdigos. */
3l*************************** ************** ;*:*********************1
48.

12.5

Estudio de caso de un telfono mvil de software para insumos clave

Los telfonos mviles son inteligentes. Cada telfono tiene muchas API. Ejemplo de API son telfono, SMS (Short
Message -civice). El servicio de mensajera multimedia (MMS), correo electrnico, navegacin web, libreta de
direcciones, calendario, tareas y lista de tareas. WordPad, Pocket-Word, Pocket-Excel, Note Pad para memos,
Pocket-andcamera PPTs, presentacin de diapositivas.
Telfono mvil con una gran pantalla tctil utiliza un teclado virtual. Telfono mvil con una pequea pantalla
utiliza teclado T9. El presente estudio de caso se refiere a 'SMS' Crear aplicacin en un telfono mvil con teclado
T9 para las entradas.
Seccin 12.5.1 da los requisitos de 'SMS crear y enviar solicitud". Seccin 12.5.2 da las clases y los diagramas
de clase. Seccin 12.5.3 da al Estado el diagrama y la Seccin 12.5.4 ofrece hardware de comunicaciones. Seccin
12.5.5 describe la arquitectura de software. Seccin 12.5.6 describe las tareas de software y modelo de
sincronizacin para la aplicacin.

,12.5.1 Requisitos
\ procesador, pantalla, teclado, scratch pad, la persistencia de la memoria y la memoria se requieren unidades de
comunicacin .a S.V crear y enviar la solicitud. Scratch Pad direcciones de memoria neumtico utilizado para
guardar temporal de caracteres Kies) durante la aplicacin. Persistencia de las direcciones de memoria son
utilizados de tal manera que tan pronto se realice un cambio n el byte, persiste incluso despus de que la
alimentacin se apaga. Adems, cuando hay un cambio, un cambio lentical I- se refleja en otras correlacionadas
ob rechaza. Por ejemplo, un nombre que es editado en un archivo para los contactos, toma el mismo cambio en el
archivo de la libreta de direcciones para el envo de e-mails.
La Figura 12.20 muestra unidades especficas, que se utilizan para los mensajes de texto SMS crear la
aplicacin. La pantalla se utiliza para mostrar el men. La Figura 12.20 muestra que hay cuatro teclas de cursor
(arriba, abajo, izquierda y derecha) sealados por Cl, C2, C3 y C4. En el equipo de tec d, cuatro diferentes teclas
del CURSOR se usan. El mvil de tecla de cursor en el teclado es tal que funciones como cuatro teclas. Cuando se
pulsa la tecla hacia la izquierda, el cursor se mueve hacia la izquierda (<-). Cuando se presiona hacia la derecha el
cursor se mueve a la derecha (->), y as sucesivamente para arriba (T) o hacia abajo (1).
En eddition hay cuatro teclas de comando (esquina derecha de la segunda fila, en la esquina izquierda de la
segunda fila, en la esquina derecha de primera fila y colocar en la esquina izquierda de st-row) denotado por
key2fila2, llave de 1 fila2, key2la fila 1 y la fila clave I I. Asimismo, hay nueve teclas T9 para los nmeros 1 a 9,
as como por el alfabeto de la a a la z o de la A a la Z). Hay dos teclas de modo keyM keyM (1 y2) y una incrustacin
dUV keySTcey en un carcter de texto nmero 0 o el espacio. Texto alfanumrico en la caja pequea o en caso de
pena capital es controlado por un modo-clave del estado. Texto carcter introducido en la incrustacin depende del
estado de la tecla T9. [recordar ejemplos 3.6 y 6.8 y en la seccin 6.3).

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

1 Tecla de cursor en
cuatro direcciones: arriba,
abajo, izquierda, derecha
(Cl. C2, C3, C4).
4 Comando/teclas de men:
Seleccionar, espalda,
marcar, Acabado (key1
key2fila1, fila1, keylrow2,
key2fila2)
Teclado T9 marcado 1 a 9
(key1 ...... Key9)

605

//////////////////////
"////////////////////A
///////////////A

'//.Comunicacin://
//////////////////////
/////////////////////- '///////////////////
/A

3 teclas de modo marcado0. #


(KeyM1,0, KeyM2)
Memoria Scratch Pad

Memoria para
la bandeja de
entrada,
Enviados,
archive y
plantillas de
Memoria de persistencia
mensajes SMS

Fig. 12.20 teclado del telfono mvil, pantalla, memoria y unidades de comunicacin para mensajes SMS
Requisitos de crear y enviar SMS mdulo de la aplicacin del sistema de creacin de SMS est tabulada en
la Tabla 12.6,

Cuadro 12.6 Requisitos de 'SMS crear y enviar solicitud" mdulo en un sistema


de creacin de SMS
Requisito
Finalidad

Descripcin
Para crear un mensaje SMS y comunicarse utilizando un formato T9 y teclado utilizando la tir-ks para

Inserrim; nmero de mvil deseado en la lista, la edicin de un


mensaje y, a continuacin, enviando el mensaje.
Funciones de I. Se selecciona una opcin mediante teclas de cursor para mover el cursor que aparece en la pantalla y, a
continuacin, el sistema Pulsar la tecla comando Clave I Fila I. Cuando un conjunto de opciones que consta de 4
notificaciones, uno de los foros

Mensajes de comando, opcin forenmmand siguiente mensajes de


prueba, prximo lor aplicacin Crear mensaje y dura prueba, se
genera un evento seleccionado E_SMS. ISection 8.4 | seales de
que una tarea de creacin de mensajes de texto en formato
alfanumrico. Los caracteres se escriben y se editan con T9 teclado
de nueve teclas de nmeros I a 9. Una de las cuatro teclas de cursor,
cuatro teclas de comando, dos teclas de modo marcados con un * y
#. y una tecla marcada 0.
2. Cuando se hace clic en cualquier tecla por el usuario, su pizarra se calcula basndose en las teclas del
estado anterior, la posicin actual del cursor, temporizador-stums y contar y, a continuacin,
notificacin e_NewState est publicado en un cuadro de mensaje para un ISR. tarea o aplicacin que
inicia la accin requerida.
3. Para elegir la aplicacin SMS creacin de texto, el cursor y el comando-cum-opciones-select
(KeyiRowl) claves se utilizan de la siguiente manera: (a) Cuando la tecla Comando (KeyIRowl) se
utiliza para seleccionar mensajes de comando, un comando de la opcin se selecciona utilizando una
interfaz grfica de usuario. (b) el usuario selecciona la opcin Mensajes de texto haciendo clic en la
opcin mostrada "mensajes de prueba'. (e) a continuacin, se muestra un

men para seleccionar uno de los siguientes utilizando el cursor


abajo y arriba claves: Crear mensaje. Bandeja de entrada.
(Ctmtd)
Elementos enviados. Archivado. Plantillas, Mis carpetas, listas de
distribucin, eliminar mensajes y opciones. El usuario selecciona el
mensaje 'Crear' para seleccionar aplicacin de creacin de SMS, (d)
a continuacin, se muestra un men para seleccionar el tipo de
mensaje que se va a crear. El cursor puede seleccionar uno de los

Los sistemas integrados

606

Requiivnieni

Gui

Entradas

Seales,
eventos
Iia

Descripcin
4. En el caso de SMS H las tareas agregar el nmero. Editar mensaje anil Enviar mensaje ejecutar a fin de
especificar (i) un nmero de mvil nuevo o adicional para transmitir el SMS. (ii) editar el mensaje SMSingresando desde la T9 del teclado (en) y transmitirla a travs de la mvil, respectivamente.
5. Cuando el mvil est inactivo, la pantalla de inicio muestra en pantalla key2fila2, que provoca una interrupcin
ISR_key2fila2 la ejecucin de rutinas y estado del mvil se convierte en despertar el estado S Wake. Cuando
el mvil se encuentra en estado activo S_activo y est ejecutando una aplicacin, es llevado a un estado
inactivo a otro SJdle key2fila2 interrupcin. La pantalla se apaga (apaga) despus de un intervalo predefinido,
digamos, 15 s y el estado del telfono mvil se convierte en estado durmiente S_Sleep (slo en llamada entrante
habr interrupcin del puerto y mobile despierta al estado S_Wake y la pantalla muestra'start-up display".
Una GUI utiliza la visualizacin de la pantalla de men o texto de comando y el cursor, seleccione la posicin
de cursor y teclas de cambio. La posicin del cursor puede cambiarse hacia arriba, abajo, izquierda y derecha
mediante Cl, Cl. Cl y C4. El cursor cuando los puntos en la pantalla a una lnea de men para un comando,
muestra ese elemento de men con azul u otros antecedentes. Cuando el cursor apunta a un personaje en una
lnea de texto o un nmero de telfono, se muestra una lnea vertical a la derecha de la posicin de carcter.
En la posicin del cursor, un texto puede ser seleccionado o introducido por un Comando-clic de la tecla de
seleccin (KeyIRowl). En la posicin del cursor, el carcter mostrado puede ser borrado por un clic de borrar
o back2Key (Fila 1).
1. Estado de un T9 (tecla 1,..... key9).
2. Estado de la tecla de modo (keyM keyM 1 y2) par-marcados con un * y # y que define el modo de
funcionamiento.
3. Estado de clave0(0,0), (1, espacio), (1,0), (1,.nueva lnea) o 11. espacio), al editar un SMS. [Slate de keyO (0.
0) o (1, 0) Al marcar un nmero. |
4. Estado de comando desde una de las cuatro teclas de comando (tecla 1 fila 1, key2rowl. keylrow2 y
Key2fila2).
5. Estado de cursor en el cursor de entrada haga clic en Mover arriba, abajo a la izquierda o a la derecha con la
tecla de CL. C2clave,
1. E_NewState y el mensaje de estado de clave estn publicados en las interrupciones de la tecla Comando
C3C4key
o clave.
O
cualquier
otra tecla.

Notificaciones2. Suceso E_SMS, que empieza SMS_create_text Application, sucede en la publicacin de un conjunto de cuatro
notificaciones GUI - MsgMessages, MsgTe.xtMessages. Y MsgCreate MsgText. \MsgMessages al seleccionar
la opcin de notificacin de mensajes, al seleccionar la opcin MsgTcxtMessages
Te,xl_mensajes, MsgCreate al seleccionar la opcin Create_Mensaje. y MsgText mensaje seleccionando la
opcin Text.J
3. Notificaciones para mostrar en la realizacin de las tareas. Por ejemplo, despus de completar el envo de
SMS, Mostrar notificacin de 'Mensaje enviado' y antes de completar la transmisin del mensaje SMS 'final'.
4. Un software de tiempo de espera de timer interrupt ISR_T_Deacitvate apaga el telfono en la pantalla de
estado inactivo (men de inicio muestra en estado inactivo) con la pantalla apagada y en estado de reposo.
[interrupcin
es despus
No es una
accin para un perodo de ms de un perodo programado = 15s).
5. Otro software de tiempo de espera de timer interrupt ISR_T_Out_Help_Opcin cuando un cursor o marcado
men aparece entonces una ayuda emergente aparece despus de un perodo ms largo que el perodo
programado
2s.
Salidas
1. SMS_create_cadena
de texto, que aparece en la pantalla y se guarda en la memoria memoria transitoria
durante la edicin y tambin guardados en la carpeta enviados despus de enviar el SMS.
2. Las lneas de texto del men de pantalla para mostrar la opcin(es), texto de men, texto marcado o
carcter para activar su seleccin por clics.
3. Men Ayuda pantalla de texto para 'mostrar la accin, que tendr lugar en la seleccin de una opcin
despus de un T_Out_Help_Opcin interrupt. Se asume como una opcin a la que apunta el cursor.
(iCould)

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con


RTOS-2
607

Pet/ititeuienl

Descripcin

Borrador de la memoria es utilizada como borrador de memoria para un mximo de 160 caracteres en un SMS.
La memoria
La persistencia de la memoria es asignado en el sistema en la persistencia de las direcciones de memoria (memoria flash)
forSMSes en memoria La bandeja de entrada, Enviados, archive y plantilla.
Diseo
La
mtrica

Prueba y
Validacin
Condicione
s

1. Disipacin de potencia: el funcionamiento de la batera


2. Rendimiento: 3 minuto para que me la creacin y el envo de mensajes
SMS
3. Costo de ingeniera: US$ 20000 (supuesta) para software
4. Coste de fabricacin: Ninguno una vez que los cdigos estn listos y probados
1. Todos los comandos y opciones de funcionamiento probado.

El funcionamiento puede ser explicada en detalle a continuacin:


Comando: Para los mensajes de comando, una clave (por ejemplo) el lado izquierdo de primera fila, comando
(tecla i la fila i) se usa y el usuario selecciona el comando de mensajes.
Opciones: En la seleccin pulsando Tecla I Fila I cuando el cursor se encuentra en una muestra mensajes de
comando, el comando de la pantalla de opciones. Estas opciones se utilizan para seleccionar una opcin de
comando usando el cursor en una de las siguientes opciones de comando: mensajes de texto. Mensaje de
voz y Mininavegador mensajes.
En la seleccin pulsando Tecla I fila i cuando el cursor se encuentra en la opcin de comando muestra mensajes
de texto Mensajes de texto, se selecciona la opcin. Entonces uno de los siguientes se muestran las opciones de la
aplicacin: Crear mensaje. Bandeja de entrada. Elementos enviados. Archivado. Las plantillas. Mis carpetas. Las
listas de distribucin. Eliminar mensajes y opciones.
Crear aplicacin SMS: Para seleccionar la opcin Crear aplicacin SMS. Crear aplicacin de mensaje-opcin
est seleccionada con el cursor y haga clic. Entonces uno de los siguientes dos tipos de mensajes pueden ser
creados. Pgina de texto y numrico de la siguiente manera.
Tipos de mensajes: En la seleccin haciendo clic en la opcin Crear una aplicacin mostrada, el tipo de
mensaje- muestra las opciones de neumticos. Estos se usan para seleccionar un tipo de mensaje-opcin con el
cursor en una de las siguientes opciones de comando: Texto, Numrico y pgina. El texto se selecciona como el
tipo-opcin.
Tareas: en la seleccin haciendo clic en la opcin de tipo de muestra, el texto se muestran las opciones de la
tarea. Estos son utilizados para la seleccin de la opcin de tarea con el cursor en una de las siguientes
opciones: aadir la tarea nmero. Agregar correo electrnico. Aadir lista. Editar mensaje. Ust
destinatario y enviar. Agregar nmero es seleccionado como la opcin de tareas. A su regreso de la tarea nmero
agregar una nueva opcin tarea Editar mensaje seleccionado. A su regreso de (l tarea Editar mensaje, la siguiente
tarea es seleccionar la opcin Enviar. Si el mensaje es enviado a dos nmeros y, a continuacin, antes del envo,
se agrega un nmero utilizando Agregar nmero de tareas. [ un diagrama de estado ser dada en la Seccin 12.5.3
para explicar el procesamiento concurrente de las tareas agregar el nmero. Agregar correo electrnico. Aadir
lista. Editar mensaje. Lista destinatario y enviar. \
Editar y crear el texto alfanumrico SMS: Para habilitar las entradas de caracteres alfanumricos usando slo
9 teclas, el estado de la llave cambia y la notificacin se expide para el nuevo estado en una transicin, lo que
provoca una nueva entrada. La transicin de un estado causando entrada se aplica cuando existe una repeticin de
pulsacin de la misma tecla de nuevo T9 u otra tecla dentro de un intervalo de tiempo prefijado.
Esto puede explicarse de la siguiente manera: Ejemplo 3.6 demostr cmo una tecla marcada 5 (5 en primera
lnea en fuente grande y jkl en una fuente pequea en segunda lnea marcado en Key5) sobre la superficie
presionando pueden producir los diferentes estados despus de la transicin de estado inactivo (0,5) en secuencias
representadas por (1,5), (i, j). (1 k), I, 1), (1,5), (i, j), k), I (I, 1),
(1,5), hasta que el usuario no pulse repetidamente la tecla5 dentro de un intervalo o pulsa otra tecla de estado (0,n),

608|
Yo

Los sistemas integrados

Primer carcter dentro de la escuadra en una clave de la representacin estatal muestra si est inactivo (Clave
0) o activo (I). No hay transicin a I cuando se pulsa una tecla y a 0 cuando la llave-estado es aceptado como la
entrada sufre Transicin a inactivo de la pizarra. Un estado es aceptado como si de entrada dentro de un intervalo
de tiempo en el usuario pulsa otra tecla o no se repita pulse la misma tecla. El segundo carcter despus de coma en
una representacin de estado muestra el nmero o texto que se enviar en formato de cdigo ASCII si el estado
activo permanece inalterada en un intervalo predefinido en modo CAL y M2 no ha modificado el modo de texto en
otro idioma.
Otras teclas tambin tienen caractersticas similares. La transicin de un estado clave se produce si se vuelve
a pulsar dentro de I intervalo. Recapitulemos la Seccin 6.3, en el que se describe un modelo de mquina de
estado. Ejemplo 6.8 dio el 'tate Tabla y ejemplo 6.9 C dio los cdigos de la tabla de estado.

12.5.2 Diagrama de clase y las clases


V) programa de aplicacin SMS utiliza el principio de Orchestrator (figura 12.2). Las entradas de los V\N lor de
comandos, GUI y entradas de datos son tomados como equivalentes a las entradas de los sensores. Una notificacin
o seal i"utilizar despus de cada entrada es tomado como equivalente a la salida del actuador. Por lo tanto, debemos
definir el estao Orchestrator ; clase ir la aplicacin.
Pantalla utilizado durante cada entrada y cada salida en el dispositivo mvil. Hay una pantalla de inicio "Cteen
un ejemplo tpico es la pantalla que muestra la hora en la esquina derecha, servicio Nombre de empresa en el centro
de l, dale en la lnea siguiente, la barra lateral izquierda de la intensidad de la seal de la antena, la barra del lado
derecho mucha energa de la batera y tambin dunas una pantalla de inicio grfico. Las opciones son segn el
aprovisionamiento segn el proveedor de servicio y una imagen de wall-dispiay seleccionado por el usuario.
Permtanos disear un TASK_ScreenDispl clase. Se entrelaza con el mtodo grfico. Grfico che es elegido entre
las opciones para el usuario como la playa, coche, Coral, Daisy, baile, Discoteca, Dragon y otros. Task_ScreenDispl
ampla las otras clases, los objetos (instancias) de los cuales se utilizan en nenu display. Gui o mostrar texto de
ayuda o accin actual y otra pantalla.
La creacin y el envo de SMS aplicacin tiene una serie de tareas de procesamiento concurrente. Permtanos
definir Lisk_SMS_CreuieTextSend.
Aplicacin de creacin que SMS Xssiime consta de tres diagramas de clase para Orchestrator y dos para
i'ask_las SNL_y_ScrcenDispl CrcitteTexiScnd tarea. La Figura 12.21 muestra diagramas de clase ol
ORCHESTRATOR, laskJicrcenDispI y TASK_SMS_CreateTextSend para crear y comunicar un mensaje SMS.
1. ORCHESTRATOR clase extiende a Orcheslrator_y_Orchesirator CommandsGUIs SMSC'reate Enviar.
2. Task_Messages. Task_TextMessages, Task_CreateMessage y TASK_Texto e interface del teclado
interrumpir ISR_KINT.
3. Task_SMS_CreateTexiSend se extiende a Task_AddNumber. Task_AddEmail. Task_AddList.
Tnsk_task_ListRecipient EditMessage, y tarea_ Enviar.
4. Cuatro tipos de pantallas se utilizan durante el proceso de crear y enviar SMS aplicacin. Pantalla de
arranque, los elementos de men display, pantalla de SMS durante la tarea de edicin y visualizacin de
accin durante el envo del SMS. Task_ScreenDispl as extiende a cuatro clases Task_StartUpDispl. Tarea_
SMSDispl. Task_ActionDispl y tarea_ MenuTextLinesDispl.
5. Los ISRS son Cable!essPort_ISR, ISR_T_Out_Help_Option, ISR_T_Deacitvate e ISR_KINT.
6. ISR_KINT ejecuta las funciones de servicio para cualquiera de las transiciones de estado de los veinte
principales y senados notificaciones para el estado de una tecla 1 fila I o la tecla !Fila2 o, Key2Rowl,
Key2fila2, Cl a C4, M1 o M2 o las teclas 0 a 9.
'laSS Figura 12.22 muestra Tarea__ MenuTextLinesDispl. Tiene campo pxeles de Unsigned byte [J./Vstrin^s un
,rray de caracteres. StrLinel, StrLine2, StrLine3 y StrLine4 son las cadenas en el objeto de Menultems. Los campos
son textLineColor olour, cursorTextLineCoIor, screenBackgroundColor. El cursor tiene dos campos lnea nd una
barra de color. Los mtodos son OSMBox Aceptar (); OSMBoxPendf); OSMBoxPostf) y mouseClick ().

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

609

Fig. 12.21 ORCHESTRATOR, Task_SMS_task_ScreenDispl CreateTextSend y diagramas de clase de crear y enviar SMS

aplicacin
Tarea _ MenuTextLinesDispl
J Unsigned byte [ ]: pxeles
Cadena: char [ ].
Cadena: Menultems;
Menultems: StrLinel. StrLine2, Strline3, StrLine4,
Color: textLineColor, cursorTextLineColor,
Cursor: lnea screenBackgroundColor coloredBar
OSMBoxAccepi ();
OSMBoxPendt);
OSMBoxPost();
MouseClick();

Fig. 12.22 La clase Task_ MenuTextLinesDispl

Objetos objetos de la cola de mensajes se utilizan para exponer a los ISRs y tareas. Los
objetos de cola de mensajes son aceptados o esperando en las tareas. Por ejemplo,
mensajes, MsgText MsgMessages MsgCreate y MsgText
Se publican en clave 1 fila I interrupciones. Los objetos de evento se registr en un conjunto de notificaciones. Por
ejemplo, E_SMS
Publicado en MsgMessages, MsgTextMessages, MsgCreate y MsgText. E_NewState publicado en cualquier
nuevo Estado generacin sobre interrupcin de cualquier tecla en el mvil. [Figura 12.20J

Los sistemas integrados

12.5.3 Diagrama de estado


La Figura 12.23 muestra un diagrama de estado para task_SMS_CreateTextSend. Un diagrama de estado muestra
un modelo de estructura para su inicio, fin, entre asociaciones a travs de las transiciones y shows-etiquetas (o
condiciones) asociados con las transiciones. Una marca rectangular oscuro dentro de un crculo indica el final. Las
transiciones de estado tienen lugar entre las tareas, task_SMS_y_AddNumber CreateTextSend tareas,
task_AddEniail, iask_AddList. task_EditMessage, task_ListRecipient y tarea_ Enviar. Se produce una transicin
de estado despus de la notificacin de MsgAddEmail MsgAddList MsgAddNumber,,,, y MsgSend
MsgEditMessage MsgListRecipient sobre seleccin de menultems Nmero Agregar, Agregar correo electrnico.
Lista Agregar, Editar mensaje, destinatario de la lista y enviar, respectivamente. Task_Enviar mensajes al evento
para iniciar ISR_WirelessPorts mediante Orchestrator para enviar SMS y cierre la aplicacin.

12.5.4 SMS de hardware de claves


Arquitectura de hardware especifica la descomposicin adecuada de hardware en procesadores. ASIPs. claves, la
memoria, los puertos y los dispositivos tambin especifica la interconexin y el mapeo de estos componentes.
Especificaciones para la incrustacin de SMS en hardware son como sigue:

Tecla de cursor una tecla de cursor de cuatro vas que se pulsa para mover el cursor hacia arriba, hacia
abajo o a la izquierda o a la derecha del carcter cuando la edicin del SMS cuando se est creando. Las acciones
son similares a t, I <- y -" las teclas en un teclado. Sobre la tecla del cursor del ratn, la interrupcin de las
notificaciones se envan a los estados clave de CL. Tecla C2, C3 y C4clave clave y mostrar la posicin actual del
cursor.

Yo

Fig. 12.23 Diagrama de estado task_SMS_CreateTextSend

Teclas de comando

Nmero cuatro teclas de comando, la tecla I fila i, clave 2fila2, clave I fila2 y
key2fila2 estn presentes.
Uso de la tecla 1 fila I y Key2Fila I es similar a la izquierda y hace clic con el botn derecho del ratn en un equipo
para la GUI. Uso de

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

611

KeylRow2 y Key2Fila2 pollas dmilar es hacer clic en men Inicio y Apagar o reiniciar el elemento del men,
respectivamente, en una ventana de arranque del equipo.
Al hacer clic en un comando de tecla. Comandos clave la rutina de interrupcin enva notificaciones para
los comandos y sus opciones. Las claves se utilizan de la siguiente manera:
1. Esquina derecha de la tecla Comando (segunda fila por fila2 key2interrupt) est marcado en rojo con
cabeza de telfono dowm firmar. Se utiliza para activar el dispositivo inactivo y show start-up display.
La misma clave se utiliza tambin para cortar una operacin activa (incluyendo una llamada telefnica
en cualquier instante).
2. En la esquina izquierda de la segunda fila de llave (kevlrow2 interrupt) est marcada en verde con la
cabeza levantada telfono firmar. Se utiliza para marcar el nmero que est a la vista en la pantalla o
seleccionar con el cursor de visualizar el nmero (s) en la pantalla de men. La misma clave se utiliza
tambin para recibir una llamada entrante, despus se reproduce un tono de llamada y el nmero parpadea
en la pantalla.
3. En la esquina izquierda de la primera fila de clave (clave para interrumpir la fila I I) est marcada en
verde con guiones y se utiliza.Para activar todas las opciones disponibles de mens y submens para
iniciar una aplicacin. Esta accin clave es similar a la izquierda haga clic en ratones botn cuando el
cursor est en una ventana para seleccionar un comando desde el conjunto de opciones, botones y mens.
4. Esquina derecha-primera fila llave (key2rowl interrupt) est marcada en verde con guiones y se usa para
activar para seleccionar los comandos de men, y se utiliza adems el polarizado o al querido personaje
durante el proceso de edicin o para volver a las opciones del men anterior. Por ejemplo, la tecla se
utiliza para los contactos. Calculadora, Crear mensaje y juego o las opciones programadas para su
inicio. Se abre para seleccionar un comando desde un conjunto limitado de opciones de men que se
muestran. Esta accin clave es similar a la accin sobre haga clic con el botn derecho del ratn de
ordenador, el botn del ratn cuando el cursor est sobre un botn o en una posicin de la pantalla.

Teclas T9 T9 se utiliza el teclado para teclear de SMS. T9 teclado tiene nueve teclas I 9 plus
un keyO. Tecla T9
(tecla I .. Kcy9 clave) entradas se utilizan para marcar nmeros de telfono, as como editar las entradas de texto
en SMS cree
Aplicacin.

Teclas del modo dos teclas marcadas con * y la tecla modificar los estados de keyM I y llave M2 al arco
pulsado. Tecla modo de uso puede ser entendida por el siguiente ejemplo. Por ejemplo, para proteger el uso
accidental de las teclas cuando el telfono se mantiene en el bolsillo, la tecla I fila I y ml son presionadas
simultneamente, la almohadilla se somete a la transicin al estado de bloqueo si anteriormente lo fue en el estado
y de desbloqueo para desbloquear el estado si estaba en estado de bloqueo. Otro ejemplo es bilinge o multilinge
de edicin de texto SMS. M2 se utiliza para convertir el texto en ingls a modo de modo de texto en otro idioma.

Pantalla de visualizacin muestra la GUI para la pantalla de inicio, mens, opciones, texto
editado o acciones eurrenlly teniendo lugar.

12.5.5 Crear y enviar SMS de arquitectura de software de aplicacin


Arquitectura de Software especifica la descomposicin apropiada del software en mdulos, componentes,
estrategias de proteccin adecuadas y mapeo de software. Arquitectura de software consta de los siguientes
elementos en la aplicacin de creacin y envo de SMS.
1. OS. |OS controla el OSMsgQPost OSMsgQPend OSMsgQAccept, y las funciones de la cola de mensajes
en los cuadros de mensajes y eventos en el incluso cuadros. OS sincroniza las tareas y facilita el
procesamiento concurrente de aplicacin SMS en el mvil).
2. Key-capa del sistema utilizando Orchestrator y KINTs_lSR (interrupcin de las rutinas de servicio de
interrupciones desde las teclas).
3. Capa de aplicacin

612

Los sistemas integrados

Capa de aplicacin
1. Las tareas, como se muestra en la Figura 12.21
2. Isr para iniciar la accin sobre las entradas de usuario y notificaciones de GUI
(i) sistema de clave-capa: una capa de arquitectura de software es utilizado por el sistema de clave. La Figura
12.24 muestra una llave-capa del sistema. Haga clic en una tecla genera una interrupcin y una rutina de servicio
ISR_KINT, que luego se ejecuta en: Orchestrator. El ISR_KINT lee los bits de estado del puerto para encontrar
la tecla que se ha pulsado, y tambin para leer el estado del temporizador y temporizador cuenta y la posicin del
cursor y esa posicin men o mensaje de texto. Seala el o Jtcstrator para iniciar y genera las notificaciones y
eventos y puestos en los cuadros de mensaje y ;vcni casillas de tareas en espera. Por ejemplo. ISR_KINT iniciado
Orchestrator puestos los siguientes mensajes:
Yo MsgMessages cuando el cursor en la pantalla apunta a un comando_Msg mensajes.
2. MsgTextMessages cuando el cursor en la pantalla apunta a un comando_option_Msg TextMessages.
'. MsgCreate cuando el cursor en la pantalla de puntos a una opcin de aplicacin_Msg para crear [Pantalla
muestra las opciones de la aplicacin Crear mensaje. Bandeja de entrada, Elementos enviados, Archivo,
Plantillas, mis carpetas. Las listas de distribucin. Eliminar los mensajes y opciones de configuracin ].

=. 12.24 Sistema de clave-capa con ISRJONT y Orchestrator en la arquitectura de software de mobile

4. MsgTextType cuando el cursor en la pantalla apunta a un tipo_option_msg de texto.


X S_KeyO, S_Key I. S_key2 ..........O S_key9 Estado como por el estado del temporizador de cuenta y si hay
nuevo rancio
De keyO. keyl. key2. key9.
(\ S_C I S_S_C2, C3 o C4_S estado si Cl o C2 o C3 o C4 se haga clic.
". S_M 1 o S_M2 o M2 IM si hace clic en l.
5. S_clave I Fila I, S_key I fila2, S_key 1 fila2 o S_key2Fila2 S_key 1 fila i, si se pulsa una tecla de
comando es pulsado:
9. E_SMS si comando, opcin, la opcin de la aplicacin y las opciones tipo MsgMessages. Y MsgTextType
MsgCreate MsgTextmessages, fueron publicados en los pasos I, 2, 3 y 4. |MsgMessages,
MsgTextMessages, MsgCreate y MsgTextType inicia objeto event E_SMS.]
10. E_NewState si algn estado cambie el paso 5 o 6 o 7 o 8.
(2) es una capa de la capa de aplicacin en arquitectura de software.
1. Una tarea de aplicacin es objeto de la clase Task_ MenuTextLinesDispl, ejecuta el envo de un mensajeobjeto MsgTextMessages o MsgMessages o MsgTextMessages MsgCreate MsgTextType, o en un cuadro
de mensaje por un ISR_KINT (Fig. 12.24) en E_NewState.
2. Otra aplicacin es tarea Task_SMS_CreateTextSend para crear y enviar SMS y la aplicacin se ejecuta
en el evento E_SMS. Diagrama de estado se muestra en la Figura 12.23 Seccin 12.5.3.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

12.5.6 Las tareas de software y modelo de sincronizacin


Figura 12.2? mostr el estado diagrama de ciclo de sincronizacin de tareas diferentes. El sistema de comunicacin
SMS tiene un ciclo de acciones y tareas sincronizacin de modelo. Orchestrator puestos notificaciones a la
task_Mensajes, task_TextMessages, task_CreateMessage y tarea.Text.
1. Comienza un ciclo en Orchestrator. Una tarea, tarea_Messages, que recibe una notificacin de mensaje
S_Key I Fila I Seleccin de comando. Se puestos MsgMessages.
2. Una tarea task_TextMessages es para la opcin de comando. Enva mensaje MsgTexiMessages en la
seleccin del usuario. Otra tarea task_CreateMessage acepta MsgCreate MsgTexiMessages y puestos en
la seleccin del usuario. Otra tarea task_Text acepta MsgText MsgCreate y puestos en la seleccin del
usuario.
?. Orchestrator luego puestos E_SMS. Al recibir la tarea E_SMS_SMS_CreateTextSend enva seales a la
visualizacin de elementos de men para iniciar task_task_EditMessage AddNumber, y
TASK_Send_task_ListRecipient AddEmail y tarea.
4. Tarea task_AddNumber aade el mensaje nmero de mvil para enviar el SMS en una lista. Enva
mensaje MsgAddNumber en la seleccin del usuario.
5. En la seleccin del usuario, Orchestrator puestos mensaje, qu seales otra tarea task_EditMessage para
empezar. Se utiliza para crear y editar el mensaje ingresando en los personajes. Orchestrator acepta Estado
de tecla en cada tecla haga clic y puestos en el cuadro de mensaje de estado de la tecla pulsado durante la
edicin. task_EditMessage acepta el mensaje de estado de las teclas y crea el SMS_create_cadena de
texto.
6. En la seleccin de usuario. Orchestrator puestos, lo que indica el mensaje otra tarea task_Send.
7. Task_Enviar mensajes MsgSend. Orchestrator MsgCommuncation MsgSend acepta y puestos para
interfaz de puerto de comunicacin. Acepta MsgCommuncation y mensajes SMS_create_cadena de texto
a travs de una red inalmbrica.
La Figura 12.25 muestra un modelo de sincronizacin para crear SMS y las tareas de la aplicacin. Isr y
Orchestrator tareas (task_Addlist, Task_y_AddEmail ListRecipient tarea de sincronizacin no se muestra) usando
los cuadros de mensaje y evento. Seal
\

Orchestrator - cuadros de mensaje y evento 8oxes

ISR_KINT

0:Tecla S1 Fila1
Task_Mensajes
1: KINT

Task_task_TextMessages CreateMessage :
3: MsgTexiMessages
4: MsgCreate

2: MsgMessages

Orchestrator S'- MsgTextType ; task_Text

9: MsgEditMessage

7: MsgAddNumber

11: SMS_create_cadena de texto


1

tarea Enviar

Tarea EditMessage
-
10: Estado de una

12: MsgSend
tecla

Yo task_SMS_CreateTextSend :
;

...............
Task_AddNumber

C. c.,c

6. FC_SAE

Task_AddNumber
8: Estado de una tecla

Task_AddEmail

taskJJstRecipient
Interfaz de puerto de comunicacin j_
ISR_WirelessPort | ISMS
j L task_Addlist
14: SMSi.'GresIfk.Cadena de texto

13: MsgCommuncation

Fig. 12.25 modelo de sincronizacin para crear SMS y tareas de aplicacin, ISR y Orchestrator tareas
(task_Addlist, Task_y_AddEmail ListRecipient tarea de sincronizacin no se muestra)

I 614 |
-i

Los sistemas integrados

El siguiente es un resumen de este captulo


Cuatro estudios de caso se explican: diseo del sistema para la orquesta rohot, sistema de control de crucero automtico,
tarjeta inteligente y SMS mviles crear y enviar la aplicacin. El sistema de diseo de ingeniera de software y mtodos de
modelado UML se explican en estos estudios de caso.
Los diagramas de clase, las clases del diagrama de estado, modelo de sincronizacin, arquitectura de hardware y
arquitectura de software se describe mediante ejemplos.
Orquesta Robot ejemplo explica la sincronizacin de mensajes MIDI entre conductor y jugadores.
Orchestrator es software que secuencias, sincroniza las entradas de sensores klh es" o de otras fuentes y genera mensajes,
notificaciones, seales y salidas para los actuadores, mostrar y cuadros de mensaje en determinados casos y en intervalos
de tiempo despus de un cambio de entrada. Los cuadros de mensaje almacenar las notificaciones, que iniciar las tareas.
Aplicacin de Orchestrator es explicada por tomando ejemplos de la orquesta del robot y SMS mviles crear y enviar la
aplicacin.
Hay muchas aplicaciones de electrnica del automvil de sistemas integrados y las ms importantes se resumen aqu. Una
caracterstica de los coches de mdem, sistema de control de crucero de automviles, fue descrito. El sistema de control
adaptativo es definido. Debido a la mayor necesidad de fiabilidad desde el punto de vista de la seguridad humana, la
necesidad de contar con caractersticas especiales en el sistema operativo para automviles se explic. MISRA-C estndar
para el software de lenguaje C define las directrices para sistemas de automocin para utilizar C. MISRA-C versin 2
(2004) especifica 141 reglas de codificacin y dio una nueva estructura para C. Un RTOS estndar es OSEK -OS para la
electrnica de automocin. Cdigo de sistema de control de crucero automotriz diseo est dada mediante el VxWorks
despus de retener e incorporando los OSEK-os ofrece con ella durante la codificacin de ejemplar.
El diseo de sistemas integrados para la comunicacin con el host de tarjeta en una tarjeta inteligente es dado para explicar
y hardware integrados especiales RTOS funciones especiales necesidades. El estudio mostr que para la elaboracin de
cdigos para un sistema incorporado, el RTOS MUCOS o VxWorks funciones podran no ser suficientes. Una hipottica
RTOS, SmartOS. que tiene caractersticas MUCOS ms el sistema embebido OS funciones especiales cuando se requieren
funciones de cifrado y seguridad de archivos, las condiciones de acceso y los permisos de acceso restringido. Despus de
la inicializacin de una tarea que se ejecuta en el arranque del sistema, hay tres tareas programadas por el SmartOS. (a) una
tarea lee la aplicacin de cadenas de archivos de datos de la tarjeta. Enva tras el cifrado, los mensajes de UART. Recibe
las cadenas cifradas de la UART del host. Este ejemplo tambin muestra cmo varias funciones pueden ser gestionadas
por la misma tarea para reducir las necesidades de memoria. Es una caracterstica deseada en el caso de tarjetas inteligentes.
Slo existe en la mayora de los casos de 8 kB y 64 kB en casos extremos. La tarea de la contrasea as como aplicaciones
interacta mediante el IPCs. En fin despus de solicitar la autorizacin de host, las tareas se eliminan, (b) una tarea enva
la solicitud de la contrasea del usuario de interactuar con el host, (c) una tarea obtiene los comandos para ejecutar la
aplicacin deseada rutinas y datos del usuario del host.
El diseo de sistemas integrados para la creacin de mensajes SMS y la comunicacin es descrito. El ejemplo explicado la
utilizacin de teclas de comando, teclas de cursor y GUIs en SMS mviles crear y enviar las solicitudes. Se muestra que el
concepto de Orchestrator, utilizados en aplicaciones de robot, tambin es til para aplicaciones de telfonos mviles.

Lira!

Palabras clave y sus definiciones

Algoritmo adaptativo

Un algoritmo que se ajusta y adapta a los parmetros y lmites del cambio


Las perturbaciones en un sistema de control.

Control Adaptativo
Adaptive Cruise
Control

Un sistema de control que utiliza un algoritmo adaptativo para generar la salida de


seales de control.
El sistema de control del acelerador de un automvil para mantener constante la
velocidad de consigna.

Estudios de casos y ejemplos de diseo del programa de modelado y Progm

Bluetooth

Puerto COM de la
bomba de carga

Tecla Comando Software


criptogrfico
Cursor
Tecla de cursor
Evento del sistema de adquisicin de
datos

Clave de fabricacin

GPS (Global Positioning System)

Bloqueo de invalidacin
Tarjeta Java
JVM (Java Virtual Machine)
Direccin lgica cuadro de
mensaje
MIDI (interfaz digital de
instrumentos musicales)

Notificacin
Orquesta
Orchestrator

: un protocolo utilizado en dispositivos mviles con J


Organizar la red, auto-establecimiento y se
Del puerto COM del PC y otras caractersticas y es t
La comunicacin entre los dispositivos dentro de un {
Una combinacin de diodo y condensador para extraer
La alimentacin del sistema, mediante una apropiada \
Un puerto en la PC, el cual es utilizado para conectar ratones;
O 25 pines estndar RS232C conectar en serie o en paralelo,,,
Handshaking seales estndar especificado por UART. E
Los datos recibidos (RxD y TxD) (transmitida) datos en
Protocolo como en 11-bit UART (un bit de arranque, 8 bits de datos,
Parque,
Y Bits de parada) (Seccin 3.2)
Una clave que se utiliza para seleccionar el elemento del men opciones para iniciar una
nueva tarea o)
Software para cifrar y descifrar un mensaje o un conjunto de p
Utiliza un algoritmo de cifrado y otra para el algoritmo de estimado
Una lnea o un smbolo o icono que aparece en la pantalla para guiar
al usuario
Botn o texto que se muestra en esa posicin.
Cuando se presiona una tecla hacia la izquierda desplaza el cursor a la izquierda, a la
derecha se mueve;
A la derecha del cursor, y tambin hacia arriba y hacia abajo.

Un sistema para adquirir datos desde varios puertos y canales.


^
Una instancia de presencia de una notificacin o mensaje o conjunto de mensajes o
Action(s) que inicia un ISR. No hay reinicio de la notificacin sobre el inicio de ISR
a
Habilitar la respuesta al siguiente evento.
Una clave incrustada en la ROM en el momento de fabricacin de la tarjeta de modo
que la tarjeta obtiene un
Identidad nica.
Un sistema para determinar las ubicaciones, la velocidad, la direccin y
el
pordeunlenguaje
receptor.Java
Un para aplicaciones de tarjetas inteligentes.
Untiempo
formato
Conjunto de 24 o ms satlites de rbita media vigas las seales para activar un
Los cdigos de control que ejecutan las clases Java compilado sus cdigos de bytes
El receptor de GPS. El receptor se coloca en cualquier lugar en el mundo para recibir
El compilador de Java. Los cdigos se ejecutan con la ayuda de JVM en un sistema
seales
informtico.
Para la determinacin de estos cuatro parmetros.
Unabloqueo
direccin
desi
memoria
utilizada
un byte
datos
Un
que,
se colocan
en lospara
archivos
dede
datos
deolainstruccin
aplicacinde
enlos
la RTOS
tarjeta, hace
o aplicacin.
de
la tarjeta
Un vlido
buzn para
en el su
cual
la posterior.
notificacin(s) arc colocados por una tarea y otra tarea acepta
No
uso
El mensaje o espera a que el mensaje.
Un protocolo para definir las especificaciones necesarias para las interfaces de
hardware, mensaje
Formatos y para enviar el cambio de programa, mensajes del sistema y del canal.
Los mensajes de canal definir la nota musical, pitch bend, cambio de control,
Los cambios de programa y tras-touch (poli-presin) de los mensajes.
Un mensaje generado en escuchar pulsando una tecla o un cambio de estado de una
tecla
O haciendo clic en un botn o seleccionar un elemento de men. La notificacin es
para otra tarea.
Un evento musical jugado usando varios instrumentos musicales, cada uno con un
jugador
Y conducida por ^conductor.
Software, secuencias y sincroniza las entradas desde el es el k1,h
Fuente y genera los mensajes y salidas para los actuadores, pantalla y
Los cuadros de mensaje en los casos especificados e intervalos de tiempo. Los
cuadros de mensaje

616

Tecla de personalizacin

Direccin fsica
Piconet
PIS
Bits de proteccin

Qrio

Los sistemas integrados

: una llave colocada despus de probar el circuito de tarjetas inteligentes. La tarjeta est
personalizada para su propia rea de memoria protegida y el propio rgimen de traduccin
para la conversin entre direcciones lgicas y fsicas durante la ejecucin de las tareas en
la tarjeta. Despus de la insercin de esta clave, el RTOS y aplicacin utilice nicamente
las direcciones lgicas, y el procesador utiliza esta clave durante la traduccin entre dos
direcciones.
: La direccin utilizada por el procesador para obtener los datos o enviar los datos a la
memoria y los puertos.
: una red Bluetooth con los dispositivos dentro de una distancia de unos 10 m.
: nmero de identificacin personal. Banco o servicio de hosting asigna este PIN. La unidad
de asignacin tiene su propio PIN, llamado host PIN.
: un poco en la ROM que utiliza el procesador para no permitir la transferencia de datos e
instrucciones en la parte protegida del sistema externo de los autobuses. El procesador
externamente bloquea los ciclos de escritura para acceder a dichas direcciones.
: Una invencin de Sony significa Bsqueda de curiosidad, lo que dio un robot humanoide
ms fluida y rpida que nunca en 2003. pesaba 7,3 kg y 58 cm, y haba una hora de batera.
Un conjunto de la Qrios tambin tocaba la orquesta y nmeros de baile.

Radar (Deteccin de Radio y


cuelga)

: un sistema que utiliza ondas de radio de por debajo de 1 m para permitir que van de corta

RSA

objetos distantes midiendo cal trasmitlcd retardo entre la seal y la seal reflejada.
: un algoritmo que utiliza los nmeros primos. RSA representa las primeras letras de los
apellidos de sus tres inventores; Ron Rivest. Adi Shamir. Leonard Adleman.

Scatternet

. Una red de 100 m entre diversas piconets conectado a travs de un dispositivo Bluetooth
dispositivo de puentes y formado por auto-descubrimiento y auto-organizacin de las
caractersticas del protocolo Bluetooth.

La SIIA
Estado

; un algoritmo hash de seguridad basada en una funcin de hash.


: Estado de parmetros que los resultados despus de una entrada y que depende de las
secuencias anteriores de los Estados que se han producido desde a partir del estado inicial.
Por ejemplo, un contador tiene un estado diferente despus de un conteo de entrada y su
estado depende del nmero de entradas anteriores. Estado tambin pueden depender del
tiempo si el tiempo de interrupcin se utiliza como entrada de transicin de estados. Una
clave tiene estados on-off o si hizo clic en uno. dos, tres veces y luego de mltiples estados.
Estabilidad de los vehculos Por ejemplo en los estados de las teclas T9.
: estabilidad manteniendo la distancia constante entre varias secuencias en un convoy de
de cadenas
vehculos en la autopista o VIP deber.

Teclado T9.

: un teclado que incluye nueve teclas T9 para nueve nmeros del 1 al 9, as como por el
alfabeto de la a a la z o de la A a la Z). Texto alfanumrico introducido en la caja pequea
o cpita] caso es por el modo como por un estado clave. Carcter de texto depende del
estado de la tecla T9.

Vlvula de mariposa

: una vlvula para controlar el empuje del motor y, por consiguiente, aceleracin.

Unflockip PIN'

: un host PIN utilizado para desbloquear una cierta parte de la memoria de la tarjeta para
usar. Por ejemplo, para permitir una modificacin de la contrasea de usuario despus de
desbloquear (permitir el acceso mediante la modificacin de las condiciones de acceso
campos) archivo de contrasea en la memoria.

Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2

1617

Preguntas de repaso
1. Cmo son los mensajes MIDI utilizados para la realizacin de una orquesta? Dar ejemplos concretos.
2. La lista de tareas necesarias para la comunicacin mediante mosaico MIDI piconet Bluetooth entre los jugadores y el
conductor
Los robots. Explicar las asignaciones de prioridad de tareas en robot orquesta comunicacin los mensajes MIDI.
3. La lista de dispositivos embebidos en un coche de gama alta.
4. Qu es el control adaptativo? Cmo docs difffer algoritmo de control adaptativo de realimentacin de control
proporcional.
5. La lista de tareas y isr requerido para sistema ACC. Explicar las acciones de cada uno. Explicar las asignaciones de
prioridad de tareas
Un sistema ACC.
6. Cules deben ser las caractersticas de SO para aplicaciones automovilsticas? Por qu debera un MISRA-versin C de
C se utiliza en ACC
Tareas?
7. Qu neumtico el dispositivo Bluetooth piconet y scatternet rangos? Discutir las ventajas y desventajas de Bluetooth
Basndose entre comunicacin para el coche en el lugar o el radar- o la comunicacin basada en lser?
8. Por qu es Java populares para aplicaciones de tarjetas inteligentes?
9. Cmo funciona una tarjeta inteligente sin contacto hardware derivan el poder?
10. Por qu es el uso de un procesador con proteccin de memoria poco esencial?
11. Cul es la ventaja de cifrado cuando se utiliza una clave de fabricacin, personalizacin clave. utilizacin lioek y PIN?
12. Tabula las funciones necesarias en el sistema operativo para una tarjeta inteligente.
13. Explicar cmo la tarea de leer los puertos en la tarjeta inteligente se sincroniza con el controlador de dispositivo de puerto.
14. La lista de tareas y isr necesaria para un sistema de tarjeta inteligente. Explicar las acciones de cada uno. Explicar las
asignaciones de prioridad de tareas
En un sistema inteligente.
15. La lista de tareas y isr requerido para SMS mviles crear y enviar la aplicacin. Explicar las acciones de cada uno.
Explicar las asignaciones de prioridad de tareas en un SMS crear y enviar la aplicacin de telfono mvil.
16. Se puede usar un nmero de buzn de mensajes IPO de una tarea en un telfono mvil. Explicar cmo esto ha sido
efectivamente
Utilizado. Por qu el uso de buzones opcin seguida en lugar de cola de mensajes SMS en un telfono mvil y crear
Enviar la solicitud?

Ejercicios de prctica

17.
18.
19.
20.
21.

22.
23.
24.
25.

Cules son la lista de tareas para el baile de los robots.


Dar la lista de tareas del CAC con cadena estabilidad entre 4 espigas.
Clases de lista para el host de la tarjeta inteligente usada en los cajeros automticos de banco.
Dibujar diagramas de clases de aplicaciones de lectura de mensajes de la bandeja de entrada de SMS.
La escritura de secuencias y los diagramas de estado de evento en clave pulsando las teclas T9. Asumir esa clave5 tiene
secuencias rancio s' en las transiciones desde el ralent slate (0.5) (I, 5), (I. j), i, k), (1,1), (1,5), (l), (j.1. k), I, 1), (1, 5), hasta
dentro de un intervalo en el usuario no repita presionando de kcy5 o pulsa otra tecla de estado (0 ), donde n es cualquier
otra tecla T9. Cul ser el estado secuencias para keyl. key2. key3. key4 key6 key7 key8 y key9.
La lista de clases que extienden la tarea_ScreenDispi en un telfono mvil.
Dar un modelo de sincronizacin para la edicin y creacin de cadena usando Task_EditMessage durante la creacin de un
mensaje SMS.
Los cdigos de diseo para la edicin de texto usando SMS Task_EditMfessage.
.
Lista de clases que se utilizarn para la pantalla de inicio, apagado de pantalla despus de 15s y pop-ups ayuda a mostrar si
el cursor asesina a un elemento de men para ms de 2s.

Proceso de desarrollo
de software integrado
y herramientas
I:
3L

Recordar el captulo 1 de nuevo. Hemos definido un


sistema integrado como uno que tiene el software
incorporado en el hardware del equipo. Sistema integrado
tiene tres componentes principales.
Hardware
Software de la aplicacin principal. El software de la
aplicacin realice varias tareas
RTOS
En los captulos anteriores, hemos aprendido todos los
tres componentes principales de los sistemas integrados y
han abarcado temas siguientes.
Hardware del sistema integrado compuesto de
procesador, memoria, dispositivos y unidades bsicas
de hardware - Alimentacin elctrica, circuito de reloj
y circuito de reset.
Dispositivos consta de puertos de E/S para acceder a
los perifricos y otros on-chip o fuera del chipdispositivos fsicos. Son ejemplos de dispositivos
fsicos, UART
' "moderno, transceptor, timer-Contador, teclado,
teclado, pantalla LED, pantalla LCD, pulso, ADC y
DAC-dialer.

Un

*c
Yo

<3

Yo
V

Reloj de tiempo real-software controlado por temporizadores.


Dispositivos virtuales (tubo, hembra, archivo, etc).
Los controladores de dispositivo y de interrupcin en un
mecanismo de tramitacin de embedded
Sistema.
Necesidad de disipacin de potencia por el procesador de gestin
Instrucciones durante los clculos de alta velocidad.
La seleccin de los procesadores, memoria y dispositivos para
Obtener un rendimiento ptimo del sistema.
La interconexin de los buses de sistema con la memoria y los
dispositivos de E/S,
Y el uso del controlador DMA para mejorar el rendimiento del
sistema
Habilitacin de las unidades de E/S para tener acceso directo a la
memoria del sistema.
uso de
de alto
IPCs,
ejemplar
de USA
RTOS MUCOSlos(pC/OS RTOS,
Lenguaje
nivel,
conceptos
de programacin,
modelosOde
II)
y
VxWorks
funciones
y
estudio
de
MUCOS,
VxWorks,
programa
OSEK,
Windows
CE y Linux
programacin en tiempo real
Y enfoques
de ingeniera
de software.
Entornos y sus aplicaciones.
Los captulos de entre 5 y 12 se centr en aspectos del software. En este captulo nos
centraremos en
Integracin de hardware y software de aspecto. Nos wilt aprender lo siguiente para
Comprender los procesos y las herramientas de desarrollo integradas.
1. Software, cdigo fuente y un entorno de desarrollo integrado de ingeniera
{ I D E ) herramientas.
2. El software es desarrollado en un equipo host, digamos. un ordenador personal
para un
Sistema target, que en la mayora de los casos utiliza distinct procesador y sistema
operativo. Hay
Dos plataformas de desarrollo: host y las mquinas de destino.
3. Y Unking localizador para crear fie para imagen binaria para el ltimo software.
4. Programador de Dispositivos para grabar los cdigos en la PROM flash o escuchas
de sistema
Monitorear los cdigos en la memoria ROM.
5. Problemas en el desarrollo del sistema integrado que necesita se dirigi por
cualquier
Equipo de desarrollo. Estos son independientes de software-hardware, diseo
Hardware-software co-diseo, elegir el procesador adecuado, la asignacin de
memoria
Direcciones, y dispositivos de bus y portabilidad de OS/RTOS.

Los sistemas integrados

620

13.1 Introduccin al proceso de desarrollo de software integrado y


herramientas
13.1.1

Proceso de desarrollo y Hardware-Software

Figura 13.1(a) muestra el proceso de desarrollo de un sistema integrado y la figura 13.1(b) editar-test-debug ciclo
durante la fase de ejecucin del proceso de desarrollo. Hay ciclos de pruebas de edicin-depuracin durante las
fases de desarrollo. Mientras que la parte del procesador una vez elegido permanece fijo, la aplicacin de cdigos
de software tienen que ser perfeccionado por una serie de carreras y pruebas. Mientras que el costo del procesador
es bastante pequea, el costo de desarrollar un sistema objetivo final es bastante alto y necesita un mayor plazo de
tiempo que el hardware en el diseo del circuito.
Fase de desarrollo

Enfoques durante
Ciclo Edit-Test-debug
Utilizando un
T Sistema

Usando un emulador
Uso de Target
Usando un simulador
Para el procesador del sistema de destino y el hielo para Hardware
creacin de prototipos
(b)

Usando IDE o
Herramienta de

Fig. 13.1 (a) Proceso de desarrollo de un sistema integrado (b) editar-test-debug ciclo durante la fase de ejecucin del
proceso de desarrollo

El desarrollador utiliza cuatro enfoques principales para la edicin de prueba ciclos de depuracin.
1. Un IDE o prototipo herramienta (consulte la seccin 13.1.4).
2. Un simulador sin ningn hardware (consulte la seccin 14.2).
3. Procesador nicamente en el sistema de destino y utiliza un entre el hielo (en emulador de circuito)
(consulte la seccin 14.3.6).
4. Sistema de destino en la ltima etapa.

13.1.2 Herramientas de software

"

Las herramientas son necesarias para la aplicacin del software de programacin de lenguaje de alto nivel. Tambin
son necesarios los RTOS, depuracin, prueba el lenguaje ensamblador (para la ejecucin de las funciones del
controlador de dispositivo)

| 621

Proceso de desarrollo de software integrado y herramientas

Ynd herramientas de integracin de sistemas. Tabla I 3. I enumera las herramientas de software en la aplicacin de software y
hardware para sistemas embebidos.

Cuadro 13.1 mdulos de software y herramientas para un sistema integrado de impiementation


Software Toolx

Aplicacin

Kit de desarrollo

Kit de desarrollo se utiliza para editar, configurar (activacin y desactivacin de las funciones de C++),
interfaces grficas de usuario desarrollo y compilacin.

Cdigo fuente
Ingeniera
Software
RTOS

Integrado
Desarrollo
Medio ambiente
Proiotyper

Compilador
Ensamblador

Cross-assembler
Compilador cruzado
Herramientas de
pruebas y depuracin

Herramienta de ingeniera de cdigo fuente se utiliza para editar, configurar (por ejemplo, activacin y
desactivacin de las funciones de C++), interfaces grficas de usuario y de desarrollo, as como para
compilar el cdigo fuente de comprensin, navegacin y exploracin, y depuracin (Seccin 13.1.3).
Un sistema operativo (SO) para multitareas, proceso, memoria 10, red, dispositivos, sistema de archivos
y en tiempo real para el control de procesos.
Entorno de software y hardware que consta de simuladores, editores, compiladores, ensambladores,
RTOS, depuradores, el estetoscopio, tracer, emuladores, analizadores lgicos cdigos de aplicacin'
quemadores para el desarrollo integrado de un sistema (Seccin 13.1.1).
Para la simulacin de ingeniera de cdigo fuente, incluida la compilacin, depuracin y navegar a travs
de los cdigos usando un navegador, resumiendo el estado completo del sistema de destino final durante
la fase de desarrollo. Tornado prototyper de WindRiver para cross-entorno de desarrollo integrado con
un conjunto de herramientas (Seccin i4.2.4).
Para utilizar el conjunto completo de cdigos, funciones, expresiones y las rutinas de la biblioteca y crear
un archivo llamado archivo de objeto.
Para traducir la asamblea mnemnicos a binario opcodes (instrucciones), que est en un archivo
ejecutable, llamado archivo binario. Tambin crea un archivo de lista que se puede imprimir. El archivo
de lista tiene direccin, cdigo fuente en lenguaje ensamblador (mnemnico) y hexadecimal cdigos de
objeto. El archivo tiene las direcciones que se asignan de nuevo durante la ejecucin real del programa
en lenguaje ensamblador.
Para la conversin de cdigo objeto o ejecutable cdigos para un procesador en el sistema de desarrollo
de otros cdigos para otro procesador para sistemas embebidos y viceversa.
Para compilar los cdigos fuente para un otro procesador y viceversa.
Simulador para simular la mayora de funciones de un sistema integrado de destino incluidos en el circuito
de memoria adicionales, perifricos y autobuses en el sistema host en s (Seccin 14.2.3): estetoscopio
dinmicamente para el seguimiento de los cambios en cualquier variable del programa: trace alcance para
rastrear los cambios en los mdulos y las tareas como una funcin de tiempo en el eje X: memoscope
para el uso de la memoria, que es un aspecto crtico de un sistema incorporado; ScopeProfile para
encontrar la tarea en la que el CPU gasta cuntos de sus ciclos a fin de comprender los cuellos de botella
de rendimiento: emulador en circuito (Seccin 14.3.6): monitor (Seccin 14.3.7).

Localizador
Utiliza la salida de ensamblador cruzado y un mapa de asignacin de memoria y proporciona el
localizador de salida del programa (seccin 13.3).
Editor

Intrprete

Para escribir C o conjunto de cdigos mnemnicos utilizando el teclado del sistema anfitrin (PC) para
entrar en el programa. Permite la entrada, adicin, eliminacin, insercin de anexar archivos o lneas
previamente escrito, combinando el registro y archivos a las posiciones especficas. Crea un archivo de
cdigo fuente que almacena el archivo editado. Que tiene un nombre apropiado.
Para la expresin por la expresin (lnea por lnea) Traduccin al cdigo ejecutable de la mquina.

622

Los sistemas integrados

Se utilizan herramientas de software para desarrollar software para el diseo de un sistema integrado.
Sofisticadas herramientas de entorno de desarrollo integrado y el desarrollo de prototipos de herramientas
necesarias para el desarrollo integrado de hardware y software del sistema. Las pruebas y la depuracin de
herramientas son necesarias para las pruebas y la depuracin.

13.1.3 Herramienta de ingeniera de cdigo fuente


Una herramienta de ingeniera de cdigo fuente es de gran ayuda para el desarrollo de cdigo fuente, recopilacin
y compilacin cruzada. Las herramientas estn disponibles comercialmente para sistemas integrados de cdigo
de C/C++ en ingeniera, pruebas y depuracin.
Las caractersticas tpicas de una herramienta son la comprensin, la navegacin y exploracin, editar, depurar
la configuracin (activacin y desactivacin de las funciones de C++) y compilar. Una herramienta para C y C++
es SNiFF+. Es a partir de WindRiver Systems. Una versin, SNiFF+ Pro tiene plena SNiFF+ cdigo as como
mdulo de depuracin. Principales caractersticas de la herramienta son las siguientes:
1. Busca y enumera las definiciones, smbolos, la jerarqua de las clases y la herencia de clases de rboles.
[Los smbolos incluyen los miembros de clase. Un rbol es una estructura de datos. Una estructura de datos
rbol tiene una raz. A partir de las races, las ramas surgen de las ramas y ms ramas surgen. En las ramas,
finalmente no son las hojas de terminacin (nodos)].
2. Se busca y muestra las dependencias de los smbolos y los smbolos definidos, variables, funciones
(mtodos) y otros smbolos.
3. Supervisa, activa y desactiva la aplicacin funciones virtuales. Uso de funciones virtuales es dinmico para
el enlace en tiempo de ejecucin.
4. Se considera el efecto completo de cualquier cambio en el cdigo en el cdigo fuente.
5. Se busca y muestra las dependencias y la jerarqua de los archivos de encabezado incluidos.
6. Se desplaza hacia adelante y atrs entre la aplicacin y la declaracin del smbolo.
7. Se desplaza hacia adelante y atrs entre el anular y sobre mtodos de equitacin. (mtodo de invalidacin
es hija de un mtodo en una clase con el mismo nombre y nmero y tipos de argumentos en la clase padre.
Ms
8. Se navega a travs de la informacin sobre la instanciacin de objetos (creacin) de una clase.
9. Se navega a travs de la encapsulacin de las variables entre los miembros y navega a travs de los sectores
pblico, privado y de visibilidad protegida de los miembros.
10. Se navega a travs del componente objeto de relaciones.
11. Se elimina automticamente el error-prone y tareas no utilizados.
12. Proporciona fcil y automatizada de bsqueda y reemplazo.
El programador de software integrado para aplicaciones sofisticadas utiliza una herramienta de ingeniera de
cdigo fuente para ; la codificacin de los programas, los perfiles, las pruebas y la depuracin de embedded
system
software.

13.1.4 Entorno de desarrollo integrado (IDE)

$
DE consta de simuladores con editores, compiladores, ensambladores, etc., emuladores, analizadores lgicos y
EPROMA IEPROM cdigos de aplicacin grabadora. Un IDE debe tener las siguientes caractersticas.
1. Se dispone de un mecanismo para definir una familia de procesadores, as como definir su versin. Tiene
cdigo fuente herramientas de ingeniera (Seccin 13.1.3) que incorpora el editor, compilador de fort,
embedded C++, ensamblador, enlazador, localizador, analizador lgico, el estetoscopio y 'Ayuda'.
2. Tiene la facilidad de un ensamblador definibles por el usuario para apoyar una nueva versin o tipo de
procesador. Me proporciona un entorno multiusuario.

Proceso de desarrollo de software integrado y herramientas

623

3. El proceso de diseo se divide en varias subpartes. Cada programador independiente pero se asigna tareas
vinculadas.
-*. 1( simula la unidad de hardware como emulador, perifricos y dispositivos de E/S en un sistema host
(PC), ft admite puntos de interrupcin condicional e incondicional. Proporciona vectores de prueba. Una
prueba es el programa vector-path para el controlado (baja del programa utilizado duing la fase de pruebas
y posteriormente eliminado o deshabilitado para completar esa fase.
5. Se depura por paso a paso. Tiene la facilidad de sincronizar los perifricos internos.
6. Proporciona ventanas en la pantalla. Estos proporcionan la informacin detallada de la parte de cdigo
fuente con etiquetas y argumentos simblicos, la registra como la ejecucin contina, la informacin
detallada del estado de los dispositivos perifricos, el estado de la RAM y puertos, y el estado de la pila
y el flujo del programa como
Contina.
7. Se verifica el rendimiento de un sistema objetivo. Tiene un emulador incorporado en el sistema de
desarrollo que sigue siendo independiente de un determinado sistema de destino, adems de un analizador
lgico para hasta 256 o 512 transacciones en la direccin y los buses de datos despus del disparo.
Una herramienta IDE es de WindRiver Systems y que emplea el sistema operativo VxWorks RTOS (Seccin
9.3). Una caracterstica arquitectnica es 'dynamic vinculacin incremental y cargar los mdulos de objeto" en el
sistema de destino. Familias de procesadores destino ejemplar que son compatibles son PowerPC, Intel y Motorola.
Pentiums, MIPS y ARM/brazo fuerte. Ayuda en el desarrollo de prototipos y pruebas a las aplicaciones de
prototipo. Existe un editor de texto con GNU C/C++ compiladores. La depuracin se realiza en tres niveles, en el
nivel de cdigo fuente, el nivel de tarea (programacin, el IPCs y interrumpe estudio) y en el nivel de dominio.
Incluye VxSim, estetoscopio y tracescope. Figura 13.2(a) y (b) muestran IDE simple y sofisticado, respectivamente.
Un IDE (pVision_2) es de keil Software Inc. con RTX51 RTOS para 8051 familias de procesadores de destino.
Otro IDE keil jiVision_3 es para la familia de procesadores ARM y microcontroladores. Tiene cross-compilador,
depurador en el nivel de origen, el examinador de objetos, para supervisar el comportamiento en tiempo de
ejecucin, el caso de visualizacin de eventos. El objeto Browser explora el comportamiento de las aplicaciones
extra. Se muestra grficamente el RTOS tareas, colas, semforos y objetos IPC. Un anlisis en tiempo real (RTA)
perfiles suite la cobertura de cdigo y localiza los errores en tiempo de ejecucin. Optimiza el uso de la memoria.

13.2 HOST Y LAS MQUINAS DE DESTINO


Durante el proceso de desarrollo, se utiliza un sistema de host antes de localizar y grabar los cdigos en el directorio
de destino. El hardware y software de la placa de destino es posteriormente copiado para obtener el ltimo sistema
incorporado, que funcionar exactamente como el probado y depurado y terminado durante el proceso de desarrollo.

13.2.1 Utilizando un sistema de host


Sistema host es un PC o estacin de trabajo u ordenador porttil. Tiene los siguientes artculos de ferretera.
1. Procesador de alto rendimiento con cachs
2. Gran memoria RAM
3. Memoria de slo lectura (ROMBIOS basic input-output system)
4. Memoria de gran tamao en disco
5. Teclado
6. Monitor de visualizacin
7. Ratones
8. Conexin de red

Los sistemas integrados

624

___/

II un equipo completo. Tiene herramientas de


software (Tabla 13.11 y debe indude lo siguiente:
1. Kit de desarrollo del programa de foros
de alto nivel programa de lenguaje o IDE.
2. Procesador Host y compilador de
compilador cruzado.
3. Cross-assembler.

Simulator

C-Editor

Yo
Emulador

~~i~
Analizador de lgica

Yo
Sistema de
destino

RTOS
Cross-Assembler

Vectores de prueba

Kit de herramientas de desarrollo del programa


Rendimiento
Programa
Evaluador
IDE para diversos tipos y versiones de microcontrolador
Kit de herramientas de desarrollo o IDE tiene un
con la posibilidad de actualizacin de IDE para futuras
editor. El
versiones.
Editor se usa para escribir los cdigos C o general
Mnemnicos o C++ o Java o Visual C++ utilizando
Ilie teclado del sistema host (PC) para entrar
El programa. Mediante GUI, permite la entrada,
(f"
Adicin, eliminacin, insercin, anexando
(a)
Simple
de
entorno
de desarrollo integrado
previamente
Fig. 13.2
Lneas escritas o archivos, combinando el registro y
(IDE) b) IDE sofisticado
archivos en
Die posiciones especficas. Se crea un archivo de
cdigo fuente que
-lores el archivo editado. Tambin tiene una
adecuada
Nombre (dado por el programador). Puede utilizar
Azulejos creados anteriormente y tambin pueden
integrar la
Varios mosaicos de origen. Puede guardar versiones diferentes de los archivos de origen. Kit de desarrollo o
programa tiene el IDE
Cod., herramientas de generacin (compilador, ensamblador, enlazador y cargador).
Un lenguaje de alto nivel es independiente de la mquina. Tendr una expresin como x = x + 23. o X = 2*s +
V>7. + 19 y as sucesivamente. Cuando utilizamos un lenguaje de alto nivel C. es una herramienta necesaria para
obtener los cdigos de mquina i.'i un destino svstem. El programador escribe las teclas aceleradoras o programa
en C, usando el editor. Los ratones y kevhoard combinaciones del sistema host (PC) o sistema host arc para entrar
en el programa de cdigos. Cada idioma necesita' un compilador. Los cdigos pueden no ser ejecutable mediante
un intrprete.
Yo un intrprete expresin por expresin (lnea por lnea) Traduccin a la mquina-cdigos ejecutables.
2. El compilador usa el conjunto completo de las expresiones. Tambin puede incluir las expresiones de las
rutinas de biblioteca; es decir. standard programas hechos a la medida. Mientras que un intrprete en la
ayuda en lnea de la ejecucin de cdigos, un compilador ayuda en la programacin off-line para obtener
4.
los cdigos de mquina ejecutable ms tarde. Los programas en C se utilizan con un intrprete, as como
con un compilador. Un compilador cruzado es un compilador que crea archivos ejecutables binarios para
el procesador del sistema de destino.
3. Un programa en lenguaje ensamblador tiene mnemnicos que son dependientes de la mquina. Ejemplo
de un mnemnico es SBC A. OxOB. Esto significa una instruccin, lo que resta, junto con el anterior de
"llevar", un registro del procesador con el nmero hexadecimal OxOB. Un conjunto mnemnico es
especfico para un procesador o microcontrolador. Esto es de acuerdo a las instrucciones que se
proporcionan en el conjunto de instrucciones. La Asamblea mnemnicos necesita de un intrprete para
traducir en los cdigos de mquina que se ejecuta en un dispositivo de procesamiento especfico.
Un objeto dissembler traduce los cdigos en el formulario mnemnicos del lenguaje ensamblador. Ayuda
en la comprensin de los cdigos objeto hechas anteriormente.
Un ensamblador es un programa que traduce la asamblea mnemnicos en el archivo binario opcodes e

Proceso de desarrollo de software integrado y herramientas

6. Un enlazador enlaces del objeto que necesita archivos de cdigo y el cdigo de la biblioteca de azulejos.
Esto es antes de que el ms fuerte reasigna las direcciones y los cdigos de pulso en las direcciones fsicas
en la memoria, y se ejecuta el programa. Loader perforins las funciones anlogas en la mquina host
como el localizador funciona en un sistema de destino en conjuncin con un dispositivo programador.
Cross-Compiler C o C++ o Visual C++ compilar archivos de cdigo fuente segn la plataforma nativa (incluido el
SO del sistema en que se ejecuta la imagen binaria). Clases Java compila como cdigos de bytes y, por lo tanto,
son independientes de la plataforma. Un compilador cruzado es un compilador que crea archivos ejecutables
binarios para el procesador del sistema de destino.
Cross-Assembler convierte los cdigos de objeto o ejecutable cdigos para un procesador a otros cdigos para
otro procesador y viceversa. La cruz-ensamblador ensambla el conjunto de cdigos del procesador de destino
como el conjunto de los cdigos nos permite utilizar un procesador del sistema host (PC) utilizados en el desarrollo
del sistema. Posteriormente, se proporciona el cdigo objeto para el procesador de destino. Estos cdigos sern
los realmente necesarios en el sistema desarrollado finalmente.
Las herramientas de generacin de cdigo se utilizan para crear y compilar en el host sysetm. A continuacin,
los cdigos se prueban en el host sysetm utilizando simuladores y nmero de las ltimas herramientas de
software como el profiler, mbito de la memoria, el estetoscopio y la memoria y el alcance de cobertura de
cdigo.

13.2.2 Sistema de destino


Un sistema de destino tiene un procesador, la memoria ROM de la imagen de ROM del software incorporado.
RAM para pila, variables temporales y bferes de memoria, perifricos e interfaces. Figura 13.3(a) y tb) muestran
sencillos y sofisticados sistemas de destino, respectivamente. Algunos sistemas de destino tienen 8 o 16 MB de
memoria de hash y 64 MB de SDRAM. Un sistema de destino pueden poseer el RS232 as como conectividad
Ethernet 10/100-base o puerto USB.

(b)
Fig. 13.3 (a) Simple sistema de destino (b) un sofisticado sistema de destino

Los sistemas integrados

Un sistema de destino difiere de un sistema final. Se comunica con el ordenador y trabaja como freelance yslem.
No se pueden repetir la descarga de cdigos en ella durante la fase de desarrollo. El sistema de destino o de su
copia de trabajo simplemente como el posterior al sistema integrado.
Consideran que un sistema objetivo est bajo desarrollo. En la fase de desarrollo del sistema de destino, digamos
de una Niteri, los cdigos de software de aplicacin tiene que ser escrito. Estos tienen que estar incorporados
en el Hash. Estos han > ser repetidamente escrito o modificado y probado utilizando el diagnstico, la simulacin
y las herramientas de depuracin, y ii incrustado una prueba final en un edil-prueba-dcbug ciclo demuestra que
funciona segn las especificaciones. El programador iter o, simplemente se copia en el sistema final o producto.
Tambin un sistema final puede utilizar un flash ROM en lugar de l el sistema de destino.
Un ejemplo de sistema de destino es una placa que tiene un procesador LPC21xx de Philips (brazo
microcontrolador). Es 1C2100 Placa de evaluacin de Keil.
Consideremos un sofisticado sistema de destino ejemplar, VxWorks 5.4. Ofrece compatibilidad en tiempo de
ejecucin por ;aleable RTOS Support, soporte de protocolos de Internet. Soporte de biblioteca POSIX, sistema de
archivos y soportes grficos, tiene un agente de depuracin. Tiene un paquete de soporte back-end para un
procesador especfico o microcontrolador. El sistema conecta irget el simulador en paralelo del ordenador host a
travs de una herramienta de servidor de destino con hielo, Seccin 14.3.5) mediante Ethernet o lneas de serie
desde el ordenador host.

' 13.B la vinculacin y la localizacin de software


Vinculador vincula los cdigos compilados de la aplicacin, los cdigos de objeto de la biblioteca y del kernel del
sistema operativo. La vinculacin es jeessary porque hay una serie de cdigos que se asocien para el archivo binario
final. Por ejemplo, existen e cdigos estndar para programar un retraso de tarea para la que no hay una referencia
en el programa en lenguaje ensamblador. Los Ides para el retraso debe vincular con el conjunto de cdigos. El
cdigo de retardo es secuencial de un determinado principio Idress. La Asamblea tambin es software de cdigo
secuencial comenzando desde una determinada direccin. Tanto los cdigos del neumtico en el csent distintas y
las direcciones disponibles en el sistema. Un vinculador estos vnculos. El archivo vinculado en binario para 7i en
un equipo es comnmente conocido como mosaico ejecutable o simplemente \exe' mosaico. Despus de la
vinculacin, tiene que existir la asignacin de las secuencias de colocar los cdigos antes de la colocacin de los
cdigos en la memoria.
Un programa cargado en la RAM del equipo. Amplifica el programa realiza la tarea de reasignar los
cdigos ter encontrar las direcciones de memoria fsica disponible en un momento dado. El cargador es parte del
SO y ases cdigos en la memoria despus de leer el archivo '.exe'. Este paso es necesario porque la memoria
disponible Idresses no puede empezar en 0x0000, y cdigos binarios tienen que ser cargados en las diferentes
direcciones durante el n. El cargador se encuentra la direccin de inicio apropiado. En un equipo, despus de la
carga en una seccin de la memoria RAM, e programa est listo para funcionar.
Cuando el cdigo se incrusta en la ROM o flash, un sistema de proceso de diseo locales estos cdigos como una
imagen de la ROM, te cdigos estn colocados permanentemente en la realidad las direcciones disponibles en
flash-ROM. En sistemas embebidos, ere existe un programa para hacer un seguimiento de las direcciones
disponibles en diferentes momentos durante la ejecucin como en un mputer. En sistemas integrados, por lo que
el siguiente paso despus de la vinculacin es el uso de un localizador para el programa-cdigos d los datos en
lugar de la cargadora. El localizador tiene las siguientes caractersticas.
1. El localizador est especificado por el programador las direcciones disponibles en la RAM y la ROM en el
destino. El programador tiene que definir las direcciones disponibles para cargar y crear archivos para
localizar permanentemente los cdigos usando un dispositivo programador.
2. Utiliza cross-assembler salida, un mapa de asignacin de memoria y proporciona el programa de localizador
de archivo de salida. Es el paso final del proceso de diseo de software para el sistema integrado! Programa
de localizador de salida est en el archivo hex de Intel o Motorola S-Record format. El Localizador utiliza
los cdigos de compilacin cruzada en diferentes

Proceso de desarrollo de software integrado y herramientas

627

Cross-compilado segmentos tor: (i) las instrucciones, (ii) inicializa los valores y direcciones, (iii) las
cadenas de constantes y (iv) los datos no inicializado.
3. El localizador localiza las tareas de E/S y controladores de dispositivos de hardware cdigos en las
direcciones sin reasignacin. Esto es porque el puerto y direcciones para estos dispositivos son fijos para
un sistema dado. Estas son como por el circuito de interfaz entre el sistema de autobuses y puertos o
dispositivos.
4. El programa localizador reasigna el archivo vinculado y crea un archivo para la ubicacin permanente
de cdigos en un formato estndar.
5. El formato de archivo puede ser Motorola S-record o formato de archivo hex de Intel o cualquier otro
formato (Seccin 13.3.2).
La figura 13.4 muestra las diferentes herramientas de software y cadena de acciones de linker en el host y el
localizador en un embedded
Sistema.

Fig. 13.4 diversas herramientas de software y cadena de acciones de linker en el host y el localizador en un sistema
incorporado

13.3.1 Las diferencias en los archivos, el direccionamiento y el mtodo de


resolucin de direccin
Tabic 13.2 da las diferencias de direccionamiento en el enlazador y el localizador.
Cuadro 13.2 Diferencias en archivos, abordando en enlazador y Locator

Accin
Creacin de
archivos

Archivo fomial
Direcciones

Resolucin de
direccin
Mtodo

Diferencia
Vinculador crea archivo vinculado para el disco para su uso por el sistema operativo host y
el cargador y, a continuacin, realiza la asignacin de direcciones de memoria. Crea
localizador archivo vinculado para el uso de un dispositivo
Los formatos de archivo son linker como por el sistema de archivos utilizado para el disco.
Archivo localizador es segn Motorola- S o Intel hex o cualquier otro formato (Seccin
13.3.2).
Vinculador
direcciones son para el sistema host y el procesador son direcciones relativas,
que reasigna el cargador. Localizador direcciones son para el sistema de destino y el
procesador son direcciones que no son reasignados despus.
Una instruccin puede tener la direccin especificada en el archivo de objetos, mientras que
el
actual host
u objetivo
ser
Diferentes
espacios
de puede
direcciones
asignados para llamar a ese archivo objeto. Las
direcciones
se
resolviera
adecuadamente
En enlazador jke, as como localizador. Vinculador utiliza direcciones relativas y
direcciones reales se asigna en tiempo de ejecucin cuando el sistema operativo realiza las
asignaciones de memoria y el cargador carga el programa. Localizador utiliza direcciones,
que una vez asignada permanece permanente como el localizador de registros de archivo
creado vagabundos (integra) en el sistema.

Los sistemas integrados

628

13.3.2 Localizador de archivos de salida en imagen binaria-S Motorola e Intel


formatos Hex.
Mapa de bits binarios (imagen binaria) significa que los bytes se envan en una secuencia segn la direccin inicial
a la direccin final.

Motorola S-Record Format formato Motorola S-record es un estndar de la industria para


almacenar el localizador llle. antes de su uso por el dispositivo programador o programador
ROM-mscara. Se llama S-record porque tiene como primer carcter 'S' en cada lnea. Una
lnea es como sigue: lirst carcter es s, el segundo carcter es 2 (para especificar el tipo de
registro), la tercera y la cuarta son caracteres para un nmero hexadecimal, es decir 14 (para
especificar que hay 20 bytes en esa lnea), los restantes 40 caracteres (nibbles) dividen la
direccin (3 bytes) y datos (16 bytes) y checksum ! Yo byte). El cuadro 13.3 muestra una tpica
S-record localizador como un programador de dispositivos de salida y entrada. Se deja como
ejercicio para el lector para mostrar que Addr para la lnea 6 en el registro de la tabla 13.3 ser 0x000037.
Formato de archivo Hex de Intel Intel hex es otro formato de archivo estndar de la industria
para almacenar el archivo localizador i, mi puesto, antes de su utilizacin por el dispositivo
programador o programador ROM-mscara. Una lnea es como sigue: El primer carcter
(colon), el segundo y tercer caracteres para recuentos de datos (asumir = 10 en hexadecimal
en caso nd = 16) en la lnea de direccin (bytes, y el tipo de datos Byte de checksum bye excluidos, slo los bytes
de datos reales en la lnea IV, que son quemados en la ROM son contadas), direccin de cuarto a sptimo (2 bytes),
sexta y sptima como 0 y 0 para especificar datos como los datos de la ROM y los restantes 32 caracteres como los
Cuadro 13.3 un ejemplar formato Motorola S-Record
datos (16 bytes) y 2 caracteres para el checksum i I byte). El cuadro 13.4 muestra un archivo hex de Intel, que se
corresponde conPrimera
los mismos Segundo
datos que en el Motorola
S-record en el cuadro 13.4 como un localizador de dispositivos
Direccin.
VerificarCarcter
Addr4 para el lector para mostrar que Addr para la lnea
de
entrada y Carcter
salida del programador.
Se deja como ejercicio
Simr 6 en
Lnea j
el
registro de la tabla 13.4 ser 0x0037.Los caracteres
J \'imiber!
Yo
Yo

tercero y cuarto

N:ls Bytes para su almacenamiento en la memoria ROM

para N-

<i

Yo

Ii

'2

C Ooooo Cc cc aa dd ee ff xx yy
c
2
000014
Cc bb dd dd ee ff XX YY ZZ xx aa bb cc dd

;)

[. 5

de Addr (valor mximo o/NjCUtt ser 253 decimal)

000000

Aa bb cc dd ee ff xx yy LL BB CC DEL

CsO
Cs 1
Cs2

0A

Cs3

000022
000023

Cc bb dd dd

Cs4

000027

Bbcc dd dd ee ff XX YY ZZ bbcc dd aa ff 01 cO

CsS

1 El

nmero de lnea no est en el registro.


-2 significa la disponibilidad de registro de datos en esta lnea. Un byte de los datos secuencialmente vagabundos en la ROM.
'N= 10 significa que hay 16 bytes hexadecimales en esta lnea, incluyendo los 3 bytes parala direccin y 1 byte de checksum enla
final de la lnea. Nmero de bytes de datos para almacenar estn especificados en esta lnea, Nd = 12 decimales. 0C significa N =
12 y Nd = 8 decimal. 4Direccin de inicio de 3 bytes, 000000 significa el prximo 12 bytes store entre la direccin 0x000000 para OxOOOOOB. Por lo tanto, en la lnea siguiente direccin
inicial addr = 0x000000.
5

bytes para grabar en la memoria ROM estn en esta lnea y numeracin = ND. Cada personaje en esta columna representa un
nibble. Pep. cs I... son los checksums de 1 byte cada uno de todos los bits en la lnea nmero 0, yo..., respectivamente.

Proceso de desarrollo de software integrado y herramientas

629

Cuadro 13.4 un ejemplar de formato de archivo Hex de Intel


Lnea
Nmero1

VerificarSuma>

Direccin.
Addr'

Sexto y Sptimo
caracteres4

Primer Segundo y tercer

N,es de bytes para su almacenamiento en la memoria


ROM de Addr (valor mximo de la nd puede ser 253
decimal)

carcter caracteres para C2

0
1

Aa bb cc dd ee ff XX YY ZZ bb cc dd

CsO

0000
OOOC

Cc cc aa dd ee ff xx yy

Csl

0014

Cc bb dd dd ee ff XX YY ZZ xx aa bb cc dd

Cs2

0022

OA

Cs3

0023

Cc bb dd dd

Cs4

Cc bb dd dd ee ff XX YY ZZ ff aa bb cc dd 01
cO

Cs5

0.

0027

0
0

Lnea ! nmero no est en el registro.


Nmero de bytes de datos para almacenar especificado en esta lnea. Cd = 12 decimales. OC significa Cd = 12.
'Starting direccin de 2 bytes. 0000 significa el prximo 12 bytes store entre las direcciones Ox(KKX) y OxOOOB. Por lo tant o,
en la lnea siguiente direccin inicial addr = OxOOOC.
J() y 0 significa la disponibilidad de registro de datos en esta lnea es de la ROM. Un byte de los datos secuencialmente quemaduras en el

ROM.
'* Bytes para grabar en la memoria ROM estn en esta lnea y numeracin = ND. Cada personaje en esta columna representa un
nibble. Pep. csl... son los checksums de I byte cada uno de todos los bits en la lnea nmero 0. I.... respectivamente.

13.3.3 Mapa de la memoria para la codificacin de un localizador


Figura 13.5(a) muestra las direcciones de memoria necesarias en die facilidad de Prinecion arquitectura en el
sistema. Figura 13.5(h) Muestra direcciones de memoria necesaria en la facilidad de la arquitectura de Harvard.
Estas difieren en el siguiente aspecto.
1. Vectores y punteros, variables, segmentos de programa y bloques de memoria para datos y pilas tienen
distintas direcciones en el programa de arquitectura de memoria de Princeton.
2. Segmentos de programa y bloques de memoria para datos y bloques tienen distintos conjuntos de
direcciones en arquitectura de la Universidad de Harvard. Las seales de control y leer-escribir
instrucciones tambin estn separados.
Mapa de asignacin de la memoria del sistema no es slo un reflejo de direcciones disponibles a los bloques
de memoria, y los segmentos del programa y direcciones disponibles a los 10 dispositivos, pero tambin refleja
una descripcin de la memoria y 10 dispositivos de hardware del sistema. Las guas que se correlaciona con la
presencia real de las distintas memorias en las distintas unidades. La EPROM. PROM. ROM. EEPROM. Fiash,
memoria SRAM (Static RAM) y DRAM (Dynamic RAM) y 10 dispositivos. Refleja la asignacin de memoria
para los programas y los datos y 10 operaciones por el programa de localizador. Muestra los bloques de memoria
y puertos (dispositivos) en estas direcciones. Figura 13.6(a) y (b) muestran la memoria y los dispositivos de E/S
para el mapa de asignacin de memoria 68HCI1 (habiendo 10 Arquitectura de memoria asignada) y para un IBM
PC 80x86) (habiendo IO-mapped 10 Arquitectura), respectivamente.
Cuatro ejemplos de mapas de asignacin de memoria se indican en la figura 13.7(a)-(d). Sistema de mapa de
dispositivos de E/S pueden ser diseados por separado. 10 Un mapa no slo refleja la neeserhtc real de los
dispositivos de E/S, sino que tambin gua el

Disponibles las direcciones de los distintos registros de dispositivo y puerto de datos. (Un ejemplo de un dispositivo es
un temporizador. 1/0
Son los dispositivos perifricos del sistema).

Los sistemas integrados

Mapa de la memoria se utiliza para la codificacin de software de localizacin. El mapa de memoria definida
para un localizador incluye las direcciones de E/S de dispositivos diseado tras las correspondientes
asignaciones de direcciones de los punteros, vectores, conjuntos de datos y estructuras de datos. Desde el mapa,
el programa de localizador de entrada puede ser fcilmente diseado. Cuando la memoria principal es la
arquitectura de la Universidad de Harvard, el mapa de la memoria del programa ser distinto, por ejemplo,
8051. El procesador lee de la memoria de programa por un conjunto distinto de instrucciones (instrucciones de
Vectores y punte Progra
entrada-salida) y las seales deProgram
control.
a
Y
DATOS
El control
Seales
{

Memoria de datos

As como datos
de entrada
Como datos de
salida
Desde
La BIU/
Pestillo/
Los
decodifica
dores
La memoria de
programa se arranca el
programa, funciones,
rutinas y tareas

ros de memoria
de
programa
como
Igual que
Memoria
de
datos
Direcciones
Entre
OxOO..OO.

A
0xFF..FF
(0 a 2P-1)
Pilas

ma

La
memoria

Datos
La
memori
a
Vectores
y
punteros

Pilas

Programa
La memoria
Direcciones
Entre
OxOO..OO.
(0 a 20-1)

Las
direcciones de
memoria de
datos entre
Ox.OO..OO a
OxFR.FF
(0 a 20-1)

Fig. 13.5 (a) mapa de la memoria (arquitectura de Princeton) (fa) mapa de la memoria (memoria de Harvard
architecture)

13.4 Obteniendo el software integrado en el sistema de destino


13.4.1 Programador Flash PROM o dispositivo
Programador de Dispositivos a esto tambin se le llama programador de laboratorio
que es un sistema de programacin para un dispositivo. El dispositivo es
seleccionable y puede ser un PROM o EPROM o CHIP de un flash o una unidad en un
microcontrolador o Pla, GAL o PLC. El dispositivo seleccionado se inserta en un
socket (en el dispositivo de circuito del programador) y est programado (se queman
los cdigos) por transferencia de bytes para cada direccin usando el software en el
host.

Proceso de desarrollo de software integrado y herramientas

631

El software del dispositivo programador se ejecuta en un sistema host (PC o estacin de trabajo u ordenador
porttil). El sistema host se interconecta con la toma y el circuito del programador de dispositivos normalmente
a travs de un puerto serie o USB (UART).
Programador de dispositivo software que se ejecuta en el host utiliza un archivo de entrada desde el software
localizador de registros de salida. El archivo refleja el diseo final y tiene un programa bootstrap ms el registro
comprimido, que el procesador se descomprime antes del sistema incorporado el procesador inicia la ejecucin.
(Bootstrap Program es el programa de la puesta en marcha de un sistema. Salimos de casa por nuestras botas de
flejes).
Los dispositivos en un PCIO direcciones de puerto
de E/S
y
Nota\ un IDEPuerto
incorpora
el dispositivo
programador dentro de ella.
Puerto
a
Puerto
PortC
PIOC B
puerto
Config
CL
Onchip
RAM

memoria
Direcciones en
A68HC11
Configuration

Timer
0x0000

0x0004
0X003
F
0x0040
OxOO
FF
0XB5F
F

Fuera
de chip
RAM

0x00000
.
A
OxFFFF.
..
Sistema
La
memoria

Teclado

0x0040
0x005F
0x0060
0x006F
0x0070
0x007F

Reloj en tiempo real

0X03F8
0x03FF

Puerto serie 2
(0)

Fig. 13.6 (a) de 10 puertos, memoria y dispositivos de espacios de direcciones de 68HC11 {b) Direcciones de dispositivo
en 80x86- basada sistema host (PC).

Llaves
H 0x1000 JCardVM;
OTP ROM flash | ' * - - Aplicacin
-0x7FFF cdigos

Smart card

" 0x8000 Proarammable

Carne

...0x9FFF da,un
- pila OxAOOO;
_ _ Temp variables OxBFFF

RAM

(a)

Cmara digital

RAM

Aplicacin
Cdigos;
RTOS

-|- 0x000000
_l QxFpFFFF
datos;
(c)

Mquina expendedora automtica de chocolate

! OTP flash ! 0x001000 RT0S:


Yo ROM
L
Aplicacin
' ------- -------- 1 OxOOBFFF Cdigos
OxOOCFFF
Pila;
RAM
------------- Temp
OxOOFFFF Variables
0x01CFFF
Erupcin
________ Almacena
cutnea
Mensajes
Almacen
a
Robot
(b)
Mensajes
RTOS.
OTP flash
0x001000
Aplicacin
ROM
OxOOBFF Cdigos

Archivos de
imagen

RAM

Preprocessor
Pilas
de

Flash

OxOOCOOO Pila;
Temp
Variables
0x010FFF
Programad
0X11CFF
o
.. "IK
F y aprendieron datos

(d)

Fig. 13.7 (a-d) cuatro mapas de asignacin de memoria en cuatro sistemas ejemplar para sus programas de localizador

632

Los sistemas integrados


Programa de
localizador ------'W

______ ,

| archivo Hex formato Intel |

O
Archivo ________
Hex SRecoed Formato
Motorola

Cable plano para


la direccin y
los buses de
datos '

'V//////////////

Para el dispositivo

:ig. 13.8 La Quema en la aplicacin de los cdigos de software, datos y tablas utilizando un dispositivo programador

Jse del Programador

de Dispositivos para la descarga de la versin definitiva de cdigos en la PROM Flash o UN


Salida ocator es el diseo final con un programa de arranque ms el programa del sistema (con o sin una
(impresin), adems de los datos iniciales y los datos de la RAM de sombra. Asumir que la fase de diseo del
sistema baja hasta la meta system. Consulte a un mapa de la memoria del destino o de la PROM flash. Finalizado
son poner en nemory no voltil en cada direccin de memoria en el sistema mediante un proceso
llamado combustin.
La quema es un proceso que coloca los cdigos. Son los cdigos para descargarse, segn la imagen de la ROM
de salida localizador). La quema se realiza en el laboratorio utilizando un dispositivo programador en tin borrada
de la MEMORIA EPROM o lEPROM o PROM o a ras.
Figura 13.4 mostr el mtodo para buming en la EPROM o EEPROM el registro o archivo hex :eneralcd por
un localizador (Seccin 13.3.2). EEPROM Borrado y no puede ser programado directamente por el programador
ievice. Flash utiliza un sistema de archivos diferente.
Considere la posibilidad de un dispositivo que tiene 512 kB de memoria programable. Esto significa que se
tiene ocho seales (D0lo D-) y 91= logj (512* 1024)] de la direccin (A,a,s) de seales. Hay un total de 5.24.288
(=512*1 024) Cabinas de celdas con ach matriz teniendo ocho clulas. Cada clula tiene para la salida d bits como
lgica I en la ONU-programado (fresco), pizarra 'rogramacin del dispositivo (localizar la deseada bytes) significa
la sustitucin es con el SO de acuerdo a cada byte necesarios para cada celda-direccin de matriz. Bytes guardados
son generados por el programa de localizador del sistema integrado de programacin despus de te (alteran la
programacin, la memoria del dispositivo parte celebrar la ltima bytes de acuerdo a la necesidad d espus de la
finalizacin del desarrollo de software, pruebas y depuracin del ciclo de diseo).
Un programador de dispositivos ROM es un sistema de programacin para el PROM o EPROM o Flash en un
chip o unidad fa microcontrolador o dispositivo. Un dispositivo insertado en un zcalo (en el dispositivo de circuito
del programador) est programado n transferir los bytes para cada direccin usando una herramienta de software
en el equipo y en la interconexin de los omputer con este circuito. El programa necesita del dispositivo localizador
de registros de salida en la entrada. Esta salida debe ; flota el diseo final, slo entonces puede el programa del
dispositivo puesto el ltimo entradas en la ROM. Los registros que se lput a un programador de dispositivos segn
el dispositivo que se est programando, estn en tres formatos. Los formatos de archivo deDirigiendo la imagen
binaria se describen en Seccin 13.3.2.
Alternativa a un dispositivo programadores thj^ el software de aplicacin de los cdigos se envan
en un formato tabular para un fabricante de especializacin. La fabricacin se prepara la ROM. La ROM
es necesario tousands especialmente cuando muchas de las piezas son necesarias. Integracin de la
ROM con el procesador, la memoria RAM y otros hardwares del sistema trget confiere al producto final.

Proceso de desarrollo de software integrado y herramientas

13.4.2 Mtodo de programacin del Programador de Dispositivos


Un dispositivo de 512 kB eel I-array (en la direccin definida por el A0 al A,x seales) almacena los 0's como per
os a D"A D7 cuando ;i de un pulso de luz estroboscpica lew microsegundos la duracin es aplicado en la presencia
de una tensin Vp por el dispositivo de circuito del programador. Un dispositivo programador que programa su
unidad de memoria realiza los siguientes ocho pasos en una secuencia que utiliza la herramienta de software, el
ordenador y el dispositivo de circuito del programador, (i) aplica el"a un|8 bits segn sea necesario en una direccin
seleccionada la entrada de la matriz de clulas, (ii) se aplica como insumos la D"A D7 bits que estn pensadas para
esa direccin, (iii) Aplica Vp para hacer la programacin factible para la necesaria duracin en microsegundos. (i
v) Se aplica un pulso de programacin para una duracin suficiente para provocar la fusin de los vnculos deseados
en la matriz, para convertir una T A O', (v) se apaga el VP. (vi) aplica una direccin inmediatamente superior a la
anterior. (vii) Repite los pasos anteriores (ii) (TV) para escribir (convertir) la lgica pizarras de D(1A D7 bits a
instancia actual a la nueva direccin, (viii) contina hasta una matriz de celdas en la ltima direccin que desea
programar.
El proceso de escritura en el dispositivo es mediante la conversin de la lgica de I a 0, y se realiza mediante
la fusin de los enlaces en la aplicacin de programacin y programacin voitage pulso de corta duracin.
El trabajo del programador es un dispositivo de acuerdo con el dispositivo de memoria y procesamiento.

Usando la EEPROM 68HC11 Ejemplo el funcionamiento de un dispositivo interno para la


programacin del programador de EEPROM 68CII11 es como sigue. El 68HCII posee un registro
de control CONFIG. Es para la configuracin del sistema de control, mantiene a los bits de datos
como la direccin de la EEPROM interna. Tambin se llama una EEPROM registrarse siempre que la
programacin de la unidad se utiliza en 68HC11. Hay otro registro, el registro de EEPROM en la direccin
OxOU3B. Este registro se mantiene al tanto del programa CONFIG as como las direcciones de EEPROM 68HC11
(la EEPROM on-chip direcciones en 68HC11 son de 0xB600 a 0B7FF). Si CONFIG.O Bits (EPROM) es O', borrar
o escribir (BUM) no sea factible por cualquier instruccin. Para grabar en, primero, el bit 0 de CONFIG (EEPROM)
registrarse es T. Slo entonces es el voltaje de programacin EEPROM puede ser activado. Si el primer bit es
tambin " I' la EEPROM direcciones y sus datos arc trabado con la ayuda de unidades de programacin dentro de
68HC11. Si el registro EEPROM..4 y 3 bits se convierte en (X) (0 y 0, respectivamente) borrados masivos de lagos
en la EEPROM direcciones (borrado de Hulk se refiere a todas las direcciones de la EEPROM). Si 01 es escrito un
hvte es borrado (byte significa borrar borrar en uno slo la direccin de la EEPROM). Si), luego una fila de 16
bytes es borrada. Si el segundo bit EEPROM est hecho yo" y, a continuacin, slo est habilitada la funcin de
borrado. Un borrado significa que todos los bits a un neumtico de direccin EEPROM hizo'I s. El tiempo de borrado
es un total de 10 ms en todos estos tres modos. Cuando est desactivada la funcin de borrado (debido al segundo
bit = 'O' pero el voltaje de programacin cada vez habilitado porque el 011' bit = T). La quemadura de bytes se lleva
a cabo mediante la ejecucin de la instruccin para escribir la direccin apropiada.
El equipo del puerto UART RS232C que enva y recibe a 1200 baudios y conecta a RxD y TxD pasadores en
68HC11 a travs de un receptor de lnea y un driver de lnea, respectivamente. VDD. VRH. IRQ. Pasadores XIRQ
a +5V. VSS y VRL estn en 'O'. El circuito de reset y conectar el circuito de cristal de 8 MHz como de costumbre.
Una vez 68HCII est configurado en el modo Bootstrap, los bits de sus direcciones EEPROM son programables
con el software en el equipo que es parte del sistema de desarrollo. Un ordenador externo transfiere a 1200 baudios
en modo Bootstrap al utilizar un cristal de 8 MHz con 68HCI1. Adems, la transferencia es el primero de un byte
con todos los Ts (OxFF). A continuacin, el equipo de transferencias de 256 bytes a 68HC11. Estos bytes carga
entre 0x0000 y OxOOFF direcciones de memoria RAM interna. 68HC11 configura automticamente su PC al final
de la transmisin despus de leer su vector de OxFFFE. Por lo tanto, inicia la ejecucin de un programa denominado
programa bootstrap. Este puede ser un programa de prueba que incluye la escritura de EEPROM para config o
registro y a las direcciones de la EEPROM.

Utilizando la EPROM cuando se utiliza el dispositivo de procesamiento de EPROM (e. g., el


microcontrolador). PROM es primer borrados en luz ultravioleta (UV). Borrado hace todos los
8 bits en cada una de las direcciones en ' I's. Un borrado de instalacin ofrece la reutilizacin de la memoria
cuando el software de la aplicacin cambia a otra versin

Los sistemas integrados

>f el sistema. El software ejecutado en los programas informticos de la EPROM, as como verifica que los bytes
grabados en la MEMORIA EPROM con la ayuda de un almocrabe circuito entre la EPROM y ?del ordenador
S232C el puerto serie. La EPROM circuito de interfaz que recibe un byte en serie desde el ordenador a travs de
la lnea IxD y posteriormente enva, junto con su direccin, este byte para grabar en la EPROM del dispositivo de
procesamiento Bum- n de cdigos se realiza de la siguiente manera: Durante el perodo cuando la direccin
apropiada y datos disponibles desde este arco :"circuito", tambin enciende un ~VpVolt de alta tensin y se aplica
un pulso de programa para un perodo necesario. Este circuito s programadas secuencialmente en cada direccin
mediante el aumento de la direccin despus de cada programa de pulso.
Un circuito de interfaz de EPROM tambin recibe otro byte en serie desde el ordenador a travs de una lnea
TxD y enva su nuevo byte para buming-en el dispositivo de procesamiento en la direccin apropiada. Los bytes
en las sucesivas direcciones ue recibida por el equipo en un modo de verificacin a travs de la interfaz y lnea
RxD. Algunos dispositivos de procesamiento en modo programa automtico de su EPROM en el cual puede copiar
automticamente los cdigos y datos a partir de un 1C.

" 13.5 Problemas de hardware-software de diseo y co-diseo


Tiere son dos enfoques para el diseo de sistemas embebidos.
(1) El ciclo de vida de desarrollo de software y termina el proceso de ciclo de vida para integrar el software
en el hardware a comenzar en el momento cuando un sistema est diseado.
(2) Ambos ciclos simultneamente proceder cuando co-diseo de un sofisticado sistema de tiempo crtico.
El diseo final, cuando se aplique, da los sistemas integrados y, por lo tanto, el producto final, fierefore, una
comprensin de la (i) los diseos de software y hardware y la integracin de ambas en un sistema, y ii) el hardwaresoftware co-diseo son aspectos importantes del diseo de sistemas integrados.
Tambin hay hardware-software trade-off. Ciertos componentes integrados, por ejemplo, co- rocessor CCD,
cdec ejecutar rpido cuando implementada por hardware, pero el costo es alto y de diseo del procesador
erformance requisitos son tambin elevados.
Remitmonos a una entrevista de Jean-Louis Brelet en un artculo "Exploracin de hardware/ software Codiseo /vrtice i-simo-II Pro FPGAs" (Revista Xcvll, pp. 24-29. Cuestin de verano. 2002). Una respuesta Brelet,
citado textualmente, "hen pregunt acerca de las competencias necesarias para el xito de la aplicacin es el
siguiente: 'Software gente debe omprender la naturaleza del diseo del hardware y el tipo de problemas
encontrados por el equipo de hardware. Tambin lujuria entender las posibilidades y las capacidades de hardware.
Asimismo, el equipo de hardware debe tener un buen nderstanding de software y cmo las aplicaciones funcionan.
Ambos equipos deben tener un buen conocimiento de otras lenguas ach y voluntad de adaptacin".
La seleccin del hardware adecuado durante el diseo del hardware y una comprensin de las posibilidades y
apabilities de hardware durante el diseo de software es especialmente crtico para un sofisticado sistema
integrado svelopment tales como el iPhone de Apple.

3.5.1 La eleccin de la plataforma derecha


Hardware Software equilibrio existe un equilibrio entre el hardware y el software. Hardware
nplementations proporcionan la ventaja de la velocidad de procesamiento. Es posible que
determinados subsistemas de hardware- antroller, 10 circuito de acceso a memoria, reloj en
tiempo real, el reloj del sistema, la modulacin de ancho de pulso, temporizador y serial
immunication tambin son ejecutados por el software. Una serie i^mmunication reloj de
tiempo real y los temporizadores con icrocontroller puede costar ms que el microprocesador
con memoria externa y una implementacin de software.
La implementacin del hardware proporciona las siguientes ventajas: (i) la reduccin de la memoria para el
programa, i) reduce el nmero de fichas pero a un costo mayor, (iii) codificacin simple para los controladores de
dispositivos, (iv) cdigos nbedded internamente, que son ms seguras que en la ROM externa.

Proceso de desarrollo de software integrado y herramientas

635

Aplicacin de software ofrece las siguientes ventajas: (i) la ms fcil de cambiar cuando estn disponibles
nuevas versiones de hardware, (ii) la programabilidad tor operaciones complejas, (iii) el tiempo de desarrollo ms
rpido, (iv) la modularidad y portabilidad, (v) el uso del software estndar de ingeniera, modelado y RTOS
herramientas, (vi) la velocidad de funcionamiento de funciones complejas con microprocesadores de alta velocidad,
(vii) Menor coste para sistemas simples.
Puede ser o no puede ser posible que determinados subsistemas de hardware (ASIP, microcontrolador, DSP.

Elegir un sistema de plataforma derecha el diseo de un sistema integrado, tambin implica


la eleccin de una plataforma adecuada. Una plataforma consta de un nmero de unidades. La tabla 13.5
muestra una lista de estas unidades y varias secciones correspondientes, que un programador puede consultar
mientras selecciona la unidad para finalmente obtener un derecho de plataforma y herramientas de desarrollo
correctas.

Tabla 13.5 Lista de unidades a elegir, para finalmente obtener un derecho de plataforma y
herramientas de desarrollo correctas
Unidad para ser elegido

Seccin describiendo en detalle para permitir la eleccin correcta

Procesador
La ASIP o ASSP

Las secciones 1.2, 2.1 y 2.3.


Las secciones 1.2.3 y 1.2.4

Mltiples procesadores
System-on-chip

Seccin 1.2
La seccin 1.6

La memoria

Seccin 2.7.1

Hardware de sistema de Ollier uas

Seccin 1.3

Los autobuses

Las secciones 2.1.4, 2.2.1. 3.2. 3.3. 3.10. 3.11 y 3.12.

Idioma del software

Las secciones 5.1,5.5. 5.6 y 5.7

RTOS (real-cal sistema operativo programacin)

Las secciones 8.8, 8.9, 9.2, 9.3. 10.1. 10.2 y 10.3

Las herramientas de generacin de cdigo


Seccin 13.1
Herramientas para finalmente la incrustacin del software en la Seccin 13.3
imagen binaria.

El sistema de eleccin de procesadores integrados


(A) Procesador-menos sistema: tenemos una alternativa a un microprocesador o microcontrolador o DSP.
Figura 13.9(a) Se muestra el uso de un PLC en lugar de procesador. Podemos utilizar un PLC para la ropa en
e!othes-out tipo system (seccin l.l.l). Un PLC se fabrica por las puertas-programables. PALs. GALs, PLDs y
CPLDs.
Un PLC tiene muy baja la velocidad de funcionamiento. Tambin tiene una muy baja capacidad
computacional. Tiene capacidad de interfase muy fuerte con sus mltiples entradas y salidas. Tiene el sistema de
programacin especfico. Es sencillo en su aplicacin. Su diseo tambin es de aplicacin rpida. Mquina
expendedora automtica de chocolate puede ser otra aplicacin ejemplar de PLC.
(B) Sistema con microprocesador o microcontrolador o DSP: Seccin 1.2 dio una descripcin detallada de
los procesadores que se describen para los sistemas embebidos en detalle. Figura 13.9(b) Se muestra el uso de un
microprocesador o microcontrolador o un DSP.
(C) Sistema con procesadores Single-Purpose e IPs en VLSI o FPGA: una lnea de accin en el diseo se
puede utilizar de las IPs, sintetizando en VHDL-como herramienta y la incrustacin de la sntesis en la FPGA.

Los sistemas integrados

636

Jre 13.9(c) muestra el procesamiento de funciones utilizando IPs integrado en VLSI o FPGA dressing en vez de
por el ALU. El IPs implementar las funciones que, de aplicarse con la ALU luego codificacin mediante la
gramtica tomar un largo tiempo de desarrollo.
- Unidad de
Unidad PLC

Microprocesador o
microcontrolador o o
multiprocesador DSP
___________________
Unidad de alimentacin

visualizacin
- Unidad de
entrada

(a) - Unidad

de
La ASIP
~|
comunicacin
(Aplicacin
Instrucciones
- Unidad de memoriaMemoria |
especficas
Procesadores)

(b )

La memoria
Interfaz Lgico )
La unidad de
pantalla | |
Unidad
de
entrada | |

IPs para USB


O TCP/IP
O Pila de PCI

FPGA

(c)
. i3.

(a) la utilizacin de un lugar de un procesador PLCin (b) el uso de un microprocesador o

microcontrolador o
Un DSP (c) Procesamiento de funciones mediante IP incrustada en el FPGA en lugar de
procesar por el ALU

El sofisticado el funcionamiento de piezas en un chip VLSI implemento utilizando copyright IPs. Cada direccin
IP es sintetizada :aie nivel VHDL o Verilog. (VHDL (VLSI de lenguaje de descripcin de alto nivel) y Verilog
son ullages para simular y sintetizar el diseo a nivel de la compuerta. Tambin VHDL chronization implementa
la concurrencia y problemas y una estrategia de jerarqua estructural. Adems de estos Icalurcs, Verilog usa Ccomo las almejas, por lo tanto, el manejo de excepciones y encalado problemas tambin son programables. Hay
dos gunges para la programacin y ejecucin de los EFM. rancio, transiciones, la sincronizacin y la
simultaneidad nnioural jerarqua. Estos son y SpeeCharts StateCharts).
Il) Factores y funciones necesarias de tomar en consideracin: Consideramos un procesador de uso general hielo
o elija un ASIP (microcontrolador o procesador DSP o red). Cuando el sistema de 32 bits, 16kB+ n y necesidad
de cach de memoria, unidad de gestin de memoria o SIMD o MIMD instrucciones DSP o surgir, nosotros ,yo
microprocesador o DSP. Por ejemplo, el juego de vdeo, reconocimiento de voz y sistemas de filtrado de
imgenes necesito un DSP. El cuadro 13.6 proporciona los factores que son considerados por un programador
del sistema antes de seleccionar un microcontrolador . roprocessor o como una unidad de procesamiento.
ReDr Seccin 2.1 para 8051. Microcontrolador proporciona la ventaja de recuerdos en chip y subsistemas de los
temporizadores 3.En el cuadro 13.6 puede ayudar a seleccionar el microcontrolador. Un microcontrolador
disponibles a un razonable ;t no puede apoyar esas necesidades en chip. A continuacin, decida cul ser
suficiente, 8-bit o 16-bit o 32-bit ALU. w tome una decisin acerca de v/hich microcontrolador y su versin con
las caractersticas que se necesitan. Primera seleccin tenon es on-chip recuerdos necesarios para el sistema
integrado. Un segundo criterio es el chip de temporizadores y ial de los subsistemas de comunicaciones
necesarios en cada sistema. Tercero y cuarto pueden o no ser necesarias en el elemento que se ha diseado. El
tercer criterio es la necesidad de entrada de interrupcin (captura y el tiempo de carga en una entrada) 1-compara
(salida e interrumpir cuando el temporizador contenidos iguales una comparacin registrarse). Cuarto abortar /M
y/o disponibilidad on-chip ADC. ltimas versiones de 8, 16 y 32-bit microcontroladores pueden encontrarse ;n
de los sitios web de los gigantes, ARM, Intel, Motorola, Phillips y Microchip (para sistemas de 8 bits).

J637

Proceso de desarrollo de software integrado y herramientas

Tabla 13.6 Factores y funciones necesarias en el microprocesador o microcontrolador o unidad de


procesamiento DSP del sistema
Factores de caracterstica de chip

Necesita o que uno


necesita

Disponible en Chip
elegido

8-bit o 16-bii o 32-bil ALU


Unidad de gestin de memoria cach, clculos o DSP

8/16/32
S o No

8/16/32
S o No

Clculos intensivos en velocidad rpida

S o No

S o No

La memoria interna y externa total o hasta ms de 64 kB


RAM interna.
ROM interna/EPROM/EEPROM

S o No
256/512 B
4 kB/8 kB/16 kB

S o No
256/512 B
4 kB/8 kB/16 kB

Flash
Temporizador 1, 2 o 3.

16 kB/64 kB/1 MB/8 MB


1/2/3

16 kB/64 kB/1 MB/8 MB


1/2/3

Watchdog Timer
Serial Peripheral Interface serial full duplex o interfaz de
comunicacin sincrnica (IS) half duplex
UART serie
Captura de entrada y compara

S o No

S o No

Completa/media
S o No
S o No

Completa/media
S o No
S o No

PWM

S o No

S o No

Mono o multi-canal de ADC con o sin referencia de tensin


programables (simple o doble) de referencia
El controlador de DMA
Disipacin de potencia

Vrel WAVO S/M S/D


S o No
Muy baja/baja o norma!

S/M WAVO VK( S/D


S o No
Muy baja/baja o normal.

13.5.2 Memoria y Software Processor-Sensitive


Tabic 13.7 da ejemplos de memoria-, el procesador programas confidenciales.

13.5.3 La asignacin de direcciones de memoria, segmentos de programa y


dispositivos
Funciones, procesos, datos y pilas en los distintos segmentos del Programa Memoria rutinas y
procesos pueden tener diferentes segmentos. Por ejemplo, un cdigo de programa puede l segmentados y cada
segmento almacenado en un bloque de memoria diferente. Un puntero que seala al inicio del bloque de memoria
almacena un segmento y un valor de desplazamiento se utiliza para recuperar una direccin de memoria dentro
de ese segmento.
Pueden existir diferentes segmentos en la memoria de los procesos y funciones o tareas (ancho de va). Estas
pueden incluir diferentes segmentos de datos y los diferentes segmentos de las pilas. Cada segmento tiene
una direccin de memoria slatting y terminando la direccin de memoria. Cada segmento tiene un puntero
electrnico y una direccin de desplazamiento. Uso de desplazamiento, un cdigo o una palabra de datos se
recupera de un segmento.
Puede haber diferentes tipos y diferentes estructuras de datos en la memoria (Secciones 5.4.2 y 5.4.3). Los
siguientes son ejemplos de las estructuras de datos y conjuntos de datos que se usan ms comnmente durante el
procesamiento en un sistema y que se almacenan en los diferentes bloques de memoria en un sistema.
Estructura de datos, que se denomina stack es un elemento del programa especial. Una pila significa
un bloque de memoria asignado a partir de la cual un elemento de datos siempre se lee en un modo
LIFO por el procesador. Pila de diversas estructuras pueden crearse durante el procesamiento. Se
puede realizar una llamada a otro durante el funcionamiento rutinario de una rutina. En fin que en

Los sistemas integrados

638

.omplelion del llamado rutina, el procesador devuelve slo al llamar, la direccin de instruccin lor eturn deben ser
guardados en la pila. All tambin se pueden anidar. Significa que uno llama a otra rutina, y que .otro enfermo y
retorno del llamado rutina es siempre al llamar a la rutina. Por lo tanto, en la memoria de un olock de la direccin
de memoria asignada a la pila que guarda las direcciones de retorno de las llamadas anidadas.
I. Puede haber al principio una entrada datos guardados como una demora en la RAM para ser recuperada
posteriormente en el modo LIFO. Una aplicacin puede crear las estructuras de pila en tiempo de ejecucin.
Puede haber varias pilas de datos en los diferentes bloques de memoria, cada uno con una direccin del
puntero independiente (Figura 5.1).
Tabla 13.7 Programacin Hardware-Sensitive

Programa

Ejemplos

Procesador-sensible recordar las secciones 2.1, 2.3 y 2.4. Un procesador dispone de diferentes tipos de
unidades estructurales. Puede tener asignado en memoria o lO IOs IOs asignada. 10 instrucciones son el
procesador-sensibles. Un procesador puede tener slo ALU de punto fijo. Las operaciones de punto flotante
cuando sea necesario se manejan de manera diferente en un procesador con operaciones de punto flotante. Un
procesador no podr prever la ejecucin de SIMD (single instruction multiple data) y VLIW (gran palabra) de
instrucciones instrucciones. Programacin de los mdulos que necesiten de estas instrucciones se maneja de
forma diferente en distintos procesadores. El lenguaje ensamblador puede a veces facilitar un uso ptimo de
las caractersticas especiales del procesador e instrucciones. Avanzados procesadores proporcionan
normalmente el compilador o el compilador de optimizacin de la subunidad a obviar la necesidad lor
programacin en general. La memoria sensible (i) Un ejemplo de un programa es sensible a la memoria de
procesamiento de video y procesamiento de video en tiempo real. La resolucin de la imagen realmente
utilizados para el procesamiento y el nmero de tramas procesadas por segundo depender de la memoria
disponible, as como el desempeo del procesador. Si una gran cantidad de memoria disponible y, a
continuacin, imgenes de alta resolucin que puede procesar. Cuando mayor sea la resolucin sin los
fotogramas que faltan aceptable es usado, entonces mucho el rendimiento del procesador MIPS en el menor
nmero de tramas que puede procesar. Modelo de programacin en tiempo real y el algoritmo utilizado por un
programador depender de la memoria disponible y el rendimiento del procesador.
(ii) la direccin de memoria de 10 registros de dispositivo, tampones, registros de
control y direcciones vectoriales' para el imemipt fuentes o grupos de origen van
precedidas de un microcontrolador. La programacin de estos toma en cuenta estas
direcciones. Las mismas direcciones nuist.ser asignado para estas por el RTOS.
Memoria de programas sensibles deben ser optimizados para el uso memoiy
mediante una hbil programacin.
(iii) Cuando se utilizan ciertos conjuntos de instrucciones como pulgar en procesador
ARM ayuda a 16-bii instrucciones, que ahorran menos memoi y espacio que el uso
de 32-bit set de instrucciones ARM.
2. Cada tarea o hilo en un multitarea o multiproceso software (Secciones 7.1 lo 7.3) debera tener su propia pila
donde su contexto es guardado. El contexto es guardado en el procesador cambia a otra tarea o hilo. El
contexto incluye la direccin de retorno para PC para recuperacin en regresar a la tarea. Hay varias
pilas de la memoria para los diferentes contextos en los diferentes bloques de memoria, cada uno con una
direccin del puntero independiente. Los programas de aplicacin y programas de supervisin (OS) han
separado de paquetes en bloques de memoria independiente.
Cada procesador tiene al menos un puntero de pila de manera que la pila de instrucciones pueden ser apuntadas
y la vocacin de las rutinas pueden facilitarse. Cuando un procesador slo tiene un puntero de pila, el sistema
operativo asigna las direcciones de memoria que se utilizan como los punteros de las varias instrucciones y pilas de
datos de las tareas o procesos o subprocesos).
Una pila es una estructura de datos especial en la memoria. Tiene una direccin de puntero que siempre apunta a
la parte superior de la pila. Esta direccin del puntero es llamado un puntero de pila.

Proceso de desarrollo de software integrado y herramientas

639

Los otros conjuntos de datos, que tambin son de memoria asignado, son como sigue".
1.Una cadena se asigna memoria para ASCII (8 bits) o caracteres Unicode (de 16 bits), seguido por un
carcter nulo tit el final. Un objeto String es asignado para los campos de memoiy cadenas de caracteres
y los mtodos para manipular la cadena (por ejemplo, la concatenacin).
2. Una cola circular se asignan direcciones de foros cola en la que ambos punteros no pueden incrementar
ms all del bloque de memoria (buffer) y restablecer el valor inicial en la insercin ms all de los lmites
(Figura 5.2).
3. Una matriz unidimensional se asignan direcciones para una estructura de datos especial en la memoria.
Tiene una direccin de puntero que siempre apunta al primer elemento de la matriz. Desde el primer
elemento de puntero y ndice de ese elemento, se construye una direccin desde la que el procesador puede
acceder a uno de los elementos de la matriz. Index es un valor entero que comienza desde 0. Palabra de
datos pueden recuperarse de cualquier elemento en el bloque de direcciones que se asignan a la matriz.
4. Una tabla es una matriz bidimensional (matriz) conjunto de datos que se asigna un bloque de memoria.
Tres punteros, base de la tabla. La columna-index y destino-index punteros pueden recuperar un elemento
de la tabla. Siempre hay un puntero de una tabla base. Apunta a su primer elemento en la primera columna
de la primera fila. Hay dos ndices, uno para una columna y la otra en una fila. La figura 53(a) muestra un
bloque de memoria con los punteros de la tabla.
5. Una tabla hash se asigna un bloque de memoria para un conjunto de datos es una coleccin de pares de
clave y valor correspondiente (Figura 5.3(b)]. Una tabla hash tiene una clave o el nombre de una columna.
El valor correspondiente o el objeto se encuentra en la segunda columna. Las claves pueden estar en las
direcciones de memoria no consecutivos. Slo como un ndice identifica un elemento de la matriz, una
clave hash identifica un elemento hash.
6. Buscar tablas tienen columnas y almacenar los punteros a los valores. La primera columna de una tabla
se utiliza como un puntero al valor para obtener el conjunto de valores.
7. Una lista se asigna memoria para una estructura de datos en la que cada elemento tambin almacena un
puntero al siguiente elemento en la lista. Tiene un bloque de memoria asignado a cada uno de sus
elementos. La lista-lop puntero apunta a su primer elemento y el ltimo elemento apunta a null (Figura
5.3(c)|. Una lista es una estructura de datos con un nmero de bloques de memoria, uno para cada
elemento. Una lista tiene una parte superior (cabeza) puntero para la direccin de memoria de donde
empieza. Cada elemento de la lista en la memoria tambin guarda el invierno [a la siguiente clemente. El
ltimo elemento apunta al molino. Una lista es para no consecuiively encuentra objetos en la memoria.

Dispositivo, dispositivos internos y las direcciones de los dispositivos de E/S y controladores de


dispositivo todos los puertos de E/S y los dispositivos tienen direcciones. Estos son asignados
a los dispositivos segn el procesador del sistema y la configuracin de hardware del sistema.
La direccin de dispositivo de E/S son considerados como parte de las direcciones de memoria por ciertos
procesadores. Algunos procesadores ofrecen para configurar las direcciones de memoria. Por otro lado, la
8051.80196 y microcontroladores 80196 tienen pre-dispositivo asignado direcciones para sus dispositivos internos
y estos son im-direcciones configurables.
Las direcciones de los dispositivos de E/S no son parte de las direcciones de memoria en procesadores 80x86.
(Figura 2.8(b)).
Las secciones 3.2 y 3.3 se describe E/S de dispositivos seriales y paralelos en detalle. Direcciones de
dispositivos se utilizan para el procesamiento del conductor (Seccin 4.9). Un dispositivo tiene una direccin, que
es normalmente de acuerdo con el hardware del sistema o puede ser tambin el procesador-asignado. Estas
direcciones se asignan a los siguientes.
1. Registro de datos del dispositivo(s) o RAM buffer(s).
2. Dispositivo de control de registro(s). Ahorra bits de control y bits de configuracin tambin puede guardar.
3. Registro de estado de dispositivo(s). Ahorra bits de la bandera como el estado del dispositivo. una bandera
(que puede indicar la necesidad de mantenimiento y mostrar la ocurrencia de una interrupcin de
dispositivo.
Cada dispositivo y, por lo tanto, cada dispositivo debe registrar direcciones asignadas en el mapa de la

6401
__ J

Los sistemas integrados

Dependiendo del dispositivo. En una direccin de dispositivo ihere puede ser uno o varios registros de dispositivo.
Un dispositivo fsico o virtual puede ser configurado para asociar o desasociar recibiendo entrada frontal y el envo
de datos de salida. Una direccin de dispositivo tambin puede ser como un archivo, por lo que es de slo lectura o de
slo escritura o de lectura y escritura solamente.
La direccin de dispositivo de E/S de registros, bferes, control de vectores, cegisters direcciones para las
fuentes de interrupcin o grupos de origen precedido de neumticos. Asimismo, las direcciones de los dispositivos
de control de registro y registro status bits bits tienen el prefijo. Programacin de cada bit se utiliza en diversas
funciones del dispositivo. Aplicacin de los cdigos de controlador de dispositivo depende del hardware.
Controladores de cdigo abierto estn disponibles para los puertos, los autobuses y los medios fsicos a'i.ichments
en Linux. Los controladores de dispositivo Linux aprovechemos cada mdulo de una clase de dispositivo de
registro, registrar y programar como un proceso. Los programadores pueden trasladar estos directamente como
estos son fuentes abiertas tambin.
\proceda de funciones de interfaz necesarios para portar en el procesador del sistema memoria sensible y
programas sensibles a ISR. Son necesarios los controladores apropiados para el dispositivo de programas
confidenciales.
Ejemplo 13.1 da los detalles de direcciones de los registros de un dispositivo de E/S, serie lnea dispositivo
UART En la seccin 3.2).

Ejemplo 13.1
Un dispositivo de lnea serie tiene las direcciones de dispositivo se registra como sigue: estas direcciones son
fijados por su configuracin de hardware de la interfaz del puerto UART del circuito en un sistema empleando
el procesador 80x86. Son irom ()\2F8 a 0x2FE en COtVIl en un PC.
I I I I/O dos registros de bfer de datos (uno para recibir y la otra para transmitir) estn en una direccin
comn. 0x2F8. Siempre un bit de control en la direccin 0x2FBH es 0, durante la lectura de la direccin,
el procesador accede desde el RBR (receptor del buffer de datos de registro) del dispositivo durante la
escritura y la direccin, el procesador accede a la TRH (transmisor-holding register) del dispositivo en
0x2F8H. i h l siempre un bit de control en la direccin 0x2FB es I. Datos de dos bytes de divisor
laiclt estn en las distintas direcciones. 0x2F8 (LSB) y 0x2F9 (MSB). Pestillo de divisor tiene un valor
de 16 bits para dividir el reloj del sistema. Esto, a continuacin, selecciona la velocidad de transmisin
en serie de bits en la lnea. (Al escribir un controlador de dispositivo, recuerde que un poco en otro
registro (el registro de control de cambios) el 0x2F8 desde un 10 registro para bajar el byte del registro
del pestillo de divisor.
2. Tres registros de control del dispositivo se encuentran en tres direcciones distintas 0x2FA. 0x2FB y
0x2FC. Estos
Neumtico como sigue: (a) 1ER (registro de habilitacin de interrupcin). Permite que el dispositivo se
interrumpe, b) el registro de control de lnea (LCR). Define cmo y cuntos bits estar en la lnea, (c) el
registro de control MCR (mdem). Se define la forma en que el mdem se comunica y apretones de
manos.
,
3. Tres registros del estado del dispositivo se encuentran en tres direcciones distintas 0x2FA. 0x y
0x2FD2FE.
J de E/S est en direcciones distintas. El dispositivo tiene tres conjuntos de registros: buffer de
Un dispositivo
Estos
son los de
siguientes:
de identificacin
deestado).
interrupcin
(HR)
en 0x2FA.
Tieneregistros
las banderas.
datos de registro(s)
control a)
deRegistro
registro(s)
y registros del
Puede
haber
uno o ms
de
Unaenbandera
Jj establece
en un dispositivo
interrumpir
y se
restableceson
ensegn
el restablecimiento
del sistema
sistema y
dispositivo
una direccin
de dispositivo.
Las direcciones
de un
dispositivo
el procesador del
en el mantenimiento
deldel
dispositivo
correspondiente
Ml interrumpir,
(b) LCR
en 0x2FD. Define
cmo yy
y la configuracin
de hardware
sistema. La
mayora de procesadores
procesan
los dispositivos
de memoria
cuntos bits
en la lnea.
Ml
otros dispositivos
conestar
las mismas
instrucciones.
Los procesadores 80x86 procesar el IOs con un conjunto distinto
(c) MCR
en 0x2FE. Sededefine
la forma en que el mdem se comunica y apretones de manos. Mm
de instrucciones
(instrucciones
entrada-salida).

' ----- }
Proceso de desarrollo de software integrado y herramientas

13.5.4

641

Portabilidad de SO en una plataforma integrada

Los siguientes temas de portabilidad puede surgir cuando os es utilizado en una plataforma integrada. El cuadro
13.8 proporciona la plataforma-problemas de dependencia y la necesidad de una adecuada OS-funciones de la
interfaz de hardware para cada tema.
Tabla 13.8 Platform-Dependency problemas y necesidad de las funciones de la interfaz de hardware de SO

Dependencia de la
plataforma
Instrucciones de I/O.

Necesidad de SO adecuado las funciones de la interfaz de hardware . .


Una instruccin de puerto tipo de datos pueden ser diferentes en las distintas plataformas, como
sigue:
(i) Unsigned char* (PowerPC, M68HCI1/12, M68K. S390).
(ii) Unsigned int (brazo)
(iii) Unsigned long (Itanium, Alfa, SPARC)

Unsigned short (80x86).


Servicio de interrupcin (iv)
Los vectores de interrupcin se definen de forma diferente. (Seccin 4.4) os apoya estos en diferentes
Rutinas
plataformas.
Tipos de datos

OS debera tener API adecuadas para los distintos tipos de datos. Tambin puede haber necesidad
como Linux declara que todos los tipos de datos en <asm/ types.h> e incluye en <linux/types.h>
como la siguiente:
(i) Bytes sin signo (significa tambin caracteres de 8 bits)
(ii) Word (sin signo de 16 bits sin signo significa y tambin unsigned short)
(iii) Unsigned int unsigned gemidos (32 bits).

(iv) Unsigned long (medios de 32 bits sin signo).


Tipos de datos
Por ejemplo, una tarjeta de interfaz de red admite enteros sin signo de 32 bits y con un big endian.
especficos de la interfaz
El orden de byte
Esto puede depender del procesador. Primero el byte inferior en un entero (little endian) y el byte
superior primero en un entero (big-endian). Algunos procesadores admiten tanto (brazo).
La alineacin de los
1 i) dos o tres bytes almacenados en una direccin desde la que el procesador accede a 4 bytes en un
datos
El acceso.
(ii) la misma estructura de datos en el archivo de origen "C" puede mostrar de manera diferente en distintas
plataformas ("C" lagos nmero entero de 16 bits en un procesador de 16 bits y entero de 32 bits en
un procesador de 32 bits). Compilador debe forzar la alineacin de los datos mediante la funcin de
interfaz de hardware de SO.
Listas vinculadas
Un so mantiene las listas de diferentes estructuras de datos. OS proporciona la implementacin
estndar de listas doblemente enlazada y listas enlazadas circulares. Dependiente de la plataforma
de administrador de dispositivos y controladores deben incluir el apoyo a estos. (circularmente
medios vinculados al ltimo elemento de la lista no est relacionado con el puntero nulo pero al
primer elemento de la lista. Lista doblemente enlazada significa que cada elemento tiene dos
punteros, uno para el siguiente elemento y uno para el elemento anterior).
Tamao de pgina de

PAGE_SIZE es de 4 kB en Linux. Un procesador puede admitir diferentes tamaos de pgina que


esto. K*'- ,'fls

memoria intervalos de

Sistema operativo Linux' define el reloj del sistema y se interrumpe en cada 10 ms. Las funciones

tiempo

de temporizador deben verificarse para el funcionamiento real en portar un


sistema operativo en una plataforma.

Los sistemas integrados

Un
IVhen portar RTOS cdigos en el sistema, la migracin de E/S INSTRUCCIONES.lSRs. Los tipos de datos,
tipos de datos ipecific interface-, el orden de byte, alineacin de datos listas vinculadas, el tamao de pgina de
memoria e intervalos de tiempo debe tenerse cuidado de que estos son especficos de cada plataforma. OSinterfaz de hardware necesario para estas funciones.

Ella
Ii

3.5.5 Rendimiento y rendimiento aceleradores


Modelado siformance
El ndice de rendimiento del sistema: El rendimiento del sistema integrado desarrollado finalmente es una
medida ' xito. Su rendimiento en cada ciclo de vida del proceso de desarrollo se prueban las siguientes: Cada
quired funcin debe mostrar despus de la prueba de que sus caractersticas son conformes a las especificaciones
requeridas y veloz.
El ndice de rendimiento de sistema puede definirse como la capacidad de satisfacer las funciones requeridas y
las especificaciones hile utilizando la cantidad mnima de recursos de memoria, dispositivos de disipacin de
energa y esfuerzos mnimos y ;signo y utilizacin ptima de cada recurso (por ejemplo, alta carga de CPU).
El mejor software y hardware integrado es el que logra el equilibrio entre diferentes letrics rendimiento.
(B) Sistema multiprocesador Rendimiento: El rendimiento del sistema multiprocesador se mide por: (i)
1 Particin del programa optimizado en las tareas o conjunto de instrucciones entre los distintos procesadores,
y len (ii) una optimizacin de la programacin de las instrucciones y datos a travs de los tiempos y recursos
disponibles del procesador, erformance costo es ms si hay tiempo de inactividad deja que el tiempo disponible.
Matrix es el rendimiento obtenido primero puedo calcular el costo total.
(C) MIPs y MFLOPs DMIPS como los ndices de desempeo: Uno de diseo de rendimiento del sistema
mtrico es cunto tiempo tarda en ejecutar las funciones del sistema deseado. La frecuencia del reloj del procesador
MIPs (millones de instrucciones y er segundo) y MFLOPs (millones de instrucciones de coma flotante por
segundo) se citan a menudo como diseo aractersticas de rendimiento esperado del sistema. No es sin embargo
medidas correctas. Diseo de mtricas de desempeo del procesador es Dhrystone/segundo. Rendimiento de
procesamiento suele medirse en DMIPS lstruction Dhryslone millones por segundo (I = 1757 Dhrystone
MIPS/segundo) (Seccin 2.6). EDN Benchmark incrustado Consortium (EEMBC) propuso cinco suites programa
de referencia para: (i) las telecomunicaciones, (ii) consumidores lectronics, (iii) la automocin y electrnica
industrial, electrnica de consumo (iv), (v) la automatizacin de oficinas. Iso es usado para medir y comparar el
procesador del sistema integrado de actuaciones.
(D) Mtricas de desempeo: Requisitos de bfer, 10 Requisito de ancho de banda y rendimiento: El uffer
ayuda a acelerar el rendimiento del sistema. Memoria o 1/0 requisitos de bfer puede ser a veces restriccin. 10
El rendimiento es medido por el rendimiento y la utilizacin del buffer. Mayor requisito de ancho de banda i
sistemas cliente-servidor puede ser una limitacin.
(E) El rendimiento de los programas en tiempo real: Recuperar secciones 8.10.8 a 8.10.10. Tres mtricas de
rendimiento /ere descrito: (i) la relacin entre la suma de las latencias de interrupcin como una funcin de los
tiempos de ejecucin, (ii) la carga de la CPU, (iii) caso zorst tiempo de ejecucin con respecto a la media de tiempo
de ejecucin.
La comunicacin de datos y la comunicacin multimedia tienen diferentes ndices de rendimiento. Prdida de
cualquier bit ieeds retransmisin. Tambin ninguna trama o paquete miss es tolerable. Por otro lado los fotogramas
que faltan dentro de .cceptable lmites tolerables en vdeo y sistemas multimedia.
El tiempo de programacin de una tarea puede ser medido por el alcance apropiado o el analizador o por
instruccin del contaje >r por el tiempo de ejecucin de instrucciones en el analizador de simuladores.
Seleccin de modelo de programacin en tiempo real, particionado en tareas y algoritmo de planificacin en los
tres siguientes eflect mtrica como sigue:
0

i 1

Y
o
T

Proceso de desarrollo de software integrado y herramientas

643

K
1. El rendimiento del sistema. El rendimiento comparativo con respecto al ciclo anterior en el proceso de
desarrollo o la actuacin anterior del sistema. El rendimiento relativo es igual a incremento relativo en
el rendimiento.
2. La latencia o tiempo de respuesta de "cada tarea o ISK (Seccin 4.6). Tanto el rendimiento y la latencia
puede l ajenos.
3. Retraso zittersmay ser una mtrica de rendimiento en lugar de los tiempos de respuesta en algunos casos.
Las demoras (latencia) entre las recuperaciones de las tramas o paquetes de datos o fotogramas de vdeo
pueden variar. Esta variacin es aleatorio o estadsticamente distribuidos y Gaussiano se denomina
retardo zitter. La notable zitter en demora a partir de la variacin esperada es indeseable. Se degrada el
rendimiento del sistema. Imagen zitters puede no ser tolerable, pero retras la recuperacin dentro del
umbral aceptable es tolerable.

Aceleradores de rendimiento puede haber varias maneras de acelerar el rendimiento.


Ejemplos de estos son como sigue.
1. Conversin de CDFGs en DFGs. utilizando, por ejemplo, el aplanamiento de bucle (bucles se convierten
en corrientes programa recta) y el uso de las tablas de bsqueda en lugar de condiciones de control
pruebas para decidir una ruta de flujo de programa.
2. Reutilizando la utilizan arrays y memoria y la seleccin de la variable correspondiente, adecuada
asignacin de memoria y desasignacin de estrategia.
3. Utiliza pilas como estructura de datos cuando sea factible, en lugar de cola y con cola en lugar de la lista,
siempre que sea factible.
4. Informtica primer ciclo ms lento y examinar las posibilidades de su velocidad.
5. Cdigo de manera que ms palabras se obtiene a partir de la ROM como un byte que las palabras
multibyte.
6. Co-procesadores y IPs como Java Accelerator Acelere el rendimiento.

Sistema host y herramientas de desarrollo de software se utilizan en desarrollo, pruebas anti depurar el software
incrustado en fase de desarrollo.

Se observan una serie de herramientas de software y hardware para implementar el sistema diseado fcilmente con
simples esfuerzos. Estos arc: simuladores, editores, compiladores, ensambladores, herramienta de ingeniera de cdigo
fuente, Profiler (tor visualizando el tiempo invertido en cada funcin o conjunto de instrucciones), mbito de la
memoria, el estetoscopio como vista" a la ejecucin del cdigo, la memoria y el alcance de la cobertura de cdigo,
emuladores, ICEs. osciloscopios, analizadores lgicos, sondas de lgica de EPROM y EEPROM/cdigos de aplicacin
grabadora.
Localizador de vinculador y se utilizan para la elaboracin de los cdigos para el hardware de destino. Localizador
tienen baldosas hexagonales de Intel o Motorola S formato. Programador de Dispositivos se utiliza para quemar la
imagen binaria de los cdigos desde el localizador de archivos creados.
Implementacin de un sistema de integracin de la corteza se realiza utilizando el kit de desarrollo del programa.
Cdigo fuente herramienta de ingeniera e IDE.
" El desarrollo de prototipos y herramientas IDE son utilizados para desarrollar el simulado, plenamente probado y
depurado sofisticados sistemas integrados con esfuerzos ms sencillos.
Seleccin de hardware adecuado durante el diseo del hardware y la comprensin de las posibilidades y capacidades
de hardware durante el diseo de software es especialmente crtico para un sofisticado sistema integrado de desarrollo.
Hay varias maneras de medir el rendimiento del sistema. Puede ser un rendimiento del sistema segn las especificaciones
requeridas y acordadas, disipacin de potencia, rendimientos, rendimientos de 10, tiempo de respuesta de las tareas, la fecha
lmite se pierde, respuesta a tareas espordicas, buffers de memoria.banliwidlh'adquisiciones y la optimizacin de la
memoria. Intervalos de latencia y plazo misses se miden para comprender el rendimiento de la programacin en tiempo real,
modelos y algoritmos de programacin.

Los sistemas integrados

644
-_______

ndice de rendimiento proporciona el rendimiento deseado con respecto a las especificaciones requeridas o parmetros.
Aceleradores de rendimiento se utilizan para mejorar el rendimiento. La aceleracin mediante el mismo sistema por
formas alternativas de tal forma que reduce los tiempos de ejecucin de un conjunto de cdigos, reduce las latencias de
las tareas o aumenta el rendimiento o minimiza el uso de memoria o disipacin de potencia o reduce los plazos que
faltan. Algunos caminos son loop aplanamiento, look-up tables, reutilizando la utilizan arrays y memoria y la seleccin
de la variable correspondiente, apropiado y la asignacin de memoria de estrategia de asignacin y uso de pilas como
estructura de datos cuando sea factible, en lugar de cola y con cola en lugar de la lista, siempre que sea factible. Debemos
mirar la informtica primer ciclo ms lento y examinar las posibilidades de su velocidad.
El derecho de elegir el procesador, la memoria, los dispositivos y el autobs y portar por OS/RTO el procesador, la
memoria sensible- sensibles y sensibles al dispositivo de instruccin es un deber. El orden de byte y la alineacin de los
datos debe ser de acuerdo a la plataforma elegida.

Palabras clave y sus definiciones


Plan de
accin el
ensamblad
or big
endian
quema
Lista
enlazada
circular

lista

doblemente
Co-diseo
enlazada

Crossassembler
alineacin

de

datos
Herramientas de
depuracin demora
zitters
Dispositivo
Dissembler
jyrograjftmer

Un plan de accin para el proceso de desarrollo.


Una herramienta para el montaje de los editados en cdigos mnemnicos.
Un orden en el que el byte ms alto de un nmero es considerado como primero.
Un acto de colocacin de la imagen de ROM para el cdigo y los datos en formato
comprimido o sin comprimir en una memoria EPROM o EEPROM o Flash o
microcontrolador o algn otro dispositivo similar.
Una estructura de datos de una lista en la que el ltimo elemento apunta al primer
elemento en lugar de apuntar a NULL en una lista habitual.
Una estructura de datos de una lista en la que cada elemento apunta a la siguiente, as
como el elemento anterior en la lista en lugar de apuntar a slo el siguiente elemento o
NULL en una lista habitual.
Equipo Software diseos con un conocimiento completo de las capacidades de
hardware y caractersticas de equipo de hardware y diseos con un conocimiento
completo del software CDFGs y las funciones que deben alcanzarse. Determinadas
funciones de software se implementan por hardware y algunas funciones de hardware
son ejecutados por software con el objetivo de alcanzar el rendimiento del sistema al
costo iowest.
Un ensamblador que ensambla el cdigo de mquina para la simulacin y otros
propsitos, y posteriormente ensambladas genera cdigos para el objetivo de
procesador.
La alineacin de los datos significa alineacin en forma especfica, por ejemplo, cuando
(i) dos o tres bytes almacenados en una direccin, pero el procesador accede a 4 bytes
durante un acceso en un procesador diseado para 32 bits por instruccin o palabra y
(ii) la misma estructura de datos en el archivo de origen "C" que muestra de manera
diferente en distintas plataformas con distintas alineaciones de datos.
Herramientas para depurar al sistema integrado de hardware y software funcionando.
La demora media zitters variaciones en los retrasos en la recuperacin o la llegada
sucesiva de conjuntos de datos. Las variaciones notables son indeseables.
Un dispositivo para grabar en los cdigos (Consulte la seccin 13.4).
Una herramienta para la obtencin de cdigos de nivel superior de la mquina, cdigos,
que estaban reunidos con anterioridad.

3
Yo

Yo

Proceso de desarrollo de software integrado y herramientas

Editar-test-ciclo
depuracin

de

Sistema integrado de
gestin de proyectos
Sistema host.

La interaccin hombremquina instrucciones de


I/O.
Dependencia
plataforma

de

Desarrollo integrado
Medio ambiente
IDE

Pila de red little


endian

Intrprete
Ljttency
El ndice de rendimiento
de aceleradores de
rendimiento
Pgina de mtricas
de rendimiento

la

1645

Un ciclo en fase de ejecucin en el que se editan los cdigos, probado y depurado para
inform de un error en la prueba.
Organizar a la gente, los procesos, el producto y el proyecto. La gente en el proyecto
de desarrollo de sistemas incrustados significa un equipo de desarrollo de software,
integracin de sistemas y desarrollo de hardware ingenieros.
Un PC o estacin de trabajo u ordenador porttil, que es un equipo cargado con
herramientas de software y el programa incluye kit de desarrollo para un lenguaje de
alto nivel, programa o IDE.
Las interacciones de un usuario a travs de herramientas como teclado, pantalla y
unidad de GUI. Leer, Escribir, procesador por te la manipulacin y otras
instrucciones para el uso de un dispositivo en un puerto.
Una funcin o ISR o controlador de dispositivo o funcin del SO o tipo de datos o la
utilizacin de la estructura de datos, dependiendo del procesador o de la memoria o
los dispositivos del sistema. Consulte IDE.
Una herramienta totalmente integrada consta de simuladores con editores,
compiladores, ensambladores, RTOS cdigo fuente herramienta de ingeniera,
Profiler (para ver el tiempo invertido en cada funcin o conjunto de instrucciones),
mbito de la memoria, el estetoscopio como ver a la ejecucin del cdigo, la memoria
y el mbito de cobertura de cdigo, emuladores, analizadores lgicos y los cdigos de
aplicacin EPROMfEEPROM humer.
Un orden en el que el byte ms bajo de un nmero es considerado como primero.
Una pila segn el protocolo elegido, por ejemplo, el protocolo RFC -1323, CIDR,
multidifusin IP. IP. UDP. TCP, el cliente DNS. Servidor DHCP, servidor SMTP.
RIPvl apoyo. R!Pv2 apoyo, ARP proxy ARP BOOTP o RLOGINN (para cliente y
servidor Telnet). Un sistema incorporado de socket multiprotocolo pueden conectarse
a una LAN. Red de cajeros automticos o SONET o acceso inalmbrico y redes
inteligentes utilizando las pilas de protocolos de la red.
Intrprete docs en tiempo de ejecucin la expresin por la expresin (lnea por lnea)
Traduccin a la mquina-cdigos ejecutables.
El tiempo tomado para activar la ejecucin de cdigo despus de un evento o una vez
adoptadas en ciertos cdigos de acabado antes de que se inicie la siguiente.
ndice para medir el rendimiento deseado con respecto a las especificaciones
requeridas. Usando el mismo sistema, alternativas para mejorar el tiempo de ejecucin
de un conjunto de cdigos y reducir la latencia o aumentar el rendimiento
o minimizar el uso de memoria o disipacin de energa.
ndices para medir el rendimiento usando diferentes medidas.
Una unidad de memoria en kilobytes, que puede ser contemplada como un solo bloque
de direccin inicial y una direccin de memoria puede ser remitidos por la direccin
de inicio plus offset.
Tamao de la pgina adoptadas por el administrador de memoria.

Herramientas de
creacin de
prototipos de
tamao de
pgina PLC
Portabilidad de
la plataforma
derecha

Herramientas para el desarrollo de la co-disear un protype para sistemas embebidos.


Una unidad programable para realizar funciones de control de lgica secuencial.
Problemas cuando un software desarrollado en una plataforma est incrustado en otra
,lf>
plataforma.
"

Una plataforma de hardware apropiada con el software adecuado para dar


mejor

646

Los sistemas integrados

V__ ?

Intercambio de softwarehardware
El costo del sistema de
integracin de sistemas de
vectores de prueba del
sistema de destino el
rendimiento VHDL y
VeriLog

Rendimiento al mnimo esfuerzo o costos.


Para planear adecuadamente y optimizar el rendimiento al mnimo costo y elegir
El conjunto de elementos de procesamiento, funciones y cdigos (por ejemplo,
VLIWs)
Ejecutado por una subunidad de hardware y que por un mdulo de software.
Costo de hardware y software. Incluye todos los gastos para el desarrollo
Team y los esfuerzos de gestin.
Integracin de software incorporado en el hardware y obteniendo un validado
Producto con un rendimiento optimizado.
Un sistema para los sistemas integrados que se utiliza durante el desarrollo
Fase y los productos finales de software y hardware son hechas a partir de ella.
Un conjunto de declaraciones en el programa para controlar el flujo de programaspath duing
La fase de prueba.
Nmero de procesos o funciones especficas ejecutadas por unidad de tiempo. 10
Sistemas, es el nmero de bytes que se transmiten o ledos por unidad de tiempo.
Idiomas para el diseo y la sntesis de la implementacin de un sistema VLSI
O de una parte del sistema.

Preguntas de repaso
1. Describir las funciones del compilador, enlazador, localizador, pala cargadora, intrprete, dissembler, cross-assembler e
integrada
El sistema de desarrollo.

2. Explicar las funciones del programador de dispositivos.


I. Por qu usamos el sistema host para la mayora del desarrollo''. Cules son las herramientas de software necesarias en el
host?
1. Qu es un sistema de destino? El sistema Hotv destino difieren del sistema integrado final ." Qu entendemos por
software de aplicacin para un sistema de destino?
I. Cmo tile informacin disponible sobre pilas de red y los controladores de dispositivo en el RTOS ayuda en ms rpidoerror IVec diseo? I. Por qu se esconde el rendimiento del sistema definido ;LS la capacidad de satisfacer las funciones
requeridas y las especificaciones mientras utiliza la cantidad mnima de recursos de memoria, disipacin de potencia y
dispositivos mnimos esfuerzos de diseo y utilizacin ptima de cada recurso (p. ej. alta carga de CPU)?
. Por qu las instrucciones de E/S depender de la plataforma? Definir el rendimiento de un sistema de E/S.
. Cmo alinear los datos? Tomemos el ejemplo de enteros de 32 bits almacenados como big endian como un ejemplo de
alineacin de bytes desde un flujo de entrada.
. Cmo se puede resolver el problema de los tipos de datos especficos de la interfaz?
. Por qu es la seleccin de la plataforma derecho fundamental durante el proceso de desarrollo del sistema integrado?
. Explicar el comercio de software-hardware apagado? Cules son las ventajas y desventajas de la aplicacin de software en
lugar de la implementacin del hardware?
Cules son las ventajas y desventajas de la implementacin del hardware en lugar de software la aplicacin? Cules son
los advantagesof utilizando FPSLIC (presentada sistema programable logic IC) en un sistema integrado?
Por qu son los controladores de dispositivo de los programas de procesador y memoria-sensibles?
.
, ps
Cules son los factores tor seleccionando un procesador durante la fase de diseo del sistema?
Describir los mtodos de aceleracin del rendimiento.

Proceso de desarrollo de software integrado y herramientas

647

Ejercicios de prctica
16. Tome un comercial de IDE, por ejemplo, desde Kiel y estudiar sus funciones, caractersticas y capacidades.
17. Explicar con un ejemplo del uso de cada uno de los siguientes: herramientas de desarrollo de aplicaciones nativas, el
entorno de desarrollo. Api para RTOS, capacidad de depuracin, simulacin de dispositivo de simulacin de red y la
interfaz de usuario.
18. Explicar con un ejemplo del uso de cada una de las siguientes herramientas de software: profiler alcance, uso de la memoria
el alcance, el estetoscopio, el alcance para el seguimiento del flujo del programa, las posibilidades de asignaciones de
memoria y usos y alcance de la cobertura de cdigo.
19. Explicar el hardware-software equilibrio tomando los ejemplos de cmara digital y ACC.
20. Puede disear un SoC por tres rutas: uso gate arrays utilizando el estndar y el uso de clulas IPs y diseos de componentes
bsicos. Lista casos de sistemas integrados para cada una de estas tres rutas
21. Huw hace un bfer ayudan a mejorar el rendimiento de un sistema''. Cul es la mtrica de rendimiento para un sistema
embebido basado en multiprocesador roarer? Cuando es la mnima latencia de interrupciones tomado como sistema
integrado de mtrica de rendimiento'.' (suponiendo que el router que tiene 10/100 Mbps de ancho de banda, ethemet
Leer on-line tema. Enfoque de Ingeniera de Software en Sistemas Embebidos proceso de desarrollo" y "Sistemas
interfaces para las LAN. Gbpsethernet interfaz para la conexin a servidores de Internet, WAN e interfaz de frame relay.
integrados de gestin de proyectos" en el sitio web material que acompaa al libro y responda a las siguientes.
ATM y packet over SONET/SDH).
22. Qu entiende usted por el sistema integrado de diseo independiente seguido bv la integracin del sistema y por sistemas
integrados de hardware-software concurrente co-diseo? Dar ejemplos en vivo para cada estrategia de diseo.
23. Cul debera ser la meta durante el proceso de desarrollo de un sistema integrado? Cmo varan desde el proceso de
desarrollo de software'.
24. Qu es el plan de accin a seguir al disear un sistema integrado?
2?. Que arc a las personas involucradas en un proyecto de desarrollo de sistemas integrados? cmo seleccionarlas para los
estudios de caso de los sistemas descritos en los captulos 11 y 12? Cmo ser el equipo de cambio cuando en tiempo
real del sistema de procesamiento de vdeo est en desarrollo?
26. Dar especificaciones del sistema para: (i) las funciones del producto y las tareas, tii) horario de entrega (iiil, ciclo de vida
del producto,
(iv) La carga en el sistema, (v) la interaccin hombre-mquina, entorno operativo (vi), (vii), viii) los sensores de potencia
y medio ambiente, f ix) el costo del sistema para una cmara digital. Cmara debe ser capaz de almacenar vdeo de 4
minutos o 300 imgenes fijas. El sistema debe incluir el puerto USB, software de video cum imgenes, temporizador de
disparo nico estndar, as como 10 segundos de retraso los inodos. Varias resoluciones: 1024 x 768. 640 x 480. 320 x
240 y 160 x 120 pxeles. Respuesta alterar bsqueda web.
27. Explicar el ciclo de vida del diseo del producto.
28. Qu entiende usted por el sistema de gestin de proyectos?
29. Explicar los trminos: (i) las funciones del producto y las tareas, (ii) la entrega de programacin de cal, (iii) el ciclo de
vida del producto, (iv) la carga en el sistema, (v) la interaccin hombre-mquina (p.ej. por teclado y pantalla subunidades),
(vi) del entorno operativo (p. ej. temperatura y humedad), vii), viii) los sensores de potencia y medio ambiente, (ix) el
costo del sistema.
30. Explicar el significado del diseo conceptual.
31. Lista de diagramas UML, que ayuda en el desarrollo del diseo conceptual, la estructura y el diseo.
32. Explique dos enfoques de diseo: diseo independiente y co-diseo.

Simulacin y prueba,
tcnicas y herramienta
s de depuracin

Sistema integrado de hardware y software, la


programacin y el diseo de la arquitectura se han
aprendido en los captulos anteriores. En la etapa de
portar cdigos en hardware, hay editar-test-ciclo de
depuracin, que se repite hasta que un bug-free cdigo se
obtiene.

Un
L

TiSa

Un

Yo

Las pruebas y la depuracin asegura la calidad del sistema. Una regla, que el
desarrollador debe seguir es que mal hasta confirmados derecho por las pruebas y la
depuracin. Documentacin en detalle para cada etapa de las pruebas y la depuracin
es tambin una necesidad. Aprenderemos lo siguiente:
1. Los cdigos del sistema son probados en el sistema host como sistema host tiene
las herramientas de desarrollo de aplicaciones, gran memoria y windows o
poderosos GUIs.
2. La simulacin mediante un simulador, que se ejecuta en el host, colabora en el
desarrollo del sistema de destino mediante la simulacin de procesador o
microcontrolador, perifricos, dispositivos e interfaces de red.
J. Herramientas de laboratorio, emulador en circuito y la ayuda del monitor de
sistema de destino en el desarrollo de hardware y software del sistema de destino
la prueba y depuracin en el entorno de destino.

*L
14.1 Las pruebas en la mquina host

1
V5

Tenemos dos sistemas con diferentes CPUs o microcontrolador y arquitectura de


hardware. Un sistema host y el otro es el objetivo (las secciones 13.2 y 13.4). El host es
generalmente PC o porttil o estacin de trabajo. Destino real es el hardware que se
utiliza para sistemas integrados en desarrollo.
Las pruebas y la depuracin tiene que estar ah, en cada etapa, as como en la etapa
final cuando los mdulos se colocan juntos. En las etapas iniciales de prueba se realiza
en la mquina host. Mquina host se utiliza para probar los cdigos independientes del
hardware. Mquina host tambin se utiliza para ejecutar simulator (Seccin 14.2). La
figura 14.1 muestra los sistemas de prueba en un proceso de desarrollo. Muestra host y
sistemas de hardware, y el host destino-dependiente, independiente y objetivo cdigo
dependiente. El cdigo tiene dos partes: independiente del hardware y hardwaredependen de cdigos. Por ejemplo, el puerto y los dispositivos tienen direcciones fijas
en el hardware.
| Aplicacin
Sistema
Herramientas
de Yo
desarrollo;
Hielo
Prueba
; Compilador cruzado;
Host
Simulador;
"
Sistema \!
Los datos de entrada y prueba Conectada al
Host
J
del pruebas de
'I Dependiendo
Los datos de
Sistema host
procesador del host
software
LJ\
(PC o estacin
destino y cdigo
de trabajo u
independiente del
ordenador
procesador
porttil)

I-! - Emulador de
ROM

Procesador de
destino cdigos
independientes
y dependientes

Fig. 14.1 Host y sistemas de hardware y host de destino-dependientes, independientes y


dependientes de destino los cdigos y sistemas de prueba en un proceso de

desarrollo
Cuadro 14.1 da nueve pasos durante la prueba.

650

Los sistemas integrados

Cuadro 14.1 Pasos de prueba en la mquina host


Pasos
Pruebas iniciales 1.
2. Los datos de prueba
3. Pruebas de condicin de
excepcin
' 4. Pruebas-1
5. Pruebas-2

Accin
Pruebe cada mdulo o segmento en etapa inicial y en el propio host.
Todas las posibles combinaciones de datos estn diseadas y tomadas como
datos de prueba.
Considere todas las posibles excepciones para la prueba.
Prueba de cdigo independiente del hardware.

Prueba de software (andamio andamio software es un software que se ejecuta en


el host de destino dependen de cdigos, y que tienen el mismo cdigo de
arranque y direcciones de puertos y dispositivos como en el hardware. Se dan
instrucciones de mosaico o entradas de teclado. Las salidas son en la pantalla
y ahorra un mosaico).
6. Prueba las rutinas de servicio LCD
Las secciones de las rutinas de servicio de interrupcin son llamados, que son
de interrupcin parte
independientes del hardware y probados (e.g" descifrando los datos de rutina).
independiente
deldehardware.
7. Prueba
las rutinas
servicio Las secciones de las rutinas de servicio de interrupcin son llamados, que son
de interrupcin parte
dependientes del hardware y probados (por ejemplo, la recepcin de los datos en
depende
hardware.
un
bferdependiente
de puerto). del hardware tiene las funciones de temporizacin y utiliza
8. Pruebas
dedel
temporizador
Cdigo
un dispositivo encalado. Rutinas relacionadas con temporizador como clock set
lamer,
get, assert
put, recuentos
retardo son
probados.
9. Pruebas de macro assert
El
usorecuentos
de la macro
es una de
importante
prueba
tcnica. Por ejemplo,
considere un comando 'assert (//puntero != null);'. Cuando el puntero se
convierta en //nulo, el programa se detendr. Podemos insertar los cdigos en el
programa que comprueba si un Estado o un parmetro se convierte a true o false.
Si resulta falsa, el programa se detiene. Podemos utilizar la macro assert en
diferentes lugares crticos en el programa de aplicacin.

14.2 Simuladores
Antes de volar un avin o avin de combate, un piloto utiliza el simulador de vuelo para entrenamiento. (Un simulador
de vuelo puede costar cientos de millones de dlares!).
Simulador utiliza conocimientos de procesador de destino o microcontrolador y arquitectura del sistema de
destino en el procesador host. Primer simulador Compilacin cruzada de los ejes y coloca estos en la RAM del
sistema host. El comportamiento del sistema de destino los registros del procesador tambin es simulada en la RAM.
Se utiliza el enlazador y el localizador al puerto la cruz-cdigos compilados en RAM y funciona como el cdigo (hat
habran quedado en el sistema de destino. Sistema host es un PC o estacin de trabajo u ordenador porttil y
generalmente funciona en Windows.
Software simulador tambin simula las unidades de hardware tales como emulador, perifricos, redes y
dispositivos de entrada-salida de un host (PC o estacin de trabajo u ordenador porttil). Un simulador sigue siendo
independiente de un determinado sistema objetivo. Es muy til durante la fase de desarrollo de software de aplicacin
para el sistema que tiene previsto emplear a un determinado procesador o microcontrolador o dispositivo. Los
resultados esperados de los cdigos en la memoria RAM del sistema TARGET, perifricos, redes y dispositivos de
entrada-salida son obtenidos en la RAM del sistema host.
Un simulador de ayuda en el desarrollo del sistema antes de que el sistema de destino final est listo con slo
un PC como herramienta para el desarrollo. Los simuladores estn disponibles para diferentes procesadores y
dispositivos de procesamiento empleando sistemas integrados, y un diseador de sistemas y/o desarrollador no
necesita cdigo para el simulador para el desarrollo de hardware y software de aplicacin en el laboratorio de diseo.
Figura"-l4..'!|whows el diseo detallado del proceso de desarrollo mediante el simulador.
Seccin 14.2.1 ofrece caractersticas del simulador. Seccin 14.2.2 da la posible inabilities del simulador.!" la
Seccin 14.2.3 describe las caractersticas de un software simulador VxSim. Seccin 14.2.4* describe las
caractersticas del desarrollo de prototipos, pruebas y herramientas de depuracin.

1651 !

Simulacin y prueba, tcnicas y herramientas de depuracin

Definir

Procesador
Editar
archivo
cdigo

! Definir
Versin

I j Definir Puerto
de !--| Windows y
J | Sistema de destino

EditarT
archivo de
datos inicial

Inset romper
Modificar datos
Y las tablas

Link
Bibliotec
a
Ejecutar

Definir fuente
Ventana de cdigo
T
Definir
Registrarse
Windows

Compilar

Prueba del
programa
+
Utilizar
ensamblador

Correcto
Simular
el
sistema
de
destino
No
es correcto
trabajando

O.K.

Debug

Fig. 14.2 El diseo detallado del proceso de desarrollo mediante el simulador

14.2.1 Caractersticas del simulador


Un tpico simulator es mayormente se ejecutan en un entorno Windows para PC. Un tpico simulador incluye las
siguientes caractersticas.
(1) Define el procesador o la transformacin de la familia de dispositivos as como sus diversas versiones
de ns largei lor el sistema.
(2) Supervisa la informacin detallada de una parte del cdigo fuente w ith etiquetas y argumentos
simblicos como ihe va en ejecucin para cada paso.
(3) Proporciona informacin detallada sobre el estado de la RAM y puertos (simulado) de la meta definida
como la ejecucin del sistema pasa por cada paso.
(4) Proporciona la informacin detallada del estado de los dispositivos perifricos (simuladas, que se
presume se adjunta) con el sistema establecido.
(5) Se ofrece la informacin detallada de los registros como la ejecucin pasa por cada paso o para cada
mdulo. Tambin controla la respuesta del sistema y determina el rendimiento.
(6) Las ventanas en la pantalla proporcionan las siguientes.
(a) La informacin detallada del estado de la pila, dispositivos y puertos (simulado) del microcontrolador
definidos por el sistema.
(b) Trace el flujo del programa como la ejecucin contina. Un rastreo significa la salida de contenido
de PC frente a los registros del procesador. Es una importante herramienta de depuracin de un
programa en lenguaje ensamblador. Trace Software de aplicacin significa un.Salida de variables
escogidas en funcin de la secuencia paso a paso. Tracescope da el tiempo en el eje X y el parmetro
elegido en el eje y que el programa sigue an ms. (TraceScope es una herramienta mdulo para
obtener un seguimiento de los cambios en los mdulos y las tareas con el tiempo en el eje x. Una
accin-lista tambin produce con especificaciones de escalas de tiempo de espera).

652

Los sistemas integrados

(7) Proporciona ayuda en la pantalla de Windows. Una ventana de ayuda le da el significado detallado el
comando actual sealadas por los ratones-cursor.
(8) Supervisa la informacin detallada del simulador comandos como estos se introducen desde el teclado o
desde el men seleccionado.
(9) Incorpora el ensamblador, dissembler, definida por el usuario, las pulsaciones de teclas o ratn-macros
seleccionadas, e intrpretes para las expresiones en lenguaje C, as como para el lenguaje ensamblador
mnemnicos (expresiones). As pues, las pruebas el conjunto de cdigos. La macro de teclas definidas por
el usuario es una herramienta muy til. Por ejemplo, podemos definir pulsacin I. decir, para proporcionar
una determinada entrada byte en un puerto n y una determinada direccin RAM byte.
"Oh, soporta las condiciones (hasta 8 o 16 o 32) e incondicional de las condiciones de los puntos de
interrupcin. Hay una caracterstica que detiene un programa despus de una determinada cantidad de
veces que se ejecuta una instruccin. Los puntos de interrupcin y trace son utilizados en las pruebas y la
depuracin de la herramienta.
1 : facilita la sincronizacin de los perifricos internos y retrasos.
' i emplea anticiparse RTOS apoyo para el programador de tareas de alta prioridad.
' t simula los aportes de las interrupciones, los temporizadores, puertos y perifricos. De ah que los cdigos
de estas pruebas.
-1 proporciona el controlador de red y el controlador de dispositivo de apoyo.
Nulator simula la mayora de las funciones de un sistema integrado de destino incluidos en el circuito de
memoria adicional. Mpher.Ils y autobuses en el sistema host. Hace que el desarrollo de aplicaciones
independientes de antes nilahilily de un determinado sistema de destino. Tambin simula los procesos en
tiempo real y muestra los resultados en i1 sistema host que se obtiene cuando los cdigos se ejecuta realmente
en el objetivo de procesador en particular.

1.2 Simulador Inabilities posible


El emulador no puede resolver los problemas de sincronizacin y problemas dependientes del hardware. La
velocidad del procesador en el destino ".vs<o pueden no estar debidamente correlacionado con la velocidad del
procesador en el host para calcular la respuesta en tiempo t calcular instancias de produccin y rendimientos en el
destino.
' Simulator puede fallar para mostrar un error de los datos compartidos (Seccin 7.8), como surge de una
interrupcin en algunos ticular situacin slo.
Un simulador puede no ser capaz de simular la ASICs y IP(s), los cuales pueden ser integradas en el sistema de
destino. Un I1' i un IP core fabricante generalmente proporciona una herramienta de depuracin alternativa en ese
caso. Por ejemplo, el hielo para el procesador ARM7, ARM9 o (Seccin 2.3.3) emula las funciones del brazo
sobre el procesador y el sistema de host.
Un simulador puede no ser capaz de tener en cuenta de la existencia de los dispositivos internos. Por ejemplo, el
destino tein pueden utilizar un acelerador de Java, mientras que el sistema host no pueden tener ese.
Un simulador puede no ser capaz de tomar en cuenta los problemas de portabilidad. Por ejemplo, el sistema de
destino pueden tener es el bus de datos entre la memoria RAM y procesador de ONU-pipelined y han canalizado
y procesador de host de bus de 32 bits.

.2.3 El Software de la herramienta de simulacin


Sim. Es un simulador VxSim herramienta, que proporciona un destino virtual para desarrollar y depurar los cdigos. Ps
en ti evitando los repetidos cdigo localizado en placa de destino real del sistema integrado. Simulando el dication con
VxSim es de gran ayuda en la fase temprana de desarrollo, como la programacin de tareas VxWorks RTOS he simulado
minuciosamente antes de la aplicacin en el destino.
El cuadro 14.2 proporciona las caractersticas.

|653

Simulacin y prueba, tcnicas y herramientas de depuracin

Cuadro 14.2 Caractersticas en un simulador de ejemplar VxSim


Funciones compatibles
Las herramientas de desarrollo de
aplicaciones
Entorno de desarrollo nativo

Actividades
Soporta el UML y el Rouge ola". Da un breve ciclo de diseo.
Es compatible con diversos entornos de desarrollo nativo y depuracin. El medio
ambiente puede ser MS Visual C++ o las herramientas GNU.

Api de simulacin de los RTOS

Simula el uso de API de muchos de los RTOS para un determinado hardware.

La capacidad de depuracin
Simulacin de dispositivo

La capacidad de depuracin permite el diagnstico de una tarea mucho ms fcil.


Simula los dispositivos y el comportamiento de los conductores.

Red de simulacin

Simulacin de la interfaz de usuario

Las capacidades de simulacin de red hacen una prueba virtual cama, que permite el
modelado de sistemas complejos en red multinodo. Por ejemplo, un router o gateway.
Una aplicacin de red puede simular la subred interna o una red real. Cuando se trata de
simular una red, genera paquetes para varios protocolos de red estndar que incluyen
incluso el IP multicast y broadcast IP.
Simula, por ejemplo, un conjunto de caja de interfaz.

14.2.4 El desarrollo de prototipos, pruebas y herramientas de depuracin


para sistemas integrados
Un prototipo de una herramienta de desarrollo puede utilizarse mal lugar del hardware del sistema de destino.
Estas herramientas simulan, compilar y depurar con un navegador. El explorador se resume la final dirigido al
sistema integrado completo del estado durante la fase de desarrollo. Cuadro 14.3 ofrece las caractersticas de un
conjunto de herramientas de creacin de prototipos de WindRiver.

14.3 Herramientas de laboratorio


14.3.1 Medidor Volt-Ohm simple
Simple Volt-Ohm medidor puede ser utilizado para probar el hardware de destino. Tiene dos cables marcados en
rojo y negro. Uno de los extremos de cada uno de ellos est conectado al medidor y la otra a los puntos entre los
cuales el voltaje o resistencia es que se va a medir. El medidor est ajustado para el voltio para la comprobacin
de la tensin de alimentacin en la fuente y niveles de tensin en las patillas de entrada de alimentacin de chips
y pott phis inicial" al principio y al final de los niveles de tensin despus de que el software se ejecuta. El medidor
est configurado para ohmios cuando est comprobando las conexiones interrumpidas, conexiones a tierra
incorrectas y bum fuera resistencias y diodos.

14.3.2 LED simples pruebas y Sonda lgica


Recordemos que una seal digital es simplemente una discreta seal entre dos rangos de tensin. Lgica CMOS,
* I ' es la discreta Gama VDD a 0,66 VDU y '0' es 0.33 A VDD VDD donde V0D suele ser de 5 V con respecto a
VDD (potencial de tierra). Una seal analgica que vara continuamente. Una sonda lgica es el dispositivo de
prueba de hardware ms simple. Es un handheld pen-como el dispositivo con LEDs. El LED se ilumina de color
verde cuando la punta de la sonda toca en el punto de prueba (puerto o en haiiTwandpin) y el bit no hay 'I'. Se
ilumina en rojo si es 'O'. Una sonda lgica LED parpadea rpido en una versin de sonda,
Cuando un punto de prueba est en "1" y no parpadea cuando en 'O'. El dispositivo en el otro extremo se conecta
por cable al
Potencial de tierra.

1654 i

Los sistemas integrados

( __ \
Cuadro 14.3 Conjunto de herramientas de creacin de prototipos de
WindRiver
Caractersticas
ScnpcRrotile

MemScopc

SielhoScope

TraeeScope

C'odcTest memoria,
tince y cobertura

VxWorks
networking
pantalones

VxSim

Esta dinmica execuLion profiler nos permite ver como un osciloscopio la forma de onda, donde la
CPU est gastando sus ciclos. Los cuellos de botella de rendimiento puede ser entendida. Muestra la
cantidad de tiempo que el procesador invierte en cada funcin en la tarea o ISR.
El uso de la memoria es un aspecto crtico de un sistema integrado. Hay cualquier derroche de
memoria? Hay algn error de prdida de memoria? Fuga de memoria significa que un puntero se
incrementa en la zona sin asignar para una tarea o un desbordamiento de pila o escribir al final de una
matriz. MemScope da el bloque de memoria de uso. Detecta la fuga debido a la llamada de sistema u
otro mdulo portados.
Slo como un estetoscopio ayuda al mdico en el diagnstico, se realiza el seguimiento de los cambios
de forma dinmica en cualquier variable del programa. Se realiza un seguimiento de la evolucin de un
parmetro. Nos permite comprender las secuencias de varios subprocesos (tareas) que se ejecutan.
Registra todo el tiempo de la historia.
Ayuda en la bsqueda de los cambios con el tiempo en el eje X y un elemento de la lista de acciones
de Y. TraceScope nos permite encontrar el RTOS scheduler comportamiento durante la conmutacin
de tareas y notas de los tiempos para diversas acciones. RTOS
Estas herramientas ayudan en pruebas de cdigo mediante la asignacin dinmica de la memoria
anlisis, visualizar trazas de flujo controlado y la cobertura de cdigo bajo diferentes situaciones de
palabra real. El estudio de cobertura de cdigo ayuda a eliminar el exceso de cdigos y funciones no es
necesario para una aplicacin especfica. Facilita el desarrollo de un sistema escalable.
Otra herramienta elctrica que mejora el proceso de desarrollo de cdigo. VxWorks RTOS prepara la
pila para enviar datos en internet para probar dispositivos de conmutacin de alto rendimiento. La pila
es segn el protocolo elegido. Los protocolos son los siguientes: RFC-1323. CIDR. La Multidifusin
IP! IP. UDP. TCP. Cliente DNS. Servidor DHCP. Servidor SMTP. R!pv.l apoyo. RIPv? Apoyo. ARP.
ARP proxy. BOOTP. RLOGINN (para cliente y servidor Telnet). Un sistema incorporado de socket
multiprotocolo pueden conectarse a una LAN. Red de cajeros automticos o SONET o acceso
inalmbrico y redes inteligentes.
Un simulador potente herramienta, que proporciona un destino virtual para desarrollar y depurar los
cdigos. Ayuda a evitar la repeticin de cdigo situado en la placa de destino real del sistema integrado.
La simulacin de la aplicacin con VxSim es de gran ayuda en la fase temprana de desarrollo, como el
RTOS la programacin de tareas puede ser simulado minuciosamente antes de la aplicacin en el
destino.

Una sonda lgica se convierte en una herramienta importante cuando se estudian los efectos de retardo largo
(>l segundo) a un puerto. Su ipplication es como sigue. Un programa corto para un retraso y luego enviar los
resultados al puerto mediante sonda lgica vill probar el temporizador so lame.

L4.3.3 osciloscopio
-'inully. cdigo descargado las pruebas de necesidades de hardware despus de completar la prueba de edicin y
depuracin, mediante un ciclo inuilatoror IDE. Un osciloscopio es un mbito con una pantalla para mostrar dos
tensiones de seal como una funcin de tiempo, t muestra analog as como seales digitales como una funcin de
tiempo.
Debemos utilizarlo con DC (acoplado directamente) entradas. Otro terminal de la entrada est siempre bien
mantenidos en ronda potencial. El trmino DC no debe confundirse con el suministro de corriente directa.
Osciloscopio tiene dos elecciones para el ail de entrada, DC y AC. Acoplamiento de CC significa directamente la
entrada a la entrada de alcance amplificador. AC neans entrada al amplificador (seccin vertical amplificador)
despus de un condensador. Cuando se utiliza en AC, la forma de la seal puede listort. Su uso es slo durante la
visualizacin de la seal en un formulario, en el que la amplitud de seal = 0 cuando se promedian iver tiempo
(componente alterna de la seal dada). (en promedio, significa un promedio simple, no root mean

Simulacin y prueba, tcnicas y herramientas de depuracin

655

Square promedio.) Si las seales de bus son vistos con seleccin de CA, una falsa excesos o defectos se pueden
mostrar. Por lo tanto, la mayora de las veces, nos conectamos a la entrada de DC para observar las formas de
onda.
Si se ejecuta un reloj mostrar los estados 0 y 1 en el mbito. El espacio horizontal entre los sucesivos bordes
ascendente nos da el reloj de tiempo. Por ejemplo, un 8051 con un cristal de 12 MHz, habr estados, cada uno de
los perodo 0.0825 ps. La casilla de esta direccin y ALE (latch enable) simultneamente en dos amplificadores
de entrada ser prueba de la actividad del procesador. Otro uso de alcance est en controlar el reloj de tiempo real
y rutinas rutina de salida de ancho de pulso. Software de tiempo real y la depuracin del neumtico lest fcil
usando los mbitos. La seal de salida de un puerto serie o el bit de salida de un puerto paralelo de la prueba
deber proporcionar informacin significativa. Alcance utilizable para probar las rutinas de tiempo de retardo. Se
pueden ajustar tres parmetros de retardo en tres registros y nota el intervalo tomado para el puerto poco a cambiar
con cada ejecucin. Frente de estas tres intervalos medidos, calculamos el ajuste actual en el registro de retardo
requerido. Nosotros entonces ejecutar este retardo de parametrizacin y prueba, utilizando el alcance y afinar el
ajuste del retardo de exactas.
Una ventaja de alcance es su uso como una herramienta de deteccin de ruido y como un voltmetro. Otro uso
es la deteccin de una repentina entre transicin entre '0' y 'I' miembros durante un perodo de reloj. Este depura
un autobs averiado. Un almacenamiento.nope es otra versin del osciloscopio. Almacena las seales frente a la
cal. Posteriormente analizamos la actividad almacenados.

14.3.4 Medidor de velocidad de bits


Una tasa de bits medidor es un dispositivo de medicin que busca los nmeros de ' I \s e o s en el lapso de tiempo
preseleccionado. Cmo medir el rendimiento, el nmero de bytes por segundo en una red? Supongamos que un
buey55A (binario 1010010101011010) se enva repetidamente como bits de salida. El nmero de I s multiplicado
por 16 el rendimiento de mosaico en bytes/segundo. Del mismo modo podemos encontrar otro patrn de bits, y
encontrar el nmero esperado de bits en el momento dado. Podemos estimar el bits, Ts y '0's en un mensaje de
prueba y, a continuacin, utilizar la velocidad de bits medidor para encontrar si que coincide con el mensaje.

14.3.5 Analizador de lgica


Alterar mediante el simulador, hielo y depurar los cdigos en ROM. En mosaico hist etapa de depuracin, utilice
una solucin de problemas nos mav herramienta de diagnstico de hardware que registra el estado (i) como una
funcin de tiempo y (ii) como una funcin de otras stales. Analizador lgico puede ser utilizado en cualquiera de
estos dos modos.
Logic Analyzer es una herramienta elctrica para recoger a travs de mltiples lneas de entrada (digamos. 24
o 48) de los autobuses, los puertos y los registros de transacciones de muchas paradas de autobs
(aproximadamente 128 o ms). Se muestra en el monitor (pantalla) para depurar en tiempo real las condiciones de
disparo. Ayuda en la bsqueda de forma secuencial las seales como las instrucciones ejecutar con respecto a una
referencia. Uno de los bus de seal o seal de reloj es tomado como referencia.
Un analizador lgico puede depurar fcilmente a nivel de pequeos sistemas embebidos. Es una herramienta
ms potente que el alcance. Alcance opiniones y comprobaciones slo dos lneas de seal. Un analizador lgico
es una potente herramienta de software para varias lneas cheeking llevaban la direccin datos y bits de control y
el reloj. El analizador slo reconoce las condiciones de Voltaje discreto. 'T y 'O'.
En el primer modo, el analizador recoge la lgica de estados como una funcin del tiempo y las guarda en la
memoria y se muestra en pantalla. Realiza un seguimiento de las mltiples seales simultneamente y as
sucesivamente. Hay varias lneas de entrada (24 o 48 o ms). Podemos conectar las tuberas del sistema y los buses
de E/S, puertos y perifricos. Recoge simultneamente durante la duracin de los muchos autobuses de
transacciones (alrededor de 128 o ms). Posteriormente se muestra, utilizando esta herramienta, cada transaccin
en cada uno de estos en el monitor del ordenador (la pantalla). Tambin imprime los resultados mostrados. Las
diferencias de fase en la lnea de entrada ealn tambin dan pistas importantes. Se depura en tiempo real las
condiciones de disparo. Ayuda en la bsqueda de las seales de bus y el puerto de estado de seal secuencialmente
como se ejecutan las instrucciones. Una variante del analizador lgico tambin proporciona la medicin analgica
cuando sea necesario.

Los sistemas integrados

656

En el segundo modo, los autobuses estn conectados a logic Analyzer El analizador y pasadores de sonda da
los estados capturados de todas las seales del reloj de borde. El punto de activacin lor capturando los estados
pueden ser definidos por el usuario. El punto de activacin puede ser definida como la observacin de un cdigo
de operacin ilegal o procesador en particular la direccin de inicio o un puerto determinado byte a la salida.
Por ejemplo, el analizador est configurado para medir en primero, segundo, tercero, cuarto y as
sucesivamente, hasta los bordes del reloj 64 o I2K o cualquier nmero (digamos 2-") reloj bordes desde un
comienzo la direccin 0x10000. El analizador proporciona la direccin del bus de datos y estados en hexadecimal
y le da a cada seal de control estatal. Una versin avanzada de un analizador lgico tambin trace las secuencias
de instrucciones de la direccin de bus de datos observados y los estados en los bordes del reloj :.'K- dada la
direccin de inicio. Un ingeniero de software puede rastrear instruccin ilegal o protegido, cuando accede a la
direccin : anula los cdigos.
Algunos errores que surgen intermitentemente tambin pueden ser grabados con un analizador lgico por
constantes y reiteradas ejecuciones del sistema.
Yo Inabilities ogic Analyzer un analizador lgico no ayuda en un programa de interrupcin debido a un error. No
-h'Hv mueren en el registro del procesador y el contenido de la memoria. Si el procesador utiliza la cach, el bus
solo examen pueden pudrirse ayuda. No podemos modificar el contenido de la memoria o la entrada ptirameters
durante el rastreo y mostrar como hacemos nr un simulador. Los efectos de estos cambios son invisibles.
Wi. Ii SOC uso en el diseo de sistemas integrados, las conexiones interiores apenas no son visibles para el
analizador lgico.

I *!.3.6 Emulador In-Circuit (ICE)


En lugar de en el sistema de destino que se copian para obtener un sistema integrado, podemos tener una unidad
separada que sigue siendo independiente de un determinado sistema objetivo procesador o microcontrolador? S.
Wc UNC un objetivo o hielo. En lugar de un destino, un circuito ICE proporciona una mayor flexibilidad y
facilidad para el desarrollo de varias aplicaciones en un nico sistema en lugar de probar varios sistemas de destino.
Figura 14.3(a) y (en la muestra el emulador y hielo. respectivamente.
El hielo es un circuito para emular el sistema de destino que se mantiene independiente de un determinado
sistema objetivo, procesador utilizables durante la fase de desarrollo para la mayora de los sistemas de destino que
incorporar un chip microcontrolador concreto. Funciona de forma independiente, as como mediante la conexin
al PC a travs de un enlace serial. Es un destino menos circuito microprocesador o microcontrolador de destino.
Para el destino con un
emulador de sistema

Fig. 14.3

(b)
(a) Un emulador (b) un emulador en circuito

Simulacin y prueba, tcnicas y herramientas de depuracin

1657!

El hielo es un emulador del microprocesador del circuito de destino, de tal modo que un sistema host se
conecta al ICE a travs de un enlace serial para propsitos de depuracin. Hielo emula varias versiones de una
familia durante la fase de desarrollo de microcontrolador utiliza la parte restante de la meta del circuito.
El hielo es un emulador del microprocesador o microcontrolador de destino en un destino del circuito
emulando el circuito.
Cmo funciona un hielo difieren de destino? El objetivo usa el circuito formado por el microcontrolador o
procesador en s. El emulador emula el sistema de destino con memoria extendida y con capacidad de descarga
de cdigos durante la edicin de prueba ciclos de depuracin. Hielo emula el procesador o microcontrolador. Se
utiliza un circuito con una tarjeta que se conecta al procesador de destino (o circuito) a travs de un socket.
El soporte de la espalda del paquete de hardware y el hielo se enumeran y explican las subunidades en la Tabla
14.4.
Cuadro 14.4 Back Support Paquete de hardware y emulador In-Circuit subunidades (ICE)

Emulator
subunidades1
Circuito de interfaz

Zcalo

Action(s)
Es para descargar imgenes ROM en RAM y EPROM bytes desde el sistema host en el emulador. Se
utiliza un puerto serie (COM RS232C) puerto de PC (figura 14.3). Ayuda en la incrustacin
En el programa la gran parte de memoria cdigos de aplicacin directamente desde el PC. Los cdigos
pueden ser desarrolladas en el host usando un lenguaje de alto nivel. Por ejemplo, el desarrollo de la
aplicacin de los cdigos de diseador considera que es mucho ms fcil escribir los grandes programas
de aplicacin en lugar de teclear en cdigos de mquina con 20 teclas elstico en el emulador.
Un multipin maie-hembra para insertar un procesador de propsito general o DSP o procesador
embebido o microcontrolador, que conecta con el ICE a travs de un cable (normalmente un cable plano)
y conectores. (ver Figura 14.3(A), toma la esquina derecha).

Memoria externa

Memoria RAM adicional y la EPROM o EEPROM. suficiente lor uso por niusi largeicd posibles
sistemas y sus aplicaciones.
Una sola lnea <S'- o 12 Visualizacin de caracteres. es para mostrar el contenido de las direcciones de
Atesoran emuladores memoria uno
Unidad de
Por uno, tambin, ii es mostrar el contenido de los registros en los diferentes pasos del programa.
visualizacin
20-key* Notas
Es enler datos y ayudantes loeally directamente por el usuario en las direcciones de memoria. Estos
cdigos deben ser cdigos de mquina.
Registra
Conectores

Teclado del sistema


de destino
Controlador de
sistema de destino
El circuito
Monitorear los
cdigos
1

Otros registros de sistema para el nico paso as como lull speed test se ejecuta durante las pruebas del
sistema.
A plug-in este emulador para los circuitos de entrelazado y otros dispositivos y perifricos que son
tpicas para el sistema. Un conector para el mdulo de visualizacin del sistema de destino es un
ejemplo. Otro ejemplo es el circuito de interfaz de PC.
Tarjeta de entrada de usuario del teclado equivalente al sistema de destino espera teclado.
Por ejemplo, el hardware del controlador de red o de motor o vlvula de solenoide o el horno o
impresora.
Estos son en el emulador de EPROM o EEROM - o en el sistema de destino ROM para probar y depurar
con destino verdadero procesador o microcontrolador y circuito de destino.

emuladores de Orion instrumentos. Ee.Uu. Incorporar el analizador lgico-como facility (Seccin 14.4.4). Intel ofrece los
emuladores y respaldo para sus diferentes paquetes de procesadores y microcontroladores.

. .1*
El hielo se compone de los siguientes elementos: (i) un emulador pod con un cable de cinta, que se extiende a un procesador

O microcontrolador toma del sistema de destino [Figura 14.3(b)], despus de insertar el procesador IC en ese
socket.

658 i

Los sistemas integrados

En iter. podemos probar el sistema de destino. (Recuerde que este desarrollado y depurado sistema es una API
para la final, embedded system) para evitar el acoplamiento capacitivo efecto debido a un cable largo, debemos
utilizar como cable corto como sea posible. El circuito pod emula el sistema destino microcontrolador o
procesador, tii) el pod rially enlaces a COM puerto RS232C de un ordenador. A travs de este puerto, el pod
obtiene los cdigos de descarga desde el miputer. El programa de computadora para los monitores .emulador
completamente los bytes en la memoria y registros cationes. El pod puede tener alguna tarjeta entre su circuito
bsico y puente de cable de cinta. La sustitucin de esta od hace factible utilizar el hielo para otra versin de un
procesador o microcontrolador familia.
Qu acerca de ncleo de procesador en s acompaando al ncleo de hielo? Una caracterstica en el brazo? Y
9 procesadores .Seccin 2.3.3) es que estos procesadores tienen que acompaan a la Subunidad de hielo. Ayuda
en la depuracin del irdware selectivas.
El hielo o el emulador se desactiva despus de la fase de desarrollo est completo. Un circuito real formas
copiando e cdigos elaborados utilizando el hielo. Este circuito despus de la interconexin para el procesador
de destino consta del procesador requiere ;ed, chips de memoria y las llaves y unidades de visualizacin u otros
perifricos. Esto debera funcionar tactly la misma y como perfectamente como al final de la fase de desarrollo
que hemos completado usando el emulador hielo. Un emulador ayuda en el desarrollo del sistema antes de que
el sistema de destino final est listo. Motorola ofrece M68HC11EVM y M68HCEVB como emuladores para el
microcontrolador 68HC11 rget basado en sistema. Estos emuladores tienen las siguientes conexiones externas.
Cuando se utiliza un emulador o hielo, el software necesario para la fase de ejecucin son los editores,
ensambladores, ssembler. simuladores y as sucesivamente (Seccin 12.4). El sistema principal es slo para
cargar los cdigos a la nulator y para devolver los cdigos y datos en diferentes direcciones en la memoria del
emulador. Un diseador :eds el sistema host para ahorrar tiempo de programacin a nivel de mquina que puede
ser demasiado para el sofisticado ^plications. Podemos tener el conector adicional conectores para las diferentes
versiones del microcontrolador: ejemplo de infrarrojos, que sirve para emular una versin 48 polos, as como
una versin de 52 pines del 68HCII.
Un hielo visionICE '1' es un hielo que tiene las capacidades de networking. Este ltimo imbibes por hernet
conectividad de 10/100 Mbps. Esto permite que el hielo accesible a una LAN. La depuracin remota es otra
ventaja. Tambin mneets al puerto serie del sistema de destino.
Una ROM ennilutnr [Figura 14.3(a). Lado derecho! Solo emula un ROM. El equipo de destino se conecta a
travs de un ROM >cket y tambin se conecta al ordenador. Existe una necesidad durante la edicin de prueba de
ciclo de depuracin para descargar ie cdigos en el sistema de destino o EEPROM flash cclicamente. ThOe
ROM Emulator obvia esta necesidad. Lection Monitor 14.3.7) Los cdigos pueden ser descargados en el hielo
ROM. Puede ejecutar una Autoprueba de encendido (POST) programa I bootstrapping. El sistema incorporado
cuando se acopla al puerto COM RS232C o el puerto de red de un equipo usar gdb. un depurador de GNU (es un
freeware descargable).

4.3.7 Monitor
Lonitor es una herramienta de depuracin para microprocesador o microcontrolador de destino real en hielo o en
.ROM Emulator rget board de desarrollo. Tambin permite que la interfaz de depuracin del sistema host como un
hielo. Monitores de diferentes >urces difieren en su funcionamiento. Un monitor tpico hace lo siguiente.
I. Supervisar la carga de la aplicacin de cdigos, se utiliza tambin para correcciones en los cdigos y luego
de probar el sistema. Un comando para descargar puede descargar un nuevo cdigo de aplicacin en el
monitor. Un comando para reiniciar el programa reinicia el programa. Supervisar la carga de la aplicacin
(archivo hex) de los pases en desarrollo en el sistema (host) que tambin pueden ser modificados
posteriormente para corregir los cdigos.
(Es 2. Una parte del monitor se ejecuta en el sistema host. Monitor de depuracin se descargan los cdigos junto
con el localizador imagen binaria. Un comando de escritura y de lectura se utiliza para corregir o examinar
los cdigos en las direcciones de memoria del sistema. Controles del monitor (segn el comando del
depurador) la ejecucin de la aplicacin a toda velocidad, as como por la ejecucin paso a paso durante la
fase de depuracin.

Simulacin y prueba, tcnicas y herramientas de depuracin

659

3. Controles del monitor (inserciones, elimina, modifica) puntos de interrupcin como por comando del
depurador (mentira. Un breakpoint particiones (programa en segmentos separados. Cuando un segmento
del programa se ejecuta, hay una pausa en la Breakpoint y luego probar el resultado se observa despus
de la carrera y es examinado; entonces, el segmento se ejecute. Los puntos de interrupcin permiten
mmica de prueba del programa entre los distintos segmentos de programa.
4. Monitor se puede ejecutar en modo paso a paso.
5. Monitor facilita la ejecucin de aplicaciones controladas y controla la visualizacin de estado de
ejecucin del programa.
El cuadro
14.5Placa
muestra
lasubunidades
placa target incluyendo
unidades con
monitor y segmentos.
Cuadro
14.5
Target
Monitor
Placa Target subunidades

Zcalo

RAM e interfaces
Mostrar

Segmentos de monitor en
ROM
Panel de teclas 21
Conectores

Actinn(s)

Es para descargar y monitor de imgenes ROM en RAM y EPROM bytes desde el


sistema host en el destino. Se utiliza un puerto serie (COM) puerto RS232C del
sistema host. Los cdigos pueden ser desarrolladas en el host usando un lenguaje de
alto nivel.
RAM e interfaces.
La subunidad pantalla muestra los cdigos de aplicacin (segn el comando del
depurador! En su totalidad o en segmentos, los registros y direcciones de memoria
RAM interna o datos durante la fase de depuracin funcionan a travs de la ejecucin
paso a paso o puntos de interrupcin.
Comandos de la interfaz de usuario para interactuar con el sistema host; intrprete
de comandos; cargado: los cdigos de aplicacin y los datos.
Es para introducir datos y comandos de monitor y corrige (l cdigos directamente
por el usuario localmente en las direcciones de memoria. Estos cdigos deben ser
cdigos
de mquina.
La
subunidad
conectores para la pantalla y la impresora.

Monitor significa un programa residente de ROM en el directorio de destino o ROM emulador conectado al
hielo. Supervisa las aplicaciones del dispositivo, las carreras de arquitectura de hardware diferente y se utiliza
para la depuracin.

|IfIggijjji Resumen
El siguiente es un resumen de lo que habamos discutido en este captulo.
Los cdigos del sistema son probados en el sistema host como sistema host tiene las herramientas de
desarrollo de aplicaciones, gran memoria y windows o poderosos GUIs. Cada mdulo debe ser probado
en la etapa inicial de su desarrollo, as como mediante la integracin de todos los mdulos. El software
puede ser probado en la mquina host. Se divide en dos partes: hardware (destino)- iildependent cdigo
y cdigo dependiente del hardware. Cdigo dependiente del hardware ha fijado las direcciones de inicio,
puerto fijo y dispositivos de registro y otras direcciones.
La simulacin mediante un simulador, que se ejecuta en el host, colabora en el desarrollo del sistema de
destino mediante la simulacin de procesador o microcontrolador, perifricos, dispositivos e interfaces
de red. Conjunto de instrucciones de procesador de destino o microcontrolador simula en el host en un
simulador.
Ohmimetro es til para controlar la tensin de alimentacin en la fuente y nivel de tensin,'^'! Entrada
de alimentacin de chips de pasadores, pasadores y puerto inicial a inicio y final de los niveles de tensin
despus de que el software se ejecuta, comprobando las conexiones interrumpidas, conexiones a tierra
incorrectas y burnout resistencias y diodos.

Los sistemas integrados

Osciloscopio se utiliza para probar el rpido cambio de seales, sus formas de onda, se desva y cadas en las transiciones.
Analizador lgico medir estados lgicos en muchas conexiones simultneamente. Tiene dos inodes de funcionamiento.
Uno es el modo de mostrar el tiempo en el eje X, y la lgica de estados de la seal de reloj, las seales del bus y otras
seales en el eje Y. Segundo inodo es dar la direccin del bus de datos, y otros estados de seal desde un punto de
activacin para examinar ilegal op-codes, acceso protegido en el espacio de direcciones y otros estados en funcin de una
referencia de la pizarra.
El hielo se utiliza para depurar un sistema de destino sin utilizar el procesador de destino el microcontrolador.
ASIC y SoC hardware del sistema no puede ser probado por instrumentos de laboratorio, como el analizador
de lgica y hielo. t Monitor se utiliza para depurar el software y hardware para el destino dado procesador o
microcontrolador.

Palabras clave y sus definiciones


Sistema host.
se realiza durante un
Hielo
se conecta

El sistema de destino.
: un emulador de microprocesador de meta del circuito, de tal modo que un sistema host
El hielo a travs de un enlace serial para propsitos de depuracin y emular las
distintas versiones de una familia durante la fase de desarrollo de microcontrolador
utiliza
la parte restante
la meta
del circuito.
Una
herramienta
elctricadepara
recoger
a travs de sus mltiples lneas de entrada (por

Registro,
Analyzer

Monitor
Osciloscopio
Simulator

Sistema

: PC o estacin de trabajo u ordenador porttil en el que el desarrollo de una aplicacin

de

ejemplo, 24 o 48) del


Los autobuses, puertos y muchas transacciones de bus (alrededor de 128 o ms) para
mostrar estos en
El monitor (pantalla) para depurar en tiempo real las condiciones de disparo.
Cdigos colocados en el emulador de EPROM o EEROM - o en el sistema de destino
ROM
Para probar y depurar con destino real basado en procesador o microcontrolador
circuito.
Un mbito con una pantalla para mostrar dos tensiones de seal como una funcin de
tiempo. Ella
Muestra analog as como seales digitales como una funcin de tiempo.
El software, que se ejecuta en el host en un potente entorno de interfaces grficas de usuario, ayuda en el sistema

destino i ohohmmetro

Desarrollo simulando el procesador de destino o microcontrolador, perifricos


Los dispositivos y las interfaces de red.
Un sistema que tiene hardware similar al del producto final y en w'hich
El software incorporado tiene que ejecutar.
Un metro para medir el voltaje y la resistencia entre dos puntos de tensin de prueba
Niveles en los rieles de suministro, conexin rota, resistencias y diodos.

Preguntas de repaso

1. Por qu es sistema host utilizado para la mayora de las etapas de desarrollo y de prueba y simulacin ."
2.

Dar ejemplos de hardware dependientes e independientes del hardware de los cdigos.

3.

Qu es un sistema de destino? Cmo funciona el sistema de destino final difiere del sistema integrado?

4.
5.

Qu entendemos por aplicacin de software' o un sistema de destino?

Cul es el soporte de la espalda paquete? Cules son los distintos componentes de un emulador de
destino? Cules son las ventajas 0 utilizando un hielo?

Simulacin y prueba, tcnicas y herramientas de depuracin

6.

Explicar el uso de las siguientes herramientas de hardware: emulador de destino contra el hielo.

7.

Cul es el uso de un simulador en una fase de desarrollo'1

(S. Cmo llamar a una rutina de interrupcin de ayudar a probar un diseo?


9.

Qu es un ensamblador cruzado?

10.

Cul es el modo de tiempo de un analizador lgico? Qu es la suite mo empate en un analizador lgico?

11.

Qu entendemos por un analizador lgico? Cul es el uso de un analizador lgico durante la fase de desarrollo?

12.

Un circuito de LED tambin es una potente herramienta de anlisis. Cmo es eso?

13.

Cules son los usos de un osciloscopio?

14.

Cmo vas a utilizar una tasa de bits medidor para medir el rendimiento de un sistema de tiempo real?

15.

Por qu las instrucciones de E/S depender de la plataforma? Definir el rendimiento de un sistema de E/S.

Ejercicios de prctica
16.
17.
18.
19.

20.

Que son los simuladores popular utilizado?


Prepare una lista de los emuladores disponibles para varios sistemas de microprocesadores, microcontroladores y DSPs.
Explicar con un ejemplo del uso de cada uno de los siguientes: capacidad de depuracin, el dispositivo de simulacin,
simulacin de red y la interfaz de usuario.
Explicar con un ejemplo del uso de cada una de las siguientes herramientas de software: profiler alcance, uso de
memoria, el estetoscopio de mbito y alcance para el seguimiento del programa Cmo. Margen para asignaciones de
memoria y usos y alcance de la cobertura de cdigo.
Herramientas de creacin de prototipos de lista popular wilh RTOS.

Apndice 1:
Cargar mapa para varios
Estudios lourse

ned profesores y diseadores de planes de estudios son los mejores jueces. A partir de la experiencia
de autor mueren, mueren dnia;> se muestra en la siguiente figura se pueden adaptar a las distintas
disciplinas de la UG, PG y fessional cursos de capacitacin.
Li

Plan sugerido para diversas disciplinas de


UG, PG y cursos de formacin profesional

Apndice 2:
Bibliografa selecta

A. Libros impresos
1. Graham Phillips. Bill Pierce y John Hardin.

"El diseo del dispositivo de Linux: Una Gua Prctica

En ciernes Appliances Linux". BS Starch Press. 2007.

2. Grzegorz Ro/.entxa'g. y Frits Vaandrager (Eds.) "Conferencias sobre sistemas integrados: Unin
Foro Educativo Escuela

en sistemas embebidos. VeUlhoven". Springer. En noviembre de 2006.

Michael Prohibicin y Anthony Massa. "Programacin de Sistemas integrados: con C y GNU


Herramientas de desarrollo". 2 edicin. O.Reilly, octubre de 2006.

4, Nicolas Carter, y Raj Kamal (adopcin autor). "Arquitectura de Computadores". Serie Schatim
I Edicin de TMI. Mav. 2006.
5, Peter Marwedcl. ''.Embedded System Design" - Springer Yerlug. Nueva York 2006.
6, Kaghavun P.. Amo! Lad. y Sriram Neclakandan. "embedded Linux y diseo del sistema
Ih-vctopmcnr. Auerbach Puhlieations. Taylor and Francis. En diciembre del 2006.
1.
Brmio Biioyssounou.se y Joseph Silakis. "EmbeddedSystems Diseo: el artista Roadmap
Para la investigacin y el desarrollo". Springer. 2006.
S. Tammy Nocrganrd. "Arquitectura de Sistemas Integrados: Una gua completa para ingenieros
Y programadores", Newncs. Mantequilla vala Heinemann. Newton. Massachusetts, EE.UU. 2006.

Y.

Kamal Raj. "Microcontroladores- Arquitectura. La programacin. Interconexin anil el diseo del sistema
Pearson Education. Singapur. 2005.
!0. .falta Ganssle (Ed.). "El Einnmire Hamlin tinta". Newncs. Mantequilla vala Heinemann. Newlon.
Misa. Ee.Uu.. 2004.
11. Jack Ganssle y Michael Ban". "Los sistemas integrados diccionario". Libros de CMP. 2005.
12. Prasad K. V. K.. ''incrustado: Conceptos de sistemas de Tiempo Real. Diseo y ISnyiwtiiiiiny -

".

Referencia final Dreamtech vie". 2005.

15. Douglas Boling CE.NET'. "Programacin de Microsoft Windows Microsoft. Ee.Uu.. 2005.
14. John Catsoulis. "Diseo de hardware incorporado". 2 edicin. O'Reilly. 2003.
15. Prasad K. V. K. K.. Vikas Gupta. Avinash Dass. Ankur Verma. ''la programacin para Sistemas
Embebidos-craqueo de la CADE". Wiley. Nueva Delhi. 2002.

16. Jonathan W. Valvano. "Embedded sistemas de microcomputadoras- Interconexin en tiempo real". Thomson.
Brooks/Cole. 2002.
17. Stephen Palmer y John Felsing. "Una gua prctica para el Desarrollo Feature-Driven". Prentice Hall, 2002.
18. Stuart R. Bola. Microprocesador incorporado sistemas: diseo del mundo real. Mantequilla vala Heinemann. Newton.
Massachusetts Estados Unidos, 1996. (2 edicin, mayo de 2002).
19. Phillip A. Laplante. Anlisis y Diseo de sistemas de tiempo real: un ingeniero's Handbook, 2 edicin. IEE Press, USA, 1997
(Prentice Hall, de la India, tercera reimpresin de India. De abril. 2002).

664

Los sistemas integrados

-0. Kamal Raj. Internet y tecnologas Web, tala, McGraw-Hill, 2002.


- I.

22.
23.
24.
25.
26.
27.
28.
29.

Bob Zeidmun. El diseo con FPOAs y CPLDs, libros de CMP. Slpi 2002.
Dcmuth B. y D. Eisenreich, disear dispositivos de Internet incorporado. Builerworlh Heinernann. De julio de 2002.
Al Williams, Embedded Internet Diseo, McGraw Hill, julio de 2002.
Miro Saniek. StateCharts prcticos en C/C++ de programacin cuntico para sistemas integrados. Libros de CMP, julio de 2002.
Tim Jones M" TCP/IP protocolos de Capa de Aplicaciones para Sistemas Embebidos. Charles River Media, junio de 2002.
Tamiz Healh, Embedded System Design: diseo del mundo real, Butterworth Heinernann. Newton. Massachusetts EE.UU., mayo de 2002.
Michael J. Pont, Embedded C, Addison Wesley, abril de 2002.
Lewis D" Fundamentos de Software incrustado: Donde C y asamblea, Prenlice Hall, febrero de 2002.
Dreamteeh equipo Software. Programacin de Sistemas Embebidos-craqueo el cdigo, mentes hambrientas, Abril

2002.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.

Craig Hollabaugh Embedded Linux, hardware y software, Addison Wesley. De marzo de 2002.
Macii, Benini y Poncino, modernas tecnologas de diseo para sistemas embebidos de baja energa, Kluwer Academic Publishers. De marzo de 2002.
George Pajari. Los controladores de dispositivos UNIX, Pearson Education. Reimpresin de India, 2002.

Ed Sutler. Firmware del sistema integrado Demystified (con CD), libros de CMP, Febrero 2002.
Frank Vahid y Tony Givargis, Sistema integrado de hardware/ software unificado Introduccin. John Wiley and Sons. Inc. 2002.
Steve B. Farber. Sistema brazo-ONU-arquitectura de chip, 2"J Edition. Addison Wesley & Benjamin Cummings, 2002.
Wayne Wolf, moderno VLSI: Sistema de diseo de Chip Pearson, 31 de enero de 2002.
Jim Ledin. Ingeniera de simulacin- Construir nica Sistemas Integrados sujetan el CMP Libros. De agosto de 2001.
Todd D. Morton. Microcontroladores incrustados, Prentice Hall, Nueva Jersey, EE.UU 2001.
Adam Drozdek. Algoritmos y estructuras de datos en C++. Brooks/Colc Thomson Learning. 2001.
Joseph Lemieux. Programacin en el entorno X'DOSEKA. Libros de CMP. De octubre de 2001.
Thomas D. Burdand Robert W. Brodersen, eficiencia de energa diseo de microprocesador de Kluwer Academic Publishers. De octubre de 2001.

42. Eric Giguere. Java 2 Micro Edition-Tile Gua definitiva para la programacin de dispositivos de bolsillo y Emltedded. John
Wiley. Ee.Uu.. Canad 2000.
43. John Uffenbeck . La familia 80x80. 3,J Ed.. Pearson Education India. 2002.
Ali Mazidi M. y J.G. Mazidi. El microcontrolador 8051 y sistemas Emltedded. Pearson Education. 2000,
44. Primera Reimpresin de India. 2002.
Jeremy Bentham. TCP/IP Leon Welt servidores para sistemas integrados. Libros de CMP. Ee.Uu. de 2000. (Tambin 2ml Edition
45. 2002).
Sundrajan Sriram. y S. Bhutlacharya Survra. Embedded multiprocesadores - Programacin y sincronizacin,
46. Marcel Dekker. Inc.. NewYork. Ee.Uu. de 2000.
Kamal Raj. Los conceptos y caractersticas de MicracantwUers (68HC/I. 8051 y 8096) -Incluye Programmab/e
47. Controladores lgicos, S. Chand & Co. (originalmente Wheeler Pubs.), Nueva Delhi. 2000.
Gary Nutt, sistemas operativos una perspectiva moderna, Addison Wesley Longman. Inc.. Ee.Uu.. 2000 (Pearson
48. La educacin Asia Singapur, India reimpresin 2000).
Steve White, Procesamiento de Seal Digital, Thomson Learning - Delmar. 2000 (primera reimpresin de India. Vikas Publishing
49. House, 2002).
Filip Thoen y Francky Catthoor, modelado, la verificacin y la exploracin de la simultaneidad en Task-Level reales -50. Sistemas embebidos de tiempo Kluwer Academic Publishers, 2000.
Sommerville, Ingeniera de Software, Addison Wesley. Lectura, MA, USA, 2000.
51. Rainer Laeupers, Tcnicas de optimizacin de cdigo para procesadores integrados: mtodos, algoritmos herramienta diva va
52. Kluwer Academic Publishers, octubre de 2000.
William A. Commwiications Shay, comprensin de datos y redes, 2 edicin, Thomson I .ganar - Brotiks/
53. Cole, 1999 (primera reimpresin, hind Vikas Publishing House, 2001).

Apndice 2: Bibliografa selecta


54. Randall S. Janka. Metodologa de diseo y especificacin de sistemas embebidos en tiempo real ahora.

C'MP Libros. En noviembre de 2001.


55. Desplcese Rixncr. Arquitectura de procesador de secuencia de Kluwer Academic Publishers, noviembre de 2001.
56. Tim Wilmshursi. Una introduccin en el diseo de pequeas Seale Sistemas Embebidos - con ejemplos de PIC. 8051. y microcontroladores 68HC05/08.
Palgrave. Gran Bretaa. 2001.

57.
58.
59.
60.
61.

Pfleeger S. L.. Teora y Prctica de la ingeniera de software. Pearson Education. USA Singapur. Reimpresin de la India de 2001.
Rogers S. Pressman. Ingeniera de Software. 20'1' Edition. McGraw-Hill, 2001.
Arnold S. Berger. Diseo de sistemas incorporados y una introduccin a los procesos. Tonis y tcnicas. Libros de CMP, noviembre de 2001.
Kirk Zurell. Lejos de programacin C Sistemas Integrados, libros de CMP. Febrero de 2002.
Wayne Wolf. Ordenadores componentes estadounidenses-principios de diseo de sistemas informticos integrados. Academic Press (una empresa Hareourt
Ciencia y Tecnologa), USA, 2001.

62. Jack Cansslc. "El diseo de sistemas integrados" (Serie de EDN para ingenieros de diseo), N'ewnes. Mantequilla Heinernann- vale la pena. Newton.
Massachusetts Estados Unidos, 2000.

63. Jane W.S. Liu. Sistemas de Tiempo Real. Pearson Education, 2000 (primer indio reimpresin 2001).
64. Joseph L. Weber. Utilizando la plataforma Java1112, Que Corporation, reimprimir por Premice Hall de la India. Nueva Delhi. Mayo

2000.
65. Jack W. Crenshaw. Kit de herramientas matemticas para Progruuuning en tiempo real. Libros de CMP, agosto de 2000.
66. David E. Simon. Una imprimacin de software embebido, Addison Wesley Longman. Inc., EE.UU. Pearson Education (Asia) Singapur. Ee.Uu. 1999 (reimpresin
de la India, 2000).

67.
68.
69.
70.

Barry Kauler. Diseo de arado para sistemas integrados -un simple unificado metodologa orientada a objetos. Libros de CMP, Febrero'1999.
Franz J. Rummig (Ed.). Sistemas Embebidos distribuidas y paralelas. Kluwer Academic Publishers. Pases Bajos. 1999.
Alessandro Rubini. Los controladores de dispositivos de Linux. O'Reilly. Ee.Uu.. De junio de 1999.
Ltiis Miguel Silveira. Srinivas Dcvadas. Ricardo A. Reis. VLSI: sistemas sobre chip. Kluwer Academic Publishers. De
diciembre de 1999.

71.
72.
73.
74.
75.
76.

John Hvdc. Diseo USII por ejemplo. John Wiley & Sons. Inc.. Nueva York. 1999.
Jean J. 'Labrossc. Bloques de construccin de sistemas integrados. 2"d Edition. Libros de CMP. De diciembre de 1999.
G. Jack Ganssle. El arte de la programacin de sistemas integrados. Buttcr-worlh Heinernann. Newton. Massachusetts. Ee.Uu.. 1999.
Michael Barr. Sistemas integrados de programacin en C y C++. O'Reilly. Ee.Uu. Agosto 1999 Reimpreso Shroff Pubs. India La reimpresin de agosto de 1999.
Myke Predko. Programacin y personalizacin de morir microcontrolador 8051. McGraw-Hill. 1999. Tercer Rcprinl Tala McGraw-Hill. 2002.
Jean J. Labrossc. MiemC/OS-ll el kernel en tiempo real. R&D, una editorial de libros de Miller Freeman. Inc. Lawrence. KS 66046. Ee.Uu.. 1999. (Tambin 2ml en
la edicin 2002 del CMP Libros).
77. Bruce Powcl Douglass. Desarrollar sistemas eficientes de UML en tiempo real objetos lejos los sistemas integrados. Addison Wesley Object Technology Scries.
1998.

78. Calcutt M.C.. F.J. Cowan, y G.H.Parchizadeh. Microcontroladores 8051-Hardware. Software y aplicaciones. Arnold (y tambin por John
Wiley). 1998.
79. Rick Grehan. Robert Moote y Ingo Cyliax, una gua de programacin en tiempo real a 52 bits de desarrollo integrado. Addison Wesley.
1998.
80. John A. Stankovic, Marco, Krithi Ramamritham Spuri y Giorgio C. Buttazzo, plazo hasta la programacin de sistemas de Tiempo RealFED y algoritmos relacionados. Kluwer Academic Publishers, Pases Bajos, 18 de octubre de 1998.

81. Stuart R. Bola, depuracin


82.

de sistemas de microprocesadores integrados,


mantequilla vala Heinernann, Newton, Massachusetts, EE.UU., 1998.
Niall Murphy, panel frontal de diseo de software integrado para la interfaz de usuario, libros de CMP, junio de

1998.
83. M.Costanzo, Controladores Lgicos Programables los equipos industriales, Arnold (y tambin John Wiley) de 1997.
84. Cady F. M., Ingeniera de Software y Hardware Motorola M68HCII, Oxford University Press, 1997.

Los sistemas integrados

85.

Cadv F. M.. Y

86.

Balarin F.. M. Clindo. A. Jurecska. H. Hsieh, A. L., C. Paasscrone Lavagno. A. F.- Vinccntelli Sangiovanni. E.
Sentovich. K. Suzuki, y B. Tabbara. Co-Design Hardware-Software de sistemas integrados: UN ENFOQUE
Palis Norwell, MA. Kluwer Academic Publishers, junio de 1997.
John Forrest Brown. Programacin de Sistemas embebidos en C y en general. Van Nostrand.
Rcinhold. Nueva York. Ee.Uu.. 1996.
Peter Spasov. La tecnologa de microcontrolador- 6HHCII, 2 edicin. Prentice Hall. Englewood Cliffs. NJ.
1996.
Fred Halsall. La comunicacin de datos. Las redes informticas y de los sistemas abiertos, 4LH Edition. Pearson
Education. 1996 (cuarta reimpresin de India, 2001).
Silberschatz y P.B.Galvin. Sistemas operativos, Addison Wesley, Lectura, MA. Ee.Uu.. 1996.
Peter Marwedel. y Gerl Gossens. La generacin de cdigo para procesadores integrados. Kluwer Academic
Publishers. De junio. 1995.
Daniel Tabak. Microprocesadores avanzados. McGraw-Hill, EE.UU. de 1995.
Gajski. Daniel D.. Frank Vahid. Sanjiv Narayan y Jie Gong. Las especificaciones y el diseo de sistemas
integrados. Englewood Cliffs. NJ. Prentice me calma. 1994.
Franklin G. F. J. D. Powell y A. Emami-Naeini, el control de la regeneracin de los sistemas dinmicos. 3,d Ed..
Addison Wesley. La lectura. MA. Ee.Uu., 1994.
J. W. Stewart. El microcontrolador Sou-Hardware, Software e interfaces. Prentice Hali. 1993.
Walter J. Grantham y Thomas L. Vincent. Sistemas modernos de control de Anlisis y Diseo. John Wiley, 1993.
K. J. Himz y Daniel Tabak. Microcontroladores de arquitectura. La ejecucin y la programacin. McGraw-Hill. 1992.
G. Jack Ganssle. El arte de la Programacin Acadmica de sistemas incrustados USA.

87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.

microordenadores Mictocoinrollers-principios de ingeniera de software


y hardware. La Oxford University Press. Nueva York. 195)7.

1992.
99. Greenfield G. D.. El microcontrolador tiSHCll. Saunders College Publishing. 1991.
100. J. B. Peatman. Diseo con microcontroladores y microordenadores. McGraw-Hill.

1988.
B.

" SITIO
"

1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.

"

WEB

"

'

Htip://www.dspvil-lage.li.com |PARA PROCESADOR DSP de Texas Instruments. Seccin 1.2.4. 2.3.6|.


http://vvww.meuiorg.com/scamless |Para la seccin l.6|.
http://www.li.eom/sc/docs/asic/modules/arm7.htm Y ARM9.htm |para la seccin 2.3.31.
http://wvvw.arm.coin [Seccin 2.3.3. Para procesadores ARM!.
http://u U vv.ti.El coni/sc7docs/[)slieets7abs(racl/apps/.vpra63<Sa.htm |para la seccin 2.3,6],
http://www.eeinhc.org |Para la evaluacin comparativa de los resultados de sistemas integrados. Secciones 2.6
y I3.5.3|.
Http:// productos/ vvvvw.java.sun.com/ javacard |para la seccin 5.7.51.
http://www.vvehopedia.eom/TERM/N/operating_system.htni |Para la seccin 8.I|.
http://www.vvrs.com (Para la seccin 9.31.
/Avvvw htlp.osek vd.voig |para la seccin l j j.
H!tp.7/wvvw.linux,\doc.org |para la seccin I0.3|.
http://www.cs.ucr.edu/esd [Para Computer Sciences Embedded System Design website de la
Universidad de California, Riverside, Seccin 13.68.
http://www.ee.sumy.ac.Uk/Penonal/R.YoungfjaYa/html/cruise.hind [Para la seccin ll.3|.
Http:/Avww.borg.com/~jglatt/tutr/miditutr.htm [tutorial sobre MIDI, Seccin I2.l|.
15.http.7/www.xtec.es/rtee/eng/tutoria!/midi.htin [para la interfaz MIDI. Seccin 12.11.
http://www.misra.org.uk [Para la seccin 12.2 y directrices para el uso del vehculo basada en lenguaje
C - Software de Misra (Motor Industry Association) confiabilidad de software].
http://www.research.ibm.com/securesystems/scard.htm (seccin 12.4).
http://www.home.hkstar.com/~alanchan/papers/smartCardSecurity/ [Para], seccin 12.4

Apndice 2: Bibliografa selecta

! 667

19. http://www.e-insilc.iKM/cclmug/ |F<ir de suscribirse a un sistema integrado popular revista!.


20. http://wwvv.EETA.sia.com |Eor suscribirse a un sistema integrado popular revista!.
21. http://www.eet.com/cnihcdsub (Para suscribirse a un sistema integrado popular revista!.
22. Http:// www.emhcddcd-aMnpLiling.com/cletter |Para suscribirse a un sistema de computacin
integrado popular revista!.
23. http://www.goembedded.com |Un sistema integrado popular sitio],
24. http://www.www.webopedia.com [Una popular enciclopedia utilizada en todo el mundo en el sitio
web para aclarar los trminos clave en diversos temas!.

C. Impreso en papel de diario referencias


1. Huan
Li,
Krithi
Ramamritham,
Roderic
A.
Grupenand
PrashantShenoy,
John
D.
Sweeney,"ResourceManagement para tareas en tiempo real RoboticsJournal mvil del Software y los
sistemas. 80(7), 962-971, 2006.
2. G. R. Gaud, N. Sharma. K. S. Malewar Ramamritham, "eficiente soporte en tiempo real para aplicaciones de
automocin: un estudio de caso", proc. de 12lh Conferencia internacional IEEE sobre informtica en tiempo
real de sistemas integrados y aplicaciones" de 2006.
3. Y Kvascr Lars-Berno, Fredriksson. "CAN para automocin incorporados crticos redes IEEE Micro". 22(4). 28-35,
2002.
4. Wayne Wolf, Burak 0/.cr y Tiehan Lu, "cmaras inteligentes como Svxtems incrustado". IEEE Micro. 22(5), 4855.

2002.
5.

Jean-Louis bidet. "Explorando Hardw son/ Softw son co-diseo nidi vrtice-!/ Era ERG como fXccll" oficial, pgs.
24-29, cuestin de verano. 2002.
6. Liang y Huei Chi-Ying Peng. "un ptimo control de crucero adaptable con garanta de estabilidad de
cadena * Diario la dinmica del sistema del vehculo. 31, pp. 313-330. 1999.
7. Tadao Murata. "Tetri redes. Propiedades. Anlisis y aplicaciones". Proc. IEEE. 77(4). 541-580). 1989.

! - ! 394b) es
un puerto de 165 i
140 !:"> 63 "sobre 140
o . es un bus 163 .
r.ivksuml6 552
0 MboxAccept
43S
;s\!buxCreaie
437
.MiioxFcnil
438
>v\!eniC.~eaic sMcniGel
424,425 424,425- QLexuberantes 446,447
sQPend MsgPointer
446,447 447

OS
hasta 138.226

8
7'. 16F870 32
1 ;(
8 '05/08
4
12.145.157.201.
;O5. 207. 217. 223.
224 : 1- II 74. 75.77,
117 e n f e r m o s v a
a RTC 2 2 7 ! ' \ x 1 ! 8
T i r i l x x . HC12xx.
I II ' I6xx 32 ( ! ( 4 2
12. 117
I K '1 6 1 1 7
32 ifC xxx 0.3
4 5 5 1 9 6 117.
145
2.11 WLAN 151 2.1 La a
802
178
2,11b 178
51 63,64.65,66,67,69
70,71,72, 77, 1)7, 204, 205,
206, 209,217 51 2 145 51 32
MX 8051

Una cola circular de CMOS 328


10 un CODEC 9 una seccin
crtica 214 proceso de diseo
37 free running counter 227
funcin variable global 311
258 una tabla hash 247 un
teclado 79 625 un vinculador
un archivo de lista que 624
una lista es una estructura de
datos 249 un localizador
programa 111
Tnobilehone 355. 375.
Dispositivo de telefona mvil
380 377 un controlador PCI
168 un ducto de 87 Cola para
446 reloj de tiempo real 18
bus serie 160 serie 160 serie
159 bus IO temporizador
software 18 Una tarea 309 una
tarea 310 un temporizador
cum contador 153 una pantalla
tctil 380

Un temporizador watchdog
158
Un protocolo inalmbrico
160
A/D 217
A0-A7 75
Clase abstracta .593
Clase 297
La abstraccin 37,38
El CAC 574,575,576,577,
578.579,580,581,582,
583, 584, 585,586
Tareas 585
Accelerator 9. 35
Aceptar 338
Funcin 491
Clase activa 297
Objeto 297
ActiveSync 176
ACVM " 43. 193. 274. 275.
276. 277. 278. 283
308. 312. 315.321.
373.374.388,512. 513.
514. 515. 516. 518. 519.
519.520
Hardware ACVM
Arquitectura 517
ADO. ADI 75
AD0-AD7 68
Control adaptable de 580.
582
Control de crucero 579
15.16.48.82.83 ADC
531.532,533.536, 637
ADC. DAC 49
Aadir nmero 607
Bus de direccin de 72, 73,
84
Resolucin 627
ADFG 278
576
ADV 73
AHB 90
Airbag 575
Las seales de alarma

ndice

ALE 68, 73 Alineacin de


asignacin de 101 378, 424 ALU
7.18,34,84,85 AMBA 90, 169 AHB
169 166 APB, 169, 170 305
conversiones de analgico a digital
objeto annimo 296, 298 AOU 84,
87 APEG 292,293 aperidico tareas
API 401 385 267, 353. Applet
Aplicacin 480 268 28 29
Procesador Instruction-Set
especfico (como 6
Sistema especfico del
procesador (ASSP) 6 arquitectura
argumentos 40, 63 256 y la Unidad
lgica aritmtica (ALU) 5
instrucciones aritmticas brazo 65
91 8.32.36.89.90.93, 101.
102, 114. 623.636.641 205.410,
la familia ARM Cortex-M3. Atmel 9
BRAZO. 68HCxxx. 80x86 BRAZO 7
11 93
91,202 ARM7. 205. 209. 212, 213.
217
ARM9INI 92 245.246 de matriz
(vector unidimensional) 250
ARS 84. Del 85 al 73 como mutex
426
40 orientada a objetos segn
los requisitos de cada usuario 37
ASCII 373, 608, 639 del cdigo
ASCII 146 cdigos ASCII 149 ASIC
31 ASICs ASIP
33,49,51,573,635,636 30,31,652 .
Ensamblador 20,21,25,27.621,

622, 624

El lenguaje ensamblador 21,25

I 669
Lenguaje de programacin
usando lenguaje 235 20 650
Assert ASSP 36. 37
365 asincrnica. 366. 381 10 366
Serie 132 Serie 130 Serie de
entrada salida atmica 132 327
La operacin 257. 326 276
119 automtica de atributos
Mquina expendedora de
chocolate (574 automviles
43,299 ACVM)

B
La banca 28
Baudio o control de la tasa de
bits por segundo de
velocidad de 154 132 137.
138. Tarifas 140 141
494 CCO. 583. 584. 586
266 camas
Antes de la 108
Comportamiento 276
BG 80
BG0 82
BGI 81
Big Endian binario 102 315
Semforo I 463 funcin
Bind 491 Manipulacin de bits
65 Medidor de velocidad de
transferencia de 655 91 84.85
BIU Biind contando
Sincronizacin del bloque
controlador 152 229 223 365 420
de bloqueo del sistema de
archivos Bluetooth 48,
Mb-, 143, 175, 177, 178,
569,

574,576
570,572,57.1,
Bootps 49 171

Botlom a lop diseo si 38 Enfoque dcsign 236 bfer


enlazado 325.326 BR 81.82
Rama de la cach de destino
BSD 86 ?i(S BT 84 Cache buffers
321.331 quema 632 el autobs
14, 15
Arbitraje controlador
80.81,82 81 master
solicitud 80.82 81
peticiones 80 ancho 84
ocupado aullad loop 396
Botn cdigos de bytes
488.493 266
manipulacin 65 orden
641

C
C 237. 238. 239. 242. 250. 252.
256. 264
Idioma El Programa
22 o C++ 236 Programa
23 C/C++ C++" 264 263.
264. Cach 383 13
Deshabilitar
instrucciones cachs 42
12. Llame 103 190. 191.
193 denominada wireless
178 cmara 49. 537
puede 161. Bus 164 162
es 163
Registrar tarjeta de captura 153
596" 597 capturas 195
48 CCD. 49. 194. 531, 532. 533.
535. 567
Preprocesador
CCDDSP 534 48

CCDP 535
dispositivo

49 CCDSP CDC 267

ndice

FC. 280 624 479


illenges editor ular 41 r
229 conductor
aracterislics irge 223 4
47 10 La bomba del
circuito de la bomba 45
ecksum 32. 174, 548 nit
glitch 384 cular 639 cola
SC 242,245 62.88.98 ss
263. 265, 266, 268,
276. 295,296, 297, 516, 539,
570,571.572. Diagrama 608
298.299,515,516, 533. 534, 538, 539.
570, 580, 582. 593. 608 622 540
tareas de herencia. 609 es.ses
262.267.517.570 issil assilication 52'y
52 incrustado .cc 267. 268 >ck 10. 84
frecuencia 6. 7 Circuito oscilador 10
Reduccin de la tasa de uso 41 340.
364. 365. 554 seo ( ) 343 perder 492
MB 579 MOSs toma 36 o 640 )de 19
Registro de segmento (CS)
11, 85
ODEC 10. 305. 532,535. 634 Adiseo de diagrama ollaboration
odeTest 634 654 298 575 Freno de
mitigacin ttllission :OM
48,49,136,138.221 !OM puerto 137
10M1 78 :OM2 77, 226, 610, 605
comandos tecla Comando 604, 611,
612

Compare registrar 152


compara 637 compilador
compile 651 27.
Descomposicin en
piezas 621.622 48!).
28 redes de computadoras mviles y
equipos de procesamiento 479 procesos
concurrentes 275 23 programa de
mecanizado 276 procesar
concurrentemente 299 estado 252
sentencias condicionales 254 Condiciones
Conductor 251 diagrama de clase 571
archivos de configuracin 239 494 340
funcin de conformidad conectar 492 342
sin conexi n protocolo orientado a la
conexin 342 Limitaciones 5 sin contacto
593 211 212 contexto de contexto.
305. 306. 310. 311312.313. 314, 315.
355. 372. 388. 390. 391.
394. 395. 386. 638 a 213
Contacto 244. 305.310. 311.327,
390. 396
Cambiar 211.212.213,309.
355. 381
217 Control de
ahorro ~4S9
Red de rea 576 Bus 72,73,84
registrar 78. 640 controller 80,82.83. 143
y 169 controles 492
Los programadores de programacin
cooperativa 392 385. 386 Core2 88
CORTEX-M3 de 32 COS 357
Contador 152
Semforo 321,325, 331, 426, 434,
463, 467 de la cobertura. 654.

CPCI 167 CP.SR 212.213 CPU


carga.310 7,34.307 642 ciclos de
mquina 11 registrarse
305,306,311,313 CRC 163, 164,
175. 179 CRC32 Crear 548.562
338 crticas 330, 396
Seccin 214, 318,328, 329, 395, 398.
397,465,467, 650 compilador cruzado
487,495 649
Ensamblador compilador
27,621,624,625 621, 625 CS 88
Tecla de cursor CSWT 248.249
604,605, 610, 612 orden cclico en
una programacin 258 386

D
D0-D7 68. 75 DAC
15.16.48.82.83 encadenamiento
80.81 DAS Datos 576.583 241
Sistemas de adquisicin 118. 119
siendo 101 640 Bus buffer cache
72.73.84 84:86 Registro de direccin
145, 375 262 de encapsulamiento
cmo 275
Grfico de flujo (SDFG) 281
memoria Registro 68.74 78
Estructura de transferencia
246,247,248 243.244,65, 91 instrucciones
de transferencia 64 declaraciones del tipo
236 tipo 266. 641 137 DCE 342,541
datagrama DCT 535 (1DCT) 33 DCTs
49,533,535

ndice

DDRO 141
Plazo estancamiento 392,216
215.262,329. 330 de-allocalion
372, 424 651 de depuracin
Depurador depuracin 650.659
627, 595, 622. 652
herramientas 26.40 Declarar
525 decodificador 69 motor de
descifrado 9 Definicin 3
Demora zitters 643 eliminar
245 246 supresiones
demultiplexers eliminacin 247
14. 53, 74 De-Registering 498
DES 595 Diseo 5
Metrics 38,39.513.532.570, 578.
594. Proceso 607 37, 38, 41 etapas 40
Dispositivo de 370, 408, 489
direccin 78 77.631
direcciones de
administracin del bfer
de 362 639 639 datos de
control
Conductor 23.83.199.200.223.
224. 235. 256. 409. 498. 652
Conductor ISR 221.363 drivers 2II.
222. 220. 223. 227.
228. 354, 372. 408. 480.
Gestin 497 24. 354. Administrador
de 361.363 25. Programador 364
21. 627. 630. 632. 633. 631
Optimizacin de software 410 639
306 direcciones de bfer de estado
controlador controlador de 195,382
mdulos controladores 496 195 640 DFG
sensible 277, 278,279, 282 DFGs
275,280 171 DHCP

Dhrystone para 6. 642


DL 207 194 digital
Cmara 9,48. 94, 120. 279. 531
532.533,534. 536. La arquitectura de
hardware de la cmara 631 535 de la
Cmara de arquitectura de software
procesador de seal (DSP) de 32. 96
50 memoria de acceso directo a
memoria 73 memory access controller
51 director robot 389 deshabilitar las
interrupciones 32S deshabilitar 329
Transformacin de coseno discreta
(DCT) 9 tabla de envo 306 mostrar
co-procesador dissembler 533 DISR
370 624
Sistemas embebidos distribuidos 160
divisin por cero 210 DLL 484 DLLs
480 DMA 99. Chip 218.327 8237 167
218 el controlador DMAC 219 DPC
260 DRAM 109
La DRAM. EDO RAM. SDRAM 109
driver (>39
DSP 32. 33.35.50. 93.96. 104.
535. 635. 636. 637.
DSPs DSSS 36.95.577 152. 179 Dual
Core 33. 88
Ncleo 35. Enlace
dinmico 289 360 360 501
memoria de la memoria de
datos del modelo de
programacin Programacin
400 290

E
E_SMS 609,612
E2PROM 12

Cada fotograma 175


427.428.429,437,438,439 ECO.
446. 447. 448. 46.3.467. 469. 470
118 ECG FED 385.398 edicin 651
Edicin 622 Editor 25, 621, 622 Editartest-debug 620 EDN 642 EDO RAM
108 EEPROM 13,110.597 El 207 168
EISA
Hardware incorporado 45 267
procesador Java 5. 34 19 Software de
sistema 3. 4, 5, 5 sistemas de hardware del
sistema 28 emption 381. 394 scheduler
preventivo 375. 496 620.623 emulador.
650,656,657. 658
Encoder 147 motor de cifrado 9
costo de Ingeniera 39 software
26
EPROM 106. 107. Ethernet
633.634 175. Adaptador Ethernet
190, GPS 143 284 eventos.
Control 369.612 356 bloques de
control */ 440 Grupo de bandera
412 Funciones 358. 487 427 359
registro OSScmCreate
Controlan el flujo del programa
Bandera 282 359
Eventos
368.494,513.539,570,606
Ejemplos de 27

Excepcin 192. 195, ! 97. 202, 211,


266
Handler 203 manejo de seales 486
handler Excepcional manejo 195 264

ndice

672
Funciones luindling epiion-460.
Opciones 2()l. 20-1. 333
Culion CAL 401
455 ecting
:rnal interrumpir 72
Pasadores de interrupcin 6.1.
Mem.>r> 68

.clave catinico 46 160


'14
S F.T 471
O 152.178
276
) 214,215.244,245.246.247.
121,445. 456.467. 470.
501. 502,501.505
.'golpe 412
>- 504
2 T. 2 :2. 221. 481 v-oripi ir. Id
106. 165. 471 uunagcjnent 154
.>'lomo 47. .164.165. 496. Filtro de
respuesta de impulso 595 281 209
278. 279. 280
\ UC 165
.. 'el servicio de
interrupcin mina 199
: programador piiurily 502 .No hay
programacin 199
12. II. 20.~I20. 121. 627.
6.1
2 i 45
!

. n lorv 19.47.51. 107. 194,625 K


198. 169
Tg 7 unidades de procesamiento de
Punto 4 115 44.86.99
237. 252
"compresin EG 49 AM y ROM 101
oC 90
Arquitectura de harvard tper solo ..'95
lf' e inversin de prioridad 330 2) 497
Alization del diseo del sistema 42

Foundation Classes son GUI 264 FPGA


FPGA 11.74,75 614
Free Running contador frecuencias
151.159 151 FRS 84, 86,99 FSM 281.
Tabla de estado de 288.296 285,286, 285
171 FTP
Full Duplex de 111, 111, 140, 142, 240,
239 funcin. 256, 257, 258, 294,312,
313,314 259,260,261.262,
Argumento de funcin de Llamadas 257
258 259 colas colas punteros 262 260.
261 funciones 238, 241, 263, 531, 257
llamadas

G
GAL 74,75 juego 479- de propsito
general
Microprocesador
Procesador de uso 35 6. 86
variables globales 217 colacircuito 74 Meta 351 de pruebas
42 GPP 7 GPS 576
Acelerador grfico 10 9 procesador de
grficos GUI 254.408.497.51.1.511
notificacin GUI GUI2 571 305.410.
606. 624

Hardware 5. 313. 518.


Arquitectura de componentes
541 534 52 temporizador
interno 156 interrumpir la
programacin 192.200.201
290 software comercio
petrolero Harvard 634 629
La arquitectura 89. 103 630
242 memoria tabic hash. 248
HDLC encabezado UDP 138 237 =
552 238 482 pesos pesados
archivos montn 307 400 627
archivo hex heurstica Intel 632 SRecoed Archivo 632 liicrarchicui
RTOS de alta definicin 378 33 22
nivel de idioma 106 procesadores
de rendimiento rendimiento
rendimiento de procesador 84 104
Velocidad de Serie 569 Nivel de
idioma
Programacin 236. 2.17
Programa de nivel 237 621 host.
6*24. 625. 649. 650 176 291
HSDFGs HotSync HSDPA 96
HSTL HTTP 150 171. 172. 173
534 Huffman codificacin
Huffman 533.515

Yo

La mitad 142
Duplex 131, 133. 140 ASA,
482,483,484,485,486,493
496
Handshaking 145 a mano seal agitacin
144, 225 en tiempo real duro 380 381
sistemas de tiempo real.

E/S 619
Dispositivo 629, 639
instrucciones 641 354 264
subsistemas de gestin corriente
365 I2C 162
El bus I2C 66,161,162

ndice

IBM 136. 117. 138.144


ICE 620. 626. 627, 649. 652.656
IDE 40X. 620. 622.623.624
Identidad 276
IE 216
IEE 5X2
IEM 90
Si. Si-clse. else-if 2.17 pxeles de
imagen 14 en DSP. TMS320C64x
DSP 98 enlazador 627 152 Unix
53 Circuit-Emulators
incluyen 238
"directiva prctlHandlcrs.c 218 217
252 infinita. 254. 194 Loop herencia
251.173 276. 277 278 617 lnput
capturas de entrada/salida (I/O)
Subsistema insercin insercin 366
245 246. 247 Inst. Cache 84 campo de
instancia 265 265 Mtodo de cach de
instrucciones 86 cach cach de datos
99 paralelismo a nivel de unidad 86 85
puntero puntero (IP) cola II 86
Paralelismo de nivel 104.
105 instrucciones 91. 101. 385 a 69.
72 INTI 69.72
Desarrollo Integral 26. 27 Intel 636
XScale
628.629
hexagonal 94
Montador Procesador de
comunicacin (IPC) 291 277
interfaz interfaz circuito 68,72 68
RAM interna sistemas habilitados
para Internet 12 170 543 352 La

capa de
interoperabilidad 25.27,621,624
intrprete

Cue r proceso 354


428. 437.439. 445. 449. 455. 459.
La comunicacin 330. 463 modelo
462. 470. 486. 494. 504. 522.
de comunicacin 254. 275 interrumpir
Funciones 636 339
18, 207 208 Hags Handler 18
IPCs 23. 30. 290. 326. 328, 356.
Latencias 215,381.400,401
371.372. 440,469. 472. 484, 495.
La latencia 213.214
541.543. 544, 584,596 IPPkl
212 MSCARA
IPHeaderSelPkt 561 539. 543, 546
Mecanismo 198
IPPktSlream IPVerHdr IPv4 545 174
Pendiente de registro 208
559 IQ 84
Solicitar 145
151 Fuente de infrarrojos IrDA 177
Servicio 496
IrCOMM 51, 175. 176 177 143
Plazo de servicio 215
adaptador de protocolo 152 IRQ 209
Funciones de servicio 461
es 361 168 ISA Bus ISA 167 IsoRutina de servicio de 18, 240, 261.
sincrnica ISR 134 71. 192. 193.
289
194. 195. 197. 198. 199. 200. 201.
Roscas de servicio 373
202. 204. 205. 206. 207. 208. 210.
Mantenimiento (manejo)
213. 214. 215. 216. 217. 218. 220.
Mecanismo 203 145
222. 224. 225. 227. 255. 260. 312.
fuente de seal 200, 208, 209,
111. 314.115. 316. 317. 327. 329.
203 vector Tabla de vectores
366. 367. 368. 370. 372. .173. 394.
funciones de manejo de 205 461
414. 439.448. 454.461.462.
interrupciones 4 en 8051 71 18
498.516.518. 519. 520. 531. 578.
590 intUnlock inlLock manejar el
6(H). Llame al 212 643 262 259
problema de la inversin de 590
colas de latencia T! 208
318 10 Direcciones asignadas
Isr 18, 196. 326. 328. 335. 353.
bus 10 77 76
354. 358. 359. 360. 362, 377.
Byte 66 Dispositivo de
388. 395. 411.494. 515, 640.642
programacin 79. Mapa de
ISR y controladores de dispositivo 23
dispositivos 130.151 109 interfaces de 1ST ISTs 198.369 260. 353.354.377
programacin de 13 bits del puerto 66
puertos 66
Puertos, 10 autobuses, 13
268 stream System 47 asigna
629
IP.555,560 31,174,216.539,
643, 652
La direccin 2. 170, 171
Instruccin 88 Pit 542.
IPC 293,312,316.317,319,331,

332,333,334,335,337.340,
341,342,345,354,373,408,

383 J2ME.

L(ts

Java 236,263,264,265,267,268.
307, 595 2 267

ndice

674
643 2ard 267.268.395
iccelerator incrustadas card
! 10, HI tbjects 268
5ipelnputOuipulStreams 339 :lle ejecucin Java
tcceleraior 94 I 267

G 10, 533. 534 CODEC 49 4 94.


266,267. 268. 595

Tel 307.312.313,330, 353. 354.


Modo 408 352 370 311 de espacio
de pila fimc ice IS 458 'Junta 82 es
17
Pad 17,285.286 -Estado 146. 608 M
267

Controladores de dispositivo 229


497.498 mdulos de kernel internals
228 498 370 LISR lista 242. 250
Funcin Listen 492 Little Endian 102
101 localizador de 21.625,626 de carga
del cargador de 21, 26, 27, 109,
621,622.
627.628,629, 631, 632,
334,396 de bloqueo bloqueo
455 335 Logic 65
Analyzer 622, 624, 655
Instrucciones de sonda 65
653
Instrucciones lgicas 91
look-up 639 tabla de
bsqueda 242 loop back 252
223
Instrucciones de control
66 Loosely coupled 291
Funcionamiento de bajo
voltaje 384 LSTTL LVCMOS
LVTTL 150 145 150

N 175. 176 299


juage disfrutar
214. 643
D 14,17,48.50.143.195.199. 383.
Controlador de 497.513.521.532 50.
148. 149 visualizacin de pantalla o
pantalla tctil 82.83 518 LED y
pantalla tctil 82 D 14. 17 Pruebas de
653 ; 286 ary 22, 23, 236, 264, 381 ary
funciones ciclo ttweight 243,445,456,637 634 :0 307
pidi enumera 641
Cer 20,21,622,627 cregistrar 203, 211,217 .ux
312,332,641 2.6.x 496,499

MAC 96. 176. 178. 179 Mac


OS X 370 Unidad de MAC
33 MAC/Octal mquina 97
19 cdigo 19, 20 o 119
Macro en tiempo real 240,
589, 590, 600 239 macros
Correos 240, 337, 338, 339, 368,
409, 437,438,445. 439, 440,
441,442, 443, 525, 523, 444,449
240,261 funcin principal 237 37 Mapas
Cartografa 631 207 bits de mscara
mscara, 207 18

Master 132 dispositivo maestro


135 MCO-ll 308. 409 MCO-H
RTOS 337 Mealy procesador
multimedia modelo 283 33
mediana escala 52 incrustado.
Memoria 5.1 12. 68. 372. 459. 496.
631.639
Operaciones de E/S asignacin
Address-Mapped 75 359. 378. 371. 412
109 424 bloques de circuitos mapa 69
Gestin 354. 359. 371. 482 .361
manager administrar 360
' mapa 110. 111. 1 1 2 . I ( . v o * . *
630
Oiganizaiion 78. 101 360 stick de
proteccin 13. 50. 120 14 86 de la
unidad de administracin del bfer
asignado MemScope 629 654 357
mensajes. 609
Cuadro puntero
493.568.569.612 cola 599 487. 500. La
sobrecarga del mtodo 572 263 sobrecaballo 263 m 1,35 microarchilecture
FLOPS 642 MFM 9.3 Microchip
microcontrolador 636 5. 6. 7. 8. 9,
35,44.45.77. 115. 117,517.518. 535,
573. 574. 577. 582. 583,
595, 635. 636. 6.37 Core 625 114
354 Seleccin de microncleo
microprocesador 4, 5, 6. MIDI 7, 32,
569, 568, 570. 571.572. 573, 574
268 MIDP
Millones de instrucciones por
segundo (MIPS) 6 MIMD 290, 636

ndice

MIME 642 171 MIPS


MIPS R5000 son otros 94 MISO
130
495.585.586 MISRAC MISRA
VERSIN C 585 MMU 84. 98. 100
360.36 286 50 equipo mvil!
Telfono 50. 119,195.285.383.440
dispositivo de telfono telfono 146.147
331 teclado LCD del telfono . Tecla de
modo 337 604, 605 modelos de mdem
23 18. 17 modificador 250.251 Diseo
Modular 37
El enfoque de la programacin la
inicializacin del mdulo de monitor 236
498 621. 625 cdigos de 658,659, 657,
130, 132 MOSI Motorola 627. 628. 636
MPEG 10 Msg 470
MsgQCreatc 469. 471. 547. 554
msgQSend 470. 471. 550. 551.
552. 553
MUC'OS 408. 411. 412. 413. 414.
415.416.417,422,437.440.
446. 449. 456. 459. 495.498. 522 101
Tienda Miiltibyte matriz
multidimensional) 250 autobuses
multinivel 75 herencia mltiple 264
multiplexor 14 33 multiprocesador. 292.
642 288 sistemas multiprocesador. 293
mullirale operaciones multitarea 4 319,
328. 330. 354.
408. Programa 479.485 284
307, 479.485 multiproceso Archivo
Musical Instrument Digital
Interface (Interfaz digital para
instrumentos musicales 51 568
Mutex 318. 323.329, 331. 334.
396, 397, 500

675
La inversin de la prioridad de
semaphore 455 463

Jugar Robots 336. 343. 3GY


Orchestralor 568, 569. 572, 573.
574, 608. 609. 610. Lista ordenada
de 613 387. 388 organizacin 84
N
OS 23.24. 307. 308. 309. 310. 311
Nanosleep 500 244
312.313. 316. 318. 320.321. 322.
funcin anidada
329. 331.332. 333.334. 335, 336.
Anidacin de red 368 652 237 Tarjeta de
337. 338. 341. 342. 345. 351. 352,
interfaz de controlador de 10 sistemas
353.
354.
355,
356,357,
integrados en red 159 210 NMI no
358,359,360.361. 362. 363, 365.
ocultable notificacin 207 486, 513, 532,
366, 367, 368. 382, 389, 390. 395.
539,
396. 397. 398, 399,400,401,402.
570, 577. 606 NTP 171
494,496, 585,595,598, 642
248,440,463 puntero nulo 241.
(kernel) 305 funciones tubo
523
340 339 388 Scheduler
ENTER_CRIT1CAL 396. 413. 415
EXIT_413.415 CRTICO
NO_ERR 439 TASK.crear 418 reanudar
tareas TASK_418_SUSPEND 4IX_Tick
por 357 SO 427 Osciloscopio 654 OSEK
49.5. 496. 5X3. 5X5. 5X6 330 359
Oh
OSEventDelcte OSes Query' 359
Objeto 262, 276. 277, 278, 296. 297.487. OS-interfaz de hardware 641
Diagrama de 517.540, 572 298, 299 624 OSInit 414.418.526
OSIntEnler 368,414
archivos almacenar 482 295 diseo
OSlnlEnter ( ): /
431
orientado de 80x86
88
OSInlExit OSISRSemPosl 368.415
Registros de propsito general
437.444 367 OSMboxAccepl ( ). 530
de 88 fuentes de interrupcin 18 87
OSMboxCreate 441. 526 OSMboxPend
tokens OMAPof RISC 281 36 un
39. 358. 439. 443. 444.456
maestro 161
OSMBoxPost 337, 338.
Dimensin de matriz matriz
438.443.444. 528 338 OSMemPut
dimensional OOP 244 639 262.
OSMBoxWait OSMboxQuery 438.439
263. 264. 265. Abierto 276 340.
424.426 424,426 OSMemQuery
364.365. 473. 554 145 El puerto de
OSMsgPend 573
drenaje del sistema operativo 18.
Interfaz de sistema 340 364 263
385 La sobrecarga de operadores
optimizar la optimizacin de la
potencia 41 383 o la seccin crtica
316 PROM 20 Orquesta orquesta
567 569

676

OS MsgQ Aceptar .136. 571. 611


OSMsgQPend 171.611 OSMsgQPost
17.1. 571. 571.611 OSQAccept
OSQCreale OSQ 180 115 115. 116.180.
446. 450
OSQFlush 335. 336 ISQKnd 115, 316.
337. 452.456. <4)2
' 'SQPost 335. 316,446. 447. 451. 601
601.604
iSQPcstFront 335. 446,447
< "QQuery 115. 336. 380, 446,448
>374.379 SS
1 1
) tSSchcdUnlock SSchcdLock 396,416
4,413,416 'SSemAccept 428, 444.
527 1 t.SSemCreate 410. 432, 441. 450,
525
OSSemPend 114. 316. 317, 318. 19.
320.121. 311! 158.174.
179, 432, 433.436.427.411.
442,451.456.527, 528, 529.603
OSScmPost 116. 317.118. 320.
174.428.429. 411.412. 433.
414, 416. 442. 528. 529. 602. 601 i
tSSemQuery 423. 429. 443. 444 i iSSlarl
411.414.419.526
< TSStart ( ) 410
()S TA.sk_Re.sume 510 i rSTaskCreatc
417. 419. 415. 442.
450. 459. 526. 527 1 iSTaskDelete ( )
177 | <S Tasklesume 417.420.421. 529 t
iSTask suspender 417, 420. 456.
527. 528. 529. 530 USTicki'nit
422.423 nSTimcDly
413,419.421,431,436.
443. 445, 452. 456, 530, 602 432
422,424 OSTimeDlyesume
OSTimeDlyHMSM OSTimeDlyResume
422, 436, 437,
444, 445, 452, 529, 603, 604
OSTimeSet 417,421
La OTP ROM 106 107 .
545,553 DutStream Anular 622

ndice

P
P y V Semaphore 323.124.126 325. 322
P81C538 Paquete de 66 296, 298
paquete es 31_PAGE_SIZE 641 Palm
OS 50 PAN 489
Bus paralelo de 160, 166, 167, 169 147
10 160 de bus del dispositivo
Puerto 130.133.143,146,223,
225
Interfaz de puerto 149 partition 424
pasando las referencias 258 los valores
257
PC 211. 243. 244, 305, 306, 307.
308,310,311,323, 355,631. 640,
649, 650
306.312,355,356,365 PCB o recurso 402
PCI 166, 167. 168, 169 PCL 217 PCM
de 16 PCS 151 pda 268
ndice de rendimiento aceleradores
19,401.512 643 642 400 185 peridicos
de mtrica
Servidor de transacciones de perifrico
100 memoria de persistencia 604, 605.
607 46 clave de personalizacin Petri net
197 PFCU Phillips 84 616 24,25 fsica
24 221 dispositivos PIC 16F84 8,32 PIC
18 8,32
Piconet 570, 572, 573, 574 46,482 PIM
Tubo, 24,223,242,247,340,341 472, 473
PipeDevCreate 473

Los tubos de canalizacin Canalizacin


86.90.104.289 105 111 piso 115.
Coprocesador pixel 9, 515
Independencia de plataforma 266
Dependencia 641 635 636 la unidad
PLC 75 PMA 151,228 PLD
PocketPC 50, 149. 479, 482,489
puntero 241. 242, 243, 244, 245, 246,
247. 248. 249. 637 encuestados 164 bus
El sondeo 80, 81. 82. 190, 210. 255.
274, 361
pop 241
Puerto 518,521.533 por 14 dispositivos
582 entregar 515 1SR 223 portabilidad
352 puertos POSIX 14.514.515.516.519
226. 364.166. 451.469. 499, 626.1001.1
100.3b 326 b 122 454 472 colas FIFO I
455 PCs
Publicar el buzn 1PC 338 Potencia de
disipacin 184.185 19.41 manager 480
oferta 10,47 145 PPI preempt 192 368
de preferencia, 394, 395, 385, 313
preventiva 401, 412,461 programador
Programacin 396 392, 395 de la
unidad de control de Prefetch 86 237
239 declaraciones de constantes de
preprocesador 237 directiva 238
directivas 239

ndice

1677

Variables globales 239


155 Princelon Pre-Scalar
principal 4 629
Arquitectura de memoria de 103,630
89 impresora. Asumir 79 prioridades 330,
393. 499. 525 prioridad
209,210.211.307.308.
310, 318. 321. 334.417. 418. 456
408 330 Herencia de techo de inversin,
396 329 461 programacin basada 387
388 Procedimiento de programacin
basada en lenguaje basado en proceso 262
.305, 307, 313, 323, 355, 341.345,
479.486. 496 1
322
1 306 3 326 c 324
Bloque de control 305 Creacin 355
Plazos 39. 42. ID 513 497
Gestin 354.355. 371 Manager crea
356 o tti.sk o el hilo de rosca 240 305
305.307 procesos estructura estatal 23.
289. 312. 325. 342.
351,352.353,485,497 18
procesamiento procesador 5, 6, 72
organizacin 86 Seleccin del procesador
113 menos 635 sensible 638
Memoria sensible sensible proceso
640-Seal estado productor-consumidor
306 325 programa 23, 65, 74
Contador (PC) 11, 62, 84, 85, 387,
388, 313.324, 391.395 Instrucciones de
control de flujo de 66 capas 22
'
"R'

68,482 de memoria
Modelo 23

84 contador
Programar-l/s ocupado-esperar 189 258
255, el modelo de programacin PROM
12.13,21,106,107,108, 632
Propiedad Proteccin 276 402 El
Protocolo 15. 342, 344 procesador
demora 9 650,653 Protolyper Prototipo
39, 26, 27 PSEN 68 PSW 63
Plhread_mutex 500 espere 503 47
Bomba de empuje 243 empujando 244
PWM " 15,51

Q
QAM QError 135 336 .
174 QoS Qrio 567 quarter-CIF 9. 34
cuasi bidireccional 14.5 Consulta 338
Cola 240. 242. 244. 246. 247.
249. 335. 336.378, 380, 409,
445. 447. 448, 450. 451,452. 643
relacionada con la cola 449 buzones de
cola 331 260

R
RAM 12.45.46. 109. i 10 disco 13 error
de paridad de memoria 223.482 210
Tasa 398 monotnico
Planificador monotnica 399 RD
RDRAM 68,73 109
Leer 340, 364,365, 473, 554 () 343

Puertos 517,520
Gama 583

Reloj de Tiempo Real Time Linux


tiempo 158.159 496 115 497
tiempo robtico
Reloj de tiempo 11. FIFO de
tiempo de 248,356 504 642 Programa
de tiempo de programacin tinre 385
CAL 502 Tiempo de tareas de
procesamiento de video 117 funcin
recursiva 240 Recv 492 reentrantes
313,328 240 Funcin Registrar 498
Registrarse, Registro de fiabilidad
483,484 De-Registering 503 42, 585
331 de procedimiento remoto requency
hopping Requisitos 178 513. 531.532.
539. 570. 593. 604. 605. 606 de smart
card 594 reset reset 11 valor 85 318
Recursos. Clave 323 316. 317 355 334
recursos de tipo resto vectores 624 268
Tiempo de ejecucin restringida RET]
65 Volver al 190 volver 191. 193 RI
205
A la derecha de la plataforma RISC 635
33. Formatos 88.98 89 575 RKE
Robert Metcalfe 175 Robin 389 tiempo
tiempo-slice 461 robot 51.52,51
orquesta 117.631 Funciones 568. 570,
572 569 116 robtico corchestra
ROM 12,19,21,45.46,106.107,

108,109,110.116,117.482
ROM Emulator 649

ndice

Imagen Imagen 19.20.110.626


son 22 archivo de imagen 118 ROS
314
Round Robin 388. 390
(time slicing) planificacin 385
CAL 390 roulers 174 RS232C 136,
137, 634 Puerto RS232C 632 RS485
138
RSA 595
RTC 257, 263, 588, 589, 590, 503,504
RTLinux 496,501.502 RTO 478
RTOS 24. 27. 333, 359, 363, 369, 370.
371,372,373,375, 376 377.
381.385, 378, 392, 393, 394,
413,415, 397,409,410,411,412,
453,454, 478,
515,522, 577, 621, 623,642 RTOS
kernel mCOS 360,368 415-II ofrece
23 funciones de temporizador
programador 375 357 537 VxWorks
RTOS de Windows CE 352 408 332
RxRDY RTOSes RxD 633 79. 80

S
378.454 escalable
RTOS jerrquica programador 382
313, 385, 386, 387. 389, 390, 391, 392,
394. 395. 397. 398. 385,386 401,408,
486 de programacin. 393 funciones 23
trigger Schmitt 150 SC! 142,576
ScopeProfile SCLK 130 654 607
memoria de pantalla borrador_State 254
SDF 291 grfico SDFGs 291,293

SDIO Card SDK 142.143.165 133 480


Memoria secundaria 4 nivel 207
Interrumpir el servicio de segundo nivel
de 199 hilos la seccin 314 la seccin
3.12.1
170
Se/F-host 4/0
Semforo 240, 284, 314. 315,
316,317.318, 319,320, 323. 325,
328, 329, 330. 331.332,
375,379.409,412, 426, 428, 448,
455, 463, 494, 499. 599
funciones 487
Semforos 322, 378, 469, 525
Sem_c I 326
SemBCreate 463. 464. 467 546 468
CCreate Flush 463, 465. 467 dan 463.
464, 465, 466, 467, 469,549.
551.552.553,591. 592,593
MCrcale 465. 466. 467
gaste 602
Tomar 463. 464. 465. 466. 468.
470, 549
Tomar 550. 551. 552,
553, 554 591.592
Funcin de envo secuencial de 492
diagrama de secuencia 298 Modelo 280
Modelo 274 modelo de programacin
programa SeiDes 275 151
Salida serie asncrono 134 hora 161
La comunicacin de datos 139
dispositivo de lnea 78 port 130
controladores del puerto 226 los puertos
69, 70 servicios servo motores 351, 353
67 95 SHARC. 105 compartido bus
327,328 290. 291 329 Datos. 652

La memoria de 455, 496. 500,


501. 502 disparos mostrar 532 175
SI 69,70,71.72SigACC sigHandler ,215
587 462 199.201,204,284,297 de seal,
306.331, 332. 333, 462,
499, 203 Seales handler
513,539,570,606, eventos 532, 577
eventos y notificaciones de 594 SIMD
SIMDs 33,89.94,636 290
Mtodo de recocido simulado simula 400
623
Simulador 651,652,620,625,649
26,27,621,650,653, procesadores de
propsito nico 6. 8. 635 procesadores de
propsito especfico y su aplicacin 35
stepping 210 SIPO 135'
Seis tareas 523
habilidades 54
Para pequeos dispositivos esclavos
laminar 53 135 392 198 370 SLISRs
SLISR nivel lento ISR 369 incrustado en
pequea escala 52 smart 45.602
-44.47 la tarjeta. 110. 111. 267.268.
309. Procesador de
tarjeta de 595.631 341.593,
46 Telfono mvil os
OSTicklnil 254 603 601
50 SMS. 147, 604, 606, 607, 608,
610,611,613, 609 607 SMS Cree SoC
29,30
Hembra, 24, 342, 345, 306, 489,491,492
descriptor 343 sockets 51, 331, 343, 344
suave lirle real 37fl> 381 software 25, 211
La arquitectura de componentes de
519,541,572 52

ndice

Proceso de desarrollo 41
excepciones las fuentes
relacionadas con la instruccin 202
201 interrumpir 18, 192 interrupt
(SW|)
196
Instruccin de interrupcin (SWI)
Temporizador 195, 155, 156, 157,
606 del temporizador
Herramientas 25. 26. 620, 622, 627
trampas 202
Sofisticados sistemas
integrados: 52 Fuente 27
Ingeniera de cdigo 622 237.239
archivos ~
SP 84.244,305,306,308,310, 311,312,
355
Especificaciones 40. 514, 515
SP1 141,142 spin 381
Bloqueo espordico
334,335,371,396 385. 399. 401
398 tareas espordicas SPSR
212.213 SRAM 108 S-record
628 SRS 84,86 SSTl. 150
Slack 191,244.249.637
puntero 62, pilas de 85.217
321.643 211.243 puntero de
archivo estndar 482 Inicio
del temporizador 526
Estado 276. 286. 287. 296. 298. 305,
309, 355
Diagrama 298. 299. 517, 540, 572.
Mquina 573.610 282 Modelo 275
Mquina de una clave 613 tabla
285.286. 288 285 282 La funcin
de transicin de transicin, 284
funciones de transicin (Moore)
modelo 283
Los estados 282, 284, 285, 288. 308,
309, 356
La mquina (FSM)
284 de un
temporizador 283

679
Transicin de rancio 607
TransitionFunction 285 251
esttica
Programacin programacin
281,290 cuestin 290 Estado llag 155
registrar 78, 640 motor de pasos 67,
147, 148. 578. 582
Estereotipo estetoscopio
296 297 26 27. 654 117 655
Tienda detener el
almacenamiento de cadena
101, 102 639
StrongARM SA-110 94, 114
estructurales estructura 383 352, 353
410 105 El procesador superescalar
SupcrH 289 unidades 104
Modo de vigilancia 352. 353 SWI
197.202. 204. 254. 287.-2S8 Interruptor
facilidad de conmutacin 254 237 391
SWT 155. 227. 228. 257. 263 155
SWTs Symbian OS 50 537 Diagrama
de sincronizacin 521
Modelo 522.536. 542. 574. 583.
585, 596. 575,597.61.3
135 comunicacin sincrnica
protocolo HDLC 134 139 133
10 365 operaciones de entrada
serial 130
Input-Output serie 132 Serie 131
Salida puerto serie registra 142
SyncML SysC SysClklntr 176 357 356
3, Bus de sistema de 343 autobuses
72,74,76 80,81,85 155,159,414,460
reloj

Diseo 41 interrumpe
159 temporizadores 11
llamada 353

T
T 606
A 68,69,70,71 TL
68, 70, 71 Tl en 8051
68 T2 68
611 teclado T9 T9-keys 604 Tabla
242, 247. 248 Target 620, 623,
624,625. 626, 649. 652, 656. 657, 659
dirigidas 652
Tarea 289,294.308,282.283.311. 312,
313, 314, 315. 316. 318, 323.
325,385.
396.494.516,
517.520.521.524.525.526.
529.530.571.572,
574.580,
581.582.587, 588,590.591, 592.
593.
595.
5%.
598,599.
601.602.603.604
1 299
2 322 317 311 crear
un control 376
Demora 412. 549, 550. 551,552.
553
Eliminar 376. 459
Funcin 584 para 290
Paquetes de 308. 317,
524 519 de Usuario
3 395
Conductor 570 iconet
571 J 397. 398
SMS.Crear 608 3 320
Eliminar ( ) ( ) de
bloqueo 467 458 417
458 PriorityGet
PriorityGet prioridad
() 458 priority ponga
458 PrioritySet () 458

Reanudar 457. 550, 551,552, 553


(pide 23.295,319,320,325.326,
372, 3X6. 515, 516, 543,586,
597,613

TI 205

23.43 UML, 295, 296, 297. 298.

TigerSHARC 96.114
La ligera unida procesadores 290. 291
Tiempo 388

515,517. 540,653
Desbloquear 420
Patilla 46

TaskSafc 459
307 scheduler
Spawn 456. 468, 588

Division Multiplexing 154


Funciones 500
499 cortes

Unicode 639
Unified 299
307,312,332,364.365 Unix

Suspender 459
1 'nlock ( ) 458
IV B 308,310,312,313,315,355,
556. 454, 459
173 IRP, 174,342,537,539,540,
543. 555
Vender 541,556

Cortar en rodajas 154, 371


Activa el protocolo 582
Temporizador 153, 154, 156, 157, 158,
215,221.227,494
Funciones 356
Interrumpir 208
Tiempo de corte 461

Controlador de dispositivo 362


459 operativo
Desbloquear 334, 455
Desbloquea 335
USB 49, 50, 536
Autobs 194
Cable de bus 164

-. 538 UDP
! Voy a' 44. 171, 173, 538,539,541
11 1 V| p 170 red
Id 539 pila VIP

A-live 174
Al mercado 39
455 TIPCs
TMS320C62XX 33

Es una serie 165


O FireWire 569
Puerto 48, 532,533
Modo de usuario 352

A la cola 356
Los tokens 284
Herramienta 650

La UWB 165 -

Checksum 16 557
Hag 546
Hd S56

Cabezal 555,557
ICLNiT 17!
Plantilla 2v3
R.s! 513. 539. 607, 651
.mil 532,578,570,595 de validacin
.En. 622
650
.eelors 623
I e , i Mensajes 605

Diseo top-down 236


De arriba a abajo 38
Pantalla tctil de 14, 17, 50. 209. 268.
369. 480. 488. 532. 576
Trace alcance 26. 27
TraceScope 654.
Va 571
Transceptor 597
Transicin 608

I*\Mo-convertidores de voz 576


! E la RAM interna. SFR 68
Ijiency 361

Trampa 192. 202


Capturas 204
250 de rbol

Procesador de pxeles 49
J'ovess 308
316 recursos
Semforo como 449
Arqueada 307. 356.486.499.505
Perodo 501
Apilar 308
Prioridades 479
308 scheduler
Apilar 307
"hreads 306, 485, 496, 502
Mariposa 578,579,581,584,585
Acabado 643
_irowjix'g 195, 197

42, 513,539 de validacin


Vector 206
La direccin 204, 71
19 direcciones
Tabla 207
Comprobacin 41
Adaptador grfico de vdeo 9
223 virtual. 25
Las clases base 264
Dispositivo 223. 24
La mquina 266

Activacin 623
390 Tworst
TxD 633,634

Memoria . 480
VLIW 33,97
En TMS320C6 290

TxDE 79. 80
Comprobacin del tipo 237
Typedef 241

VLIWs 295
Diseo de Circuitos Integrados 31
Compresin de datos de voz 117
120 grabador

Void main 252


OSInit 413

UART 14, 130, 132, 133, 136. 137.


138, 140, 141, 189,201,226.
236, 257, 366, 637
16550 226
8250 226
UDP 342, 539, 541,543, 546, 555

OSlntEnter 413
OSIntExit 413
ResetTask 601
VclP 392
251 voltiles
Medidor Volt-Ohm 653 34 VPN

"humb 93 'humb 91,93

OOLOGY USftARY
.RT GAUORE - 5W (M-

TZTnrrACC.'N. N3.

681

ndice

VxSim 650.654 obras Vx 308. 332.

453, 454, 455, 456. 458. 459, 460,


467, 469, 472.495,499,538, 586,
623, 626,
654 VxWorks
scheduler 494 VxWorks 40
9 464,466 vxWorks.h

W
Estado
esperando 384
383
Ahora son ms finos watchdog 12, 154,
157, 329, 461
Relacionado con el
temporizador
temporizadores 460
576
WCE 483, 484, 486, 488, 489, 491, 492,
493, 494 WCE puerto serie 489 cuando
el bus master 81 while 252

Juntas mientras, romper 237 151.576


WiFi WIN32 API grfica 484,492,493
492 493 499 Viento Window NT 365
Windows 409, 651
CE 50, 478, 480, 481, 482. 485.
487
CE 6.0 485 CE presenta 479 CE
Comunicacin serie 490 CE.NET 478
488 482 mens Controles de gestin 489
50 mviles WindRiver 453 Winsock 489
dispositivos inalmbricos LAN 151 175.
178 165 USB

179 WLAN 802.11 WLAN


569
WNet API 489 WNe'IDC
491 peor latencia tiempo de
ejecucin 214 400 387 las
latencias de latencia WPAN
329,386,394 160, 177 WR 73
Escriba 340, 364,365, 473
write () 343

X
150 XCITE
Xilinx 150 XWindows 497

Z
ZigBee 151, 175. 177, 179

Vous aimerez peut-être aussi