Académique Documents
Professionnel Documents
Culture Documents
Embedded
Ms
Segunda Edicin
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.
Kothari
Lyla 15 Das
Kelkar upriya
"utnmins Instituto de Ingeniera y Tecnologa.
"La Universidad de pas
Hindi Adhikari
Santa Kumari
Dept, de la electrnica y la comunicacin e ingeniera.
Universidad de Andhra, Visliakiiopalnam
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
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.
4.
'1
Contenido
Xiv |
__ >
4.2
4.3
4.4
4.3
4.6
4.7
4.8
4.9
5.
5.2
6.
7.
303
8.
273
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
406
477
511
566
618
648
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
/
/"I
Extorsionaron Systems
Los autobuses
ABIP"
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
Tutorial
Xviii
DitpUjol k")notas"
" * *>J
VVt\
T't,
>rnun<'
"|* u'"l
Revisar Pregunta*
<
Tutorial
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,
J Claw
WtordwvHMisIr
f
Ml '
Itr.uepla
rodera
.en
Tutorial
L
X
Sk
K
K
Yo
K
Q
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
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
XXI
Tutorial
Un
K
/
K
0
S
3
%
C
T
1
V
S
" itii
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.
Tutorial
1
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
,ps
1.1
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.
"tm
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
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
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.
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
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.
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
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
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.
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
ROM /
PROM.
La memoria
Direcciones
En
Los puertos del
sistema
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
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.
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
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.
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.
17
- __ .
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.
18
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.
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.
1.4
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
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.
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
Ejemplo 1.1.
23
24
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
J Software T(/ol.\
Editor
Intrprete
Compilad
or
Ensamblador
Aplicacin
! 26
Yo
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
Estetoscopio
Demuestra
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
Localizador*
localizador
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.
.(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.
27
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
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
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
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:
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
30
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
- -
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
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.7
Familia de
microprocesadores
Fuente
68HCxxx
Motorola
CISC
80x86
Intel
CISC
El flujo 3
SPARC
Sun
RISC
Secuencia 4
El brazo
El brazo
Stream
Stream I
Secuencia 2
Stream
Secuencia
1
Secuencia
2
El flujo 3
Stream 4'
Familia de microcontroladores
Fuente
Motorola
CISC
8051. MX 8051
Intel. Philips
CISC
Microchip
CISC
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
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
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
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.
! 34
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.
35
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.
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.
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.
38
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
(I} Requisitos: definicin y anlisis de requisitos del sistema. Es slo por una completa claridad de propsito, entradas, salidas, funcionamiento,
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
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
Desarrollo de
prototipos time-to-
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
(2) Especificaciones:
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
41
Actividades
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
Etapa 4
Fase 1 Fase 2
Fase 5 Fase 6
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
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
__ ,
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.]
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
43
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.
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!"
para
de
USB_Wireless.
. Clasificador de
Mdem
RTOS
El software integrado
monedas
mecnicos
Jr.yV . .Chocolate andrefunded7monedas;collectib.n:bowl j c j
.,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
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
Fig. 1.13 los componentes de hardware integrado en una tarjeta inteligente sin contacto
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
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
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.
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.
'
48
| 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
(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.
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 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
50
__
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
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.
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
!
Protocolo Bluetooth
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
| 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
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
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,
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.
La
ASIP
(aplicacin
especfica) Conjunto de
instrucciones
Ensamblador
ASSP
(aplicacin
especfica) del procesador
del sistema
Autobs
Cache
Reloj
CODEC
Coder
Compilad
or
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)
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
58
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
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
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.
U
n
C
[
L
<L
Un
Yo
*c
Q
C
<1
Yo
<
E
S
Restablecer j
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).
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).
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
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
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).!
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.
8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y el entrelazado del mundo real
67
_____________ 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
_ _____________
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
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
(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
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).
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.
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
I 72
2.2
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
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
real
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.
78
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.
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
Byte de datos
En el tiempo t2 despus de 11
Keycode
Buffer
(8 bits)
En el tiempo t, despus de t0
En
En el momento de
(a)
En el momento ti despus de bfer de salida T0
completo (Aceptar solicitud)
Procesador
OBF
N*.
(o
Microcontrolador)
t0 ____________
INT
INT1 TxDE
Impresora
Buffer
(8 bits)
Controlador de
impresora
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
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
(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
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
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
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.
| 83 !
Key
Cdigo
Buffer
(8 bits)
El bit de datos
Leer
SI
RxD
Procesador
(o
Microcontrolador)
ROM
Ii
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 !
Puerto
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,
. . _____ .
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
84
2.3
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
Bus interno
Bus de direcciones
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.
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
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
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
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
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
Instr 7
Instr
Instr 6
5 4 3
Instr
de
Instr
Instr 8
Instr
Instr
76 5
4 Instr
de
Instr
Siga las instrucciones a travs de la canalizacin en una etapa por ciclo hasta alcanzar el registro (resultado)
escribir
88
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.
de registros de
propsito general
| A, B, C y D |
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.
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]
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
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.
(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.|
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.
ARM 11
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
Caractersti
ca
Realizar
Cdigo
Densidad
Tamao
del Chip de tamao pequeo
chip de silicio portable a 0.25 pm 0.18 pm y
0.13 pm versiones
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
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
~~~"
N , --------------------------- 1
16 GB de
memoria
Off-Chip
. .(K
Mundo de 32
bits
96
_/
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
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
Registrarse Archivo B
Unidad de Prefetch
Unidad de procesamiento
Lgica aritmtica
Subunidad '
La subunidad fMgic
auxiliar
Una subunidad utilizados durante la sustraccin. [considera 2's complementar antes que la suma
y, a continuacin, agrega a fin de restar)
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
Instrucciones de la unidad de Instrucciones VLIW lleno, ya que se ejecuta en paralelo sin entre detiene
embalaje
I 98
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 :
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
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
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
64k
64 k6
64k
64 k
4 GB
Harvard6
Princeton
Princeton
Princeton
I7
S
No hay
No hay
No hay
S
(cont)
Yo
100 |
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
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.
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).
(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.
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)
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)
104
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
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
Ci
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 |
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
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
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
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.
(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
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.
3.
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
9.
10.
11.
12.
25.
26.
27.
28.
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
__
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)
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).
114Yo
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.
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
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
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
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
S
invariablemente
S
Puede ser que s
ARM7, Sunspare
ARM9. TMS
familia DSPs.
PowerPC
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!]
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.
118!
2.9
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
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
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 |
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.
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.
122
Acumulador
La abeja africanizada
ALU
AMBA
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
8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real ! 123
CODEC
Unidad de control
DAA
Cach de datos
DCT
Direccin directa de
filtrado digital
DMA
DRAM
Cancelacin de eco
Echo
124
Ffl.4
ECMBC
EEPROM
EPROM
Tiempo borrado
Aritmtica de punto fijo
Flash
Flash
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
instrucciones registro de
Conjunto de instrucciones
instrucciones
Unidad de MAC
Master
8051 y arquitecturas de procesador avanzada, Organizacin de la memoria y de la interconexin del mundo real
Registro de datos de la
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
programa PROM de
instrucciones o Pulso de
126 I
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
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?
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.
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.
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 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.
131 |
Estado
10-07 ,
<p0D~7>
Reloj (opcional)
(a)
DTE
DCE
10 o 11
Tiempo
Bits de datos serie
UART tor
-|
Bit de inicio
|
P-Bit
(Opcional)
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
132
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.
Tipo de dispositivo 10
Entrada serial sincrnica
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
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
3.2
135
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
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
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).
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.
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
(") 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.
139 i
Tabla 3.3 Formato de bits en sncrono basado en el protocolo HDLC dispositivo de red
S.nn.
Bits' en el puerto
2
3a
Presentar
obligatoriamente
o opcionalmente
Obligatorio
Obligatorio
3b
3c
Bits de datos
Obligatorio
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)
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
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.
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
DDRD
PDA
PD.5
SCLK
SS
68HC11/12 SPI
DDR
D
Yo ___
68HC11/12
SCI
(UART)
).
PD.O
RxD
PD.1
TxD
Velocidad en baudios
programable, funcin de
reactivacin programable para
multi procesador programable
y comunicacin ST bit (P-bit)
(c)
Yo
Estructura de la tarjeta
142
Intel 80196
8051 huei y hue! 8751
Motorola
M68MCUE2
Hall
Full
La mitad
Full
Full
Full
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.
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
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].
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.
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
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.
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
El bus de datos
Procesador
---- 1 puerto
| interfaz
I En rlpvirfi
((>)
----- J4-PC
------- 1 PC7
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.
148
-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
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
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
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.
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 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.
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 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.
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.
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
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.]
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)
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
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.
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
1.
2.
3.
4.
Tipos
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
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 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
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
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.
160 i
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.
Explicacin
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.
(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.
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
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
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.
Controlador CAN
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)
identificador)
FM.iM
I-ig. 3.11
<t>)
_____________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
(a)
Bit de inicio R A D transicin
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.
1166
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
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
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 !
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.
BA3 LT HT 1 BIST
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.
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.
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.
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
| Internet habilitado
J embedded system
11
11
Interfaz de red
Interfaz de red
Mr
!1
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
172
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.
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.
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)
3.12.5
175
Explicacin
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.
LAN Ethernet.
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
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
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
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
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
! 179
L!
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
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
181
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
1182
183
V ------------
El controlador de LCD
Comunicacin
maestro/esclavo
Multiplexado
Puertos On-chip y
dispositivos
.a,ii
Modulacin PSK
otros
184 :
RS2J2C puerto
RxD
Pan de serie
TxD
[/ART
1185 j
:.
__ J
Preguntas de
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?
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
Yo
(
,1*
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
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
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
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 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.
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
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.
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
196
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*/
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).
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.
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
.200
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
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
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
__ ;
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.
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.
204
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
ISR
Direcci
n
(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
I 205;
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.
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.
(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
(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
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
208
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
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
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/.
,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.
2101
iniciada en el momento de
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
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
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
212
Contexto
Conmutacin y/
Funcin actual o guardar en la pila de
contexto ISR j
Y la nueva funcin de carga o contexto ISR
(b)
(")
Rutina actual
J Pasos en
_T
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
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
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.
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
ISR
^seccin crtica
(cdigos de tiempo
Gastado = ^desactivar).
(c)
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
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
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.
().'-,yo....
4
yo
-
216
j'. J
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)
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
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.
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
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
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
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.
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
4.9
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
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).
222
5.
4.
5.
6.
7.
8.
9.
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.
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.
.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.
1224!
i
El
control
Y
El
estado
Bits
D0-D7
Evento de
interrupcin
estroboscpi
ca bandera
poco listo
poco
(*"
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
225
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
(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
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
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.
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
228
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.
229 i
Net
Explicacin
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
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.
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
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
Linux
Los controladores de dispositivo
Linux fuente de interrupcin de
mscara
No mascarable fuente :
El sondeo
231 i
I 2321
Preguntas de repaso
13.
14.
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
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
5.1
236
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.
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
: 238
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.
240
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
Viabilidad de
anidar uno dentro
de otro
No hay
Ninguno
No hay
Reentrada
Funcin
Tarea o
proceso o
thread.
RecursiveFuncin
S a otra funcin
reentrante
solamente
Para ISR de
mayor prioridad
fuentes
desenmascarado
Ninguno
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).
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
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.
I 242:
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!
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
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
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
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
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.
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,
Yo
i
Yo
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
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
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
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!
Estructura de Duio
(una
matriz
multidim
ensional
vector)
Multi
Ttrrav
Lista
rbol
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.
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.
252
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
//********************************************************************
Void taskl (....) { /* Declaraciones *1
While (true) {
/* Los cdigos que ejecutar repetidamente */
While (true) {
/* Los cdigos que ejecutar repetidamente */
//********************************************************************
/***********************%:y***^/t\***************************************/.
Void taskN (...) {
Declaraciones /* */
253
.mientras (true) {
/* Los cdigos que ejecutar repetidamente */
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 */
I 255 i
Interrumpir
en el men
Seleccionar
la tecla
R
Y
o
Y
o
Funcin (por lo
tanto, Mo) ejecuta
cdigo seal
1 funcin (MOM) j
! Ejecutar cdigo
Seal J
R
Yo | funcin (S|f_i, Mo) \
1
- Ejecutar cdigo -j
F
Seal i
,
' -i
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 ()
256
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
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
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
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.
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
|259
}
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
J 260:
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*/
261
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
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
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
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.
; 2641
2.
3.
4.
5.
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
! 265
1
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
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
(cont)
266 I
Yo
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).
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
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.
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.
Keywords y
La clase
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
10 Lista de corrientes
Variable local de optimizacin
de memoria.
Modularidad herencia
mltiple
NULL
Programacin orientada a
objetos :
Lista ordenada de pasar la
referencia
i
Yo
Tp,
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
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
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
Un
Yo
C
<1
Yo
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
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
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.
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
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,
277
( ).
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
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
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.
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
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.
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
( '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.
282
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
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.
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
//
-J
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
,285
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.
_J
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
(1,5).
D.j)
0
0
0
0
0
0
0
0
0
0
0
0
0
0
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 * * * * * :* * * * * * * * * * * * * * * * * * * * * * * * * /
* * * * * * * * * sj : s >!
%*
t i t * * * * * * * * * * * # * * * : :* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * /
288:
.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.
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.
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
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
en una red, as como el espacio de direcciones compartido para conjuntos de datos y matrices.
(a)
Delay (PX2.p*)~0
Token i es de PXt y
Token j es de PX2
Y
Fig. S.13
(c)
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.
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.
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
,294
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
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
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)
(c)
Ig. 6.16
Preferencia de eventos
Estado
de
I---ejecucin de
Una
tareas
transicin
Estado de
UML
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.
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
Objeto
Active
Objeto
Active
La
clase
Seal
2981
Modelizacin
de il
Qu modelo
Diagrama
el espectculo?
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.
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).
299
Clase Ethernetframe
Tarea 1
ejecutando
Estado
Preferencia de eventos
_____ / __ _____
_____ _____
OS
Start
Finalizar
Paquete de clase
(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)
' 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)
secuencias de estados
(c)
sistema)
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
M)FG
MJFG
El procesamiento
simultneo
CDFG
DFG
Mquina de estado finito
:;&aiii8&iiii&Wiii(^^
HSDI-G
Comunicacin entre procesos :
Es equilibrio tad
Modelo
Sistema multiprocesador
Particionamiento
Costo de rendimiento
Resynclironization
Programaci
n
SDFC,
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.
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.
6.
7.
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?
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
Y
o
?
Y
o
\
J?
%
X.
Yo
X
Q
1305:
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
(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.
| 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.
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|.
307
308
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.
Ejemplo 7.3
; 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
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.
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
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.
311
ID de tarea
Tarea
contexto
----- PC
conuter)
(Programa
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*
| 312
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
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
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.
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.
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.
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.
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'
314!
L-'anctiou
/SR
Tusk
-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.
315
Y Contexto
La funcin F
Llame a f1 -J o De F
Superior
de
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.
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.
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 '' */
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) {
(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.
319
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
(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.
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.
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;
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)\ \
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);
1323!
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*/
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.
324
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*/
: 325!
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) {
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
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
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.
329
330 j
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
'.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.
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
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){
! 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'.
334
__ /
7.11.1
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
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
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)
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)
337
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
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.
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) (
339
};
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
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
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
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
''
errores.
Un
bfer deymensaje
Funciones)
el uso de las funciones de lectura y escritura por tareas A y B (b) mensajes de tubo
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.
342
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.
Cerrar ()
Shutdown ()
Error de 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
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.
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
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.
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.
Situacin de estancamiento
Buzn
Message Queue
Mutex
P y V de semforos.
El tubo
La inversin de prioridades.
Proceso
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.
Tarea
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
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
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.
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.
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.
353;
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.
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)
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 :
Gestin de dispositivos-4
Controladores de dispositivo
Gestin de E/S.
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<ithreading 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.
8.2
355
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!
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.
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).
OSTimeGet ()
OSSemPend
(semVal, twait,
*semErr)
OSMboxPend
(semVal, twait.
EmboxErr)
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
ms
8.4
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.
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
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
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
Explicacin
Asignacin de bloques
dinmicos1
Asignacin dinmica de
pginas1
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.
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
Funcin
Deteccin de dispositivos y adems
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)
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
Control de dispositivos
Controlador de dispositivo
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).
363
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
Ioctl-
Cerrar y eliminar
Cerrar es para des-registrar el dispositivo del sistema y eliminar es para cerrar (si no
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
(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
( )
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
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.
Aaion(s)
Abrir
Escribir
Conducir
Iseek fl.iNi) nr buscan
establecer el puntero del
archivo
V perder
"h: \.
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
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)
366
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
"367
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
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
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).
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!
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
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
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.
371
Actividades
La gestin de procesos, gestin de recursos, gestin de dispositivos,
dispositivos de I/O subsistemas y dispositivos de red y subsistemas de
gestin.
Asignacin de memoria
real
372!
8.9
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
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
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
)
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) {
375
)
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.
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
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
| 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
Mutex ras
1
18
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
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
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.
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).
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.
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
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.
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.
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. */
** *
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
__
>
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.
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.
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
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.
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.
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,
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
1386
Yo
La
tarea A1
Power
En
La tarea A2
El agua
En
I LA
TAREA
A3 Ii
; el agua
Pare !
0)
Contador de
programa
En
ADDR-A2
Ejecutar
La
tarea A3
(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
(c)
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
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:
Prioridad------------------ Baja
Alta
(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
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.
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...
389
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.
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
...
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
Fig. 8.5 (a) Las tareas a cl C5 round robin (b) programa de tareas en contextos de cinco casos en el round robin
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
(a)
-NxT.,,,
Slice "
Hola X Tvilla'
Programa
Counter
Asignar
A
Varios
Los
procesos
Tarea 2.
Tarea 1 (bloqueado)
bloqueado _________
Tarea N
bloquea
da
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.
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.
('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
393
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
(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
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
395
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
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",
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
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
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).
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.
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.
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.
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.
R ... )
| 402J
Funcin
Actividades
Mecanismo de confinamiento
Poltica de seguridad
(estrategia).
Mecanismo Aulhcntication
Mecanismo de autorizacin
Cifrado
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.
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.
Bloquear
OS
Anticiparse al mecanismo de
proteccin de programacin
404
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.
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
N
E
C
U
n
T
C
Un
V
*
Un
K
Yo
K
Q
9.1
0
C
<X
0
V
5
Ti
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
IHU
Funciones
(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
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.
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.
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
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).
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.
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
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
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.
414
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:
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
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
Yo
Tabla 9.2 Servicio y funciones de tiempo del sistema para las tareas
Prototipo de funciones
PA
PB
PC
PC
PD
Ninguno
RF.
Ninguno
Unsigned int significa una .12-bit entero sin signo. Abreviaturas utilizadas en las columnas 2 y 1 se explican en el texto.
(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
(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 */
419
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. */
420:
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.
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 */
RE: Devuelve entero de 32 bits, el nmero actual de garrapatas en el reloj del sistema.
422
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 */
)/ * Fin de la tarea-funcin. */
RG
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
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
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.
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.
*/
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].
Prototipos de funciones
Rland PI
RJ y PJ
RK Y PK
RL y PL
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 */
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
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);
) 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.
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.
J OS_Event OSSemCreate
! (unsigned short semVal)
! Void OSSemPend
(OS_Event i:eventPointer, unsigned
*SeniErrPointer)
Rt/t y H
Prototipos de funciones1
A.S_EVENT
'cventPointer.
OS_SEM ..data *SentData)
La columna 1 se refiere al prrafo explicativo correspondiente en la prueba.
4291
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!
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
431
1432
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***************^*****^**********^***^****** *********************/
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.
I* * *5i
*:* * # $ * * * * * * * # # t-? * * * #
%J
19.
{***********##**#*###%%********* ***$$*%**$%$%$%%%$***%$%%%%$$%%%%%%%%%%%J
434|
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*/
435
J 436 I
Unsigned short countLimil = 160; /* declarar el tamao de bfer para los caracteres countLimit = 160 */
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 */
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
Ml y ml
M2 y M2
Void 'OSMboxPend
(OS_evento 'mboxPointer unsigned.
Tiempo de espera corto, unsigned byte
'MboxErr)
M3 y M3
M4 y M4
M3 y M5
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);
441
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
(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 */
W*
* *V: * *+*
:::
: / 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);
/* 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
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
):
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*"" ***$******#*$*/
44.
45.
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
446
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.
Los parmetros
devueltos y pasa
RyR
SyS
TyT
UyU
Vy V
XYX
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.
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.
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
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 */
451
**+:{!******************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
J
28.
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
13. Si (errorLogged = = " Tamao de matriz super el lmite. Cola llena ") (
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
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
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
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. .
I
457
j
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
____
"Terminar la tarea.
Terminal^ ihe Iree y tareas de la
memoria.
Descripcin
TaskSafe ( )
TaskUnsal'c ( ).
TaskDelete ( )
TaskRestart ( )
TaskActivate ( )
TaskSpawn ( )
LuskName ( )
TaskNamelD ( )
LasklDVerify ( )
TaskIDSelf( )
TaskIDListGei ( )
Tasklr.foGet ()
TaskRegsGet ()
TaskRegsSet ()
TaskOptionsSet ( )
TaskOptionsGet ()
TasklsSuspended ()
TasklsReady ()
TaskTcb ()
(Canid)
458
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
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).
460.
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).
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.
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 ()
IntUnlock ( )
IntCount ()
IntVecGet ( )
IntVecBaseSet ( )
IntVccBaseGel ( )
IntLevelSet ( )
IntContcxt ()
IntConnect ( )
, 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
. ____
Funcin
Descripcin
SemBCreate ( )
SemMcreatc ( )
SemCCreate
SeniDelete ( )
SemTake ( )
SemGive ( )
SemFlush ( )
MsgQCreate ( )
MsqQDeletc ( >
MsgQSend ( )
MsgQReceive ( )
PipeDevCreate ( )
Seleccione ( )
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
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
__ /
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.
6.
(semMReadPortAKey semTake, WAIT_FOREVER): /* Seccin Crtica (recurso compartido o seccin
de datos comienza) */
7.
8.
9.
10.
* * * * * * * * * * * * * * * * * * * * * * * El sfc * * * * * * * * * * * * * * % * * * * * * * * * * * * * * * * * * * * * *
* * t-f
467
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
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:
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 */
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
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 */
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
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.
*/
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
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.
475
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.
476
TCB
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.
1-
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
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.
' 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
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
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.
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
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
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.
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).
Caracterstica
Descripcin
2
3
6
7
8
9
10
11
N
13
14
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.
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.
Funcin TerminateProcess
Windows CE
8
,1*
Descripcin
Funcin.
(C(ff ltd)
I 486!
F
.s'. Mi.
9
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.
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
(notificacin de sealizacin!
Funciones
5
Las funciones de la cola de
mensajes
Yo
S.No.
8
Caracterstica
Descripcin
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.
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,
10.1.10
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
S.No.
Yo
Caracterstica
Leer archivo
Descripcin
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
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
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
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
I 492 I
S.No.
Caracterstica
Estafado (uncin
Funcin de escucha
Dcst I'ifuimi
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
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.
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.
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
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
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
500;
S \'o caracterstica
Descripcin
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
mensajes
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.
.p>
Ejecutar tareas primitivas ihe slo con memoria asignada estticamente. La asignacin dinmica de memoria o
502
. ____
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
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
La creacin de
subprocesos y obtener
ID de subproceso
Semforo mutex y
funciones
Thread Wait
Ejecutando
RT
Definicin
de
perodo de rosca
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
5.
6.
7.
8.
Rc:il-se
tirne
funciones FIFO
11.
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
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.
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
^ _ )
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
___
!
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
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
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.
510
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 -------------
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
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.
1. El ACVM muestra un pictograma para el chocolate vending company. Muestra la GUI. El ACVM
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
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.
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 |
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.
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
__ /
J Inicio |
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.
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.
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]
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.
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
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
523
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
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 ____ ,
/* ------------------------------------------------------------------------------------ - ------------------------------ */
I 5261
I;
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
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: $
530
__
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:**********" ******************#/***********************
4
4
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
11.2
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 |
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.
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.
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
'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
11.3
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
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
Transport
e
Capa
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)
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.
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
539
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
Seales, eventos y
notificaciones
Despus de formar los paquetes en la capa IP. Controlador de red SemPkiFlag tarea
Salidas
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
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
SemFiag,
SemMKey:
OSEverrt;
numBytes,
taskld,
taskPriority:
Integer;
OutStreamlnputl
D esttica,
appIStr: String;
TaskDelay
msgQSend () () ()
taskResume
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
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
Ars
m
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
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.
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
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).
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).
Y SemMKeyl
QStream
InpittID.
Transmisin
El control
(Transporte).
Internet
(Red)
Red
Interface
11 ).i!,i-lmk i
QStreamlnputlD
QStream
InpittID.
SemMKevI
Out-Stream
Out-Stream
Out-Stream
PipeNet
Stream
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
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
Ejemplo 11.2
1.
#
#
#
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
I545]
546
. __/
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;/
548
/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 */
:55;
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
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
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);
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 */
Cerrar (FD):
75. /' abrir el tubo para el flujo de red. Consulte el paso 5 Ejemplo 8.26. */ fd = abierto (-'IpipelpipeNetStream"
0_RDWR. 0);
permite
la
capa
siguiente
tarea
desbloquear
outStream
iniciar
la
formacin
de
paquetes
cuando
el
RTOS
listas.
-1
semTake
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-1
555
(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;
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
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
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
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. */
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
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.
de 8 bits
O 16-bii nmeros o nmeros de 32 bits.
Ecu
564
Software criptogrfico
Datagrama
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.
----------
12.1
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
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
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
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*
570
_ _
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
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
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
Conductor de tareas
Task_SlaveP2 |
Task_Piconet_SlaveP2
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
MIDI de tareas
572
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.
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2
573
^ ______ ,
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
'> J
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2^
76: MsgQMidiP4
6d: MsgQBIuetoothP4
5d: SigPortP4
57 6
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
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.
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)
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).
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
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
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.
! 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
' 582 i
ISR_acosan
Task_Align
! TaskACC
Task_seal
ISR_van
Task_ReadRange
Ii1 1
Task_RangeRate ---------
ISR_Align |
Task_Algorithm
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.
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2
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
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
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
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. */
! 590 i
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) (
); /* 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.
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
."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. */
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.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.
En la tabla 12.4 Requisitos del sistema de comunicacin de tarjetas inteligentes con un host
Requisito
Finalidad
Descripcin
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2
Requisito
Descripcin
I 596
( ___
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
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.
Task_appl
Tiempo
Sem PW
Solicitud- |
Contrasea
MsgQPW
MsgQ appl.cerrar
Request.AppI
cerrar
SemAppI
RequestAppI
MsgQ Appl
ejemplar
Ejemplo 12.2 da el procedimiento de codificacin ejemplar para una aplicacin de esta tarjeta.
598
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:
/ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * /
/ 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
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
(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
604
12.5
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
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,
Descripcin
Para crear un mensaje SMS y comunicarse utilizando un formato T9 y teclado utilizando la tir-ks para
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)
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
608|
Yo
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.
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();
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
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
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.
612
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 ].
Estudios de casos y ejemplos de diseo del programa de modelado y programacin con RTOS-2
ISR_KINT
0:Tecla S1 Fila1
Task_Mensajes
1: KINT
Task_task_TextMessages CreateMessage :
3: MsgTexiMessages
4: MsgCreate
2: MsgMessages
9: MsgEditMessage
7: MsgAddNumber
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
Lira!
Algoritmo adaptativo
Control Adaptativo
Adaptive Cruise
Control
Bluetooth
Puerto COM de la
bomba de carga
Clave de fabricacin
Bloqueo de invalidacin
Tarjeta Java
JVM (Java Virtual Machine)
Direccin lgica cuadro de
mensaje
MIDI (interfaz digital de
instrumentos musicales)
Notificacin
Orquesta
Orchestrator
616
Tecla de personalizacin
Direccin fsica
Piconet
PIS
Bits de proteccin
Qrio
: 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.
: 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
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.
Proceso de desarrollo
de software integrado
y herramientas
I:
3L
Un
*c
Yo
<3
Yo
V
620
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.
"
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
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.
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
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.
$
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.
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.
624
___/
Simulator
C-Editor
Yo
Emulador
~~i~
Analizador de lgica
Yo
Sistema de
destino
RTOS
Cross-Assembler
Vectores de prueba
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.
(b)
Fig. 13.3 (a) Simple sistema de destino (b) un sofisticado sistema de destino
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.
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
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.
628
tercero y cuarto
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
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
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.
629
VerificarSuma>
Direccin.
Addr'
Sexto y Sptimo
caracteres4
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
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.
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).
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)
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
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
Carne
...0x9FFF da,un
- pila OxAOOO;
_ _ Temp variables OxBFFF
RAM
(a)
Cmara digital
RAM
Aplicacin
Cdigos;
RTOS
-|- 0x000000
_l QxFpFFFF
datos;
(c)
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
______ ,
O
Archivo ________
Hex SRecoed Formato
Motorola
'V//////////////
Para el dispositivo
:ig. 13.8 La Quema en la aplicacin de los cdigos de software, datos y tablas utilizando un dispositivo programador
>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.
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.
Tabla 13.5 Lista de unidades a elegir, para finalmente obtener un derecho de plataforma y
herramientas de desarrollo correctas
Unidad para ser elegido
Procesador
La ASIP o ASSP
Mltiples procesadores
System-on-chip
Seccin 1.2
La seccin 1.6
La memoria
Seccin 2.7.1
Seccin 1.3
Los autobuses
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 | |
FPGA
(c)
. i3.
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
Disponible en Chip
elegido
8/16/32
S o No
8/16/32
S o No
S o No
S o No
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.
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
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.
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.
6401
__ J
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
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.
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).
memoria intervalos de
Sistema operativo Linux' define el reloj del sistema y se interrumpe en cada 10 ms. Las funciones
tiempo
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
i 1
Y
o
T
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.
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.
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.
lista
doblemente
Co-diseo
enlazada
Crossassembler
alineacin
de
datos
Herramientas de
depuracin demora
zitters
Dispositivo
Dissembler
jyrograjftmer
3
Yo
Yo
Editar-test-ciclo
depuracin
de
Sistema integrado de
gestin de proyectos
Sistema host.
de
Desarrollo integrado
Medio ambiente
IDE
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
646
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
Preguntas de repaso
1. Describir las funciones del compilador, enlazador, localizador, pala cargadora, intrprete, dissembler, cross-assembler e
integrada
El sistema de desarrollo.
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
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
I-! - Emulador de
ROM
Procesador de
destino cdigos
independientes
y dependientes
desarrollo
Cuadro 14.1 da nueve pasos durante la prueba.
650
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.
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 !
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
652
(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.
|653
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.
La capacidad de depuracin
Simulacin de dispositivo
Red de simulacin
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.
1654 i
( __ \
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
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.
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.
Fig. 14.3
(b)
(a) Un emulador (b) un emulador en circuito
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
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
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.
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)
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.
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.
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
de
destino i ohohmmetro
Preguntas de repaso
1. Por qu es sistema host utilizado para la mayora de las etapas de desarrollo y de prueba y simulacin ."
2.
3.
Qu es un sistema de destino? Cmo funciona el sistema de destino final difiere del sistema integrado?
4.
5.
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?
6.
Explicar el uso de las siguientes herramientas de hardware: emulador de destino contra el hielo.
7.
Qu es un ensamblador cruzado?
10.
11.
Qu entendemos por un analizador lgico? Cul es el uso de un analizador lgico durante la fase de desarrollo?
12.
13.
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.
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
Apndice 2:
Bibliografa selecta
A. Libros impresos
1. Graham Phillips. Bill Pierce y John Hardin.
2. Grzegorz Ro/.entxa'g. y Frits Vaandrager (Eds.) "Conferencias sobre sistemas integrados: Unin
Foro Educativo Escuela
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 -
".
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
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).
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.
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.
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.
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
"
'
! 667
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
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
622, 624
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
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
ndice
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
E
E_SMS 609,612
E2PROM 12
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
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
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
capa de
interoperabilidad 25.27,621,624
intrprete
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
ndice
675
La inversin de la prioridad de
semaphore 455 463
676
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
ndice
1677
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
108,109,110.116,117.482
ROM Emulator 649
ndice
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
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
TI 205
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
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
-. 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
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
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
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
OSlntEnter 413
OSIntExit 413
ResetTask 601
VclP 392
251 voltiles
Medidor Volt-Ohm 653 34 VPN
OOLOGY USftARY
.RT GAUORE - 5W (M-
TZTnrrACC.'N. N3.
681
ndice
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
X
150 XCITE
Xilinx 150 XWindows 497
Z
ZigBee 151, 175. 177, 179