Di seo de Si st emas Basados en Mi cr ocont r ol ador Uni ver si dad de Las Pal mas de Gr an Canar i a
2003 - 04
Jos Carlos Ruiz Luque Francisco Garca Rodrguez
2
CONTENIDOS
I nt r oducci n. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Component es . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 Desar r ol l o pr ct i co. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1 Pl aca Radi o f r ecuenci a XE1201. . . . . . . . . . . . . . . . . . . . . . . . . . 4 1. 1 Env o de un bi t cont i no. . . . . . . . . . . . . . . . . . . . . . . . 15 2 Pr ot ocol o de comuni caci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 2. 1 Mat er i al . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 2. 2 Al gor i t mo. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21 3 Comuni caci n por r adi of r ecuenci a. . . . . . . . . . . . . . . . . . . . . . 24 4 I ndi caci ones de uso r pi do. . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 5 Ampl i aci ones . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 6 Fi cher os . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 27 Pr ogr ama 1: Pr ot ocol o de comuni caci n. . . . . . . . . . . . . . . 27 Pr ogr ama 2: Pr ogr ama pr i nci pal . . . . . . . . . . . . . . . . . . . . . . 31 7 Bi bl i ogr af a. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3 Introduccin
En el desar r ol l o de l a pr ct i ca se ut i l i zar el t r anscept or XE 1201 par a l a comuni caci n ent r e var i os equi pos.
Se ha pl ant eado el desar r ol l o de l a pr ct i ca en f or ma pi r ami dal , cuya base ser l a de conf i gur ar el t r anscept or y de l a t r ansmi t i r un bi t si endo capaz de capt ar el bi t por el r ecept or .
En cada ni vel se i r aument ando l a compl ej i dad de l a i nf or maci n necesi t ando par a el l o un pr ot ocol o de comuni caci n, como el r s- 232, hast a l l egar a t r asmi t i r a l a f r ecuenci a de l as pl acas.
Componentes
Par a l a comuni caci n de r adi o f r ecuenci a: Dos pl acas RF( r adi o f r ecuenci a) con el chi p XE1201 empot r ado
Par a el cont r ol de l a pl aca XE 1201: Dos pi c 16f 84 Pl aca AC84
Desarrollo prctico
La el abor aci n de l a pr ct i ca se ha or i ent ado en una j er ar qu a de et apas. A cont i nuaci n se expondr un br eve r esumen de l as mi smas:
Pr i mer a Et apa: Env o de un bi t cont i nuo al t er nado su val or ent r e 0 y 1 con el i nt er r upt or de l a pl aca de desar r ol l o.
Segunda et apa: I mpl ement aci n del pr ot ocol o RS- 232.
Ter cer a et apa: Combi naci n de l as dos et apas ant er i or es
Tr as enunci ar l as et apas de r eal i zaci n de l a pr ct i ca se pr of undi zar en cada et apa en l os r ecur sos usados y en el cdi go ensambl ador del pi c. 4 1 Placa Radio frecuencia XE1201
El XE1201A es un t r anscept or FSK hal f - dupl ex que oper a en banda I SM 1 ( opt i mi zada) de 433 Mhz y en banda de 300- 500Mhz.
Apl i ca l a modul aci n por despl azami ent o de f r ecuenci a de f ase cont i nua a 2 ni vel es ( CPFSK) . La conver si n di r ect a de l a ar qui t ect ur a del r ecept or per mi t e al chi p f i l t r ar l os canal es.
El XE1201A i ncl uye un si ncr oni zador de bi t que gener a dat os l i br es de i nt er f er enci a y un r el oj si ncr oni zado a l os dat os f aci l i t ando a un mi cr ocont r ol ador adqui r i r l os dat os si n mucha compl ej i dad. La al i ment aci n de ener g a es de 3. 5V y puede ser cont r ol ada por medi o del bus o por l os pi ns Vcc y Vss. El XE1201A usa el est ndar I - ETS300- 220.
Fi gur a del XE1201A
1 Como ya dice la definicin de ISM en ingles esta es una banda para el uso: industial, cientfico y mdico, en la cual no es necesaria la posesin de una licencia para poder ser utilizada. Esta banda tiene varios rangos de frecuencias una que est en Europa en los 433 Mhz normalmente usada para los telemandos de garajes; otra en los 850 MHz para el uso de aplicaciones que necesitan una mayor ancho de banda como pueden ser perifricos de ordenadores (ratones, teclados, etc.) Y una alrededor de los 2,4 Ghz que puede ser usada ya par la realizacin de redes de ordenadores inalmbricas. 5
Det al l es de l a descr i pci n de l os pi nes:
6
Los pi ns que son accesi bl es al ext er i or :
Conf i gur aci n de l os pi nes de l a pl aca RF:
7 Resumen de l os val or es m ni mos, mxi mos y t i pos par a al gunos pi ns del chi p:
8
Lgica de control a travs de 3 cables
El t r anscept or puede se conf i gur ado en var i os modos a t r avs de l a i nt er f az del bus 3 cabl es. Est a i nt er f az consi st e de un r egi st r o despl azador , que r ecoge cada bi t de dat o en cada nuevo f l anco de subi da del SC ( r el oj ser i al ) .
El ci r cui t o i nt er no i ncor por ado chequea l a val i dez de al gunas ent r adas y cuent a el nmer o de f l anco de subi da de l a seal SC. El dat o ser t r ansf er i do desde el r egi st r o despl azador al cor r espondi ent e r egi st r o de conf i gur aci n, si sl o si el f l anco de subi da 16 ha si do det ect ado en el r el oj ser i al ( SC) . Despus del deci mosext o f l anco de subi da, se debe act i var l a seal SE ( habi l i t aci n ser i al ) .
La habi l i t aci n de l a seal SE i ndi ca que ha t er mi nado l a conf i gur aci n del r egi st r o.
En l a f i gur a si gui ent e se nuest r a el t i empo m ni mo necesar i o que el dat o debe est ar est abl e ant es de un f l anco de subi da de SC en el bus ser i al .
La t r ansmi si n de l a conf i gur aci n a t r avs de l a i nt er f az del bus de 3 cl aves se empi eza por el bi t ms si gni f i cat i vo ( MSB) hast a el bi t menos si gni f i cat i vo ( LSB) . Cada paquet e de t r ansmi si n t i ene l a si gui ent e conf i gur aci n:
9
Registros internos
Las car act er st i cas pr i nci pal es de t r anscept or son conf i gur adas por medi o de l a i nt er f az bus de 3 cabl es y r egi st r os i nt er nos ( A, B, C) . Como l a f r ecuenci a de desmodul aci n, l a habi l i t aci n del r el oj , l a f r ecuenci a de dat o, et c. puede ser pr ogr amado. Los pr i mer os 2 bi t s D15 y D14 det er mi nan el acceso a l os r egi st r os A, B o C a t r avs de l a si gui ent e t abl a de ver dad:
Los 3 r egi st r os son r el l enado por l os dat os A13 a A0, B13 a B0 o C13 a C0 de acuer do a l os val or es del l os bi t s de 15 y 14.
El registro A
Est e r egi st r o es usado par a est abl ecer el modo del t r anscept or ( modo emi sor , modo r ecept o y modo st and- by) y sel ecci onar l a f r ecuenci a de r ecepci n.
Se accede al r egi st r o con l o si gui ent e val or es de en l os bi t 15 y 14:
D15 = 0 D14 = 0
For mat o de l os dat os:
10 Control de modo:
Cuando es 0, est e bi t per mi t e el cont r ol de l os 3 modos de f unci onami ent o del t r anscept or y l a act i vaci n del chi p par a ser di r i gi do medi ant e l os pi n15 ( RxTx) y el pi n1 ( EN) . Cuando es 1, el cont r ol de l os modos de f unci onami ent o y de act i vaci n son di r i gi dos medi ant e l os bi t s A10 y A11. En est e modo l os pi nes 15 y el pi n 1 no t i enen ef ect o.
Modo de control con el pin15 y pin1:
En est e modo el t r anscept or puede ser apagado, encendi do y conf i gur ado en modo emi sor o r ecept or como se expl i ca en l a si gui ent e t abl a y f i gur a:
Di agr ama de t i empo par a el cont r ol con l os pi nes RxTx y EN
Control de reloj:
Est e bi t i ndi ca si act i var o no el r el oj i nt er no del XE1201A. Cuando es 1, el r el oj si empr e est a cor r i endo en cual qui er caso de l os est ados del chi p act i vo ( bi t A11 cuando A13=1 o pi n1 cuando A13=0) . Cuando es 0, l a act i vi dad del r el oj es det er mi nada por el bi t ( A11) .
Activar el chip:
Cuando es cer o, t odas l as seal es del XE1201A est n desact i vadas ( except o el r el oj si el bi t A12 est a a 1) . Si n embar go el bus de 3 cabl es puede ser pr ogr amado en modo 11 desact i vado mi ent r as Vdd est e pr esent e. Est e bi t r empl aza el Chi p Enabl e ( pi n1) when A13=1.
RXTX:
Modo r ecept or / emi sor . Cuando es 1, el t r anscept or es conf i gur ado como r ecept or y en modo t r ansmi sor cuando val e 0. Est e bi t r eempl aza el RxTx ( pi n15) cuando A13=1.
Sync off Est os bi t s son usados en apl i caci ones cuando el si ncr oni zador no es necesar i o.
1) El r ecept or est en modo nor mal per o se i gnor a el demodul ador . La sal i da I y Q est n habi l i t adas en el pi n 19 y pi n18 r espect i vament e. El val or A9 a A6 debe ser :
2) El r ecept or est en modo nor mal per o el si ncr oni zador de bi t i nt er no est par ado. Los dat os si n t r aza ( en br ut o) est n di sponi bl es en el pi n19 ( RXD) . El CLKD ( pi n18) es i nsi gni f i cant e. En est e modo, el pr embul o no es r equer i do par a el si ncr oni zador de r el oj del si ncr oni zador de bi t as que el t i empo m ni mo de r eavi var el r ecept or es accesi bl e. Los val or es de A9 a A6 deben ser conf i gur ados como en l a t abl a si gui ent e:
Frecuencia de recepcin:
Est os bi t s son usado par a conf i gur ar el si ncr oni zador de bi t a l a f r ecuenci a de dat o de acuer do a l a si gui ent e f r mul a:
Donde el val or de n es un deci mal si si gno de l os bi t A5( MSB) a A0.
Not a: Cuando el si ncr oni zador de bi t est a en bypassed, no es necesar i o pr ogr amar l a f r ecuenci a del dat o. Los dat os 12 son r emodul ados consecuent ement e a f r ecuenci a de dat o de ent r ada.
El registro B
Est e r egi st r o es usado par a aj ust ar l a f r ecuenci a cent r al dur ant e l a t r ansmi si n. Se accede a t r avs:
D15 = 0 D14 = 1
For mat o de l os dat os:
Frecuencia de offset. Est os bi t s pueden ser usados par a cal i br ar l a f r ecuenci a cent r al de osci l aci n.
Bits de test. Est os bi t s son sol o par a pr oposi t o de t est . Debe ser conf i gur ado a 0.
El registro C
Est e r egi st r o es usado par a l a f r ecuenci a de desmodul aci n, est abl ece l os val or es de l a ampl i f i caci n, aj ust e de pot enci a de l a t r asmi si n y ot r as f unci ones auxi l i ar es. Es accedi do con:
D15 = 1 D14 = 0
13
Potencia de salida en la transmisin. Puede ser aj ust ada con el pi n13 y pi n12
Dato invertido en bit. Las t r amas de dat os r eci bi das est n i nver t i das si el bi t est 1.
Bit de test. Est os bi t s deben est ar si empr e conf i gur ados a C10 = 1 y C9 = 0
Habilitar el amplificador de salida transmitido. Cuando es cer o, est a desact i va est a f unci n.
Bit de dato trasmitido (TXD). Est e bi t r epl aza el pi n 17 ( TXD) cuando el bi t 13 del r egi st r o A es conf i gur ado a 1 y as per mi t e una t r ansmi si n de dat o medi ant e el bus 3 cabl e.
Desviacin de frecuencia. Est os bi t s son usado par a aj ust ar l a desvi aci n de f r ecuenci a del modul ador .
Al act i var el t r anscept or l os r egi st r os son i ni ci al i zados con l os si gui ent es val or es:
Cont r ol pi ns. El r el oj par ado. Fr ecuenci a de r ecepci n a 16 KHz DR= 16 bi t s/ s. PA = - 12dBm. Fdev = +/ - 125kHz.
14 Sincronizador de bit en modo receptor
El desmodul ador i nt er no del XE1201A necesi t a un dat o de 20 bi t s si ncr oni zado par a asegur ar un cor r ect o r el oj si ncr oni zado. El dat o de si ncr oni zaci n debe ser una secuenci a de 0 y 1 envi ado al t er nat i vament e.
A cont i nuaci n se i l ust r a con dos f i gur a l a r ecepci n de dat os con si ncr oni zador de bi t o bypassed.
bypassed
si ncr oni zador de bi t 15 1.1 Envo de un bit contino
En est a et apa se r eal i z l a compr obaci n del cabl e el abor ado par a l a comuni caci n por l a i nt er f az bus de 3 cabl es, el cont r ol del modo de f unci onami ent o y de l a act i vaci n de l as pl acas a t r avs de l os i nt er r upt or es.
Las car act er st i cas de conf i gur aci n del t r anscept or se r eal i zar n a t r avs del bus 3 cl aves. Sl o se conf i gur a el r egi st r o A, l os r egi st r os B y C se mant endr n con l os val or es i ni ci al es de l a pl aca, ya que cont r ol an al gunos par met r os que no cont r ol amos.
El ni co r egi st r o que modi f i car emos ser el A par a compr obar l a f unci n del cdi go ensambl ador de cont r ol a l a t r ansmi si n ser i e de conf i gur aci n del t r anscept or . La conf i gur aci n de l os r egi st r os es l a si gui ent e:
reg 13 12 11 10 9 8 7 6 5 4 3 2 1 0 A 0 1 0 0 0 0 0 0 1 1 0 0 0 0 B 0 0 0 0 0 0 0 0 0 0 0 0 0 0 C 0 1 0 1 0 1 0 0 1 0 0 0 0 0 Tabla 1 Despus de encender y haber si do conf i gur ado por el mi cr ocont r ol ador , el t r anscept or est en el est ado si gui ent e: modo de cont r ol a t r avs de l as l neas RxTx( pi n15) y EN ( pi n1) , el r el oj act i vo, f r ecuenci a de dat os 1 kbi t s/ s, pot enci a de sal i da - 5dBm, at enuaci n de l a pot enci a de ent r ada al ci r cui t o, y desvi aci n de f r ecuenci a a 125 kHz. Li st o par a r ecept or o emi sor .
Tr as habl ar de l o que se va r eal i zar , y l a conf i gur aci n de l os r egi st r os se coment ar el cdi go necesar i o par a est a et apa.
Pr i mer o se coment ar l a conf i gur aci n de l os puer t os par a l a comuni caci n del pi c con el t r anscept or y vi cer sa.
En est a et apa el puer t o A se conf i gur ar con l os 3 bi t menos si gni f i cat i vo ( LSB) como ent r ada:
PORTA0: es el que cont r ol a el est ado de f unci onami ent o de l a pl aca, - 1: El t r anscept or act i vo. - 0: El t r anscept or desact i vado
PORTA1: Se i ndi ca el modo de f unci onami ent o - 1: modo t r ansmi sor . - 0: modo r ecept or . 16
PORTA2: el val or que di sponga est e puer t o se t endr en cuent a cuando el modo de f unci onami ent o de l a pl aca RF est en t r ansmi sor . El val or del puer t o se t r ansmi t i r par a el r ecept or . Los val or es que puede t omar est e puer t o son obvi os al hacer un bi t ( 0 o 1) .
La r i st r a de conf i gur aci n del puer t o A es en bi nar i o 0 0111 y en hexadeci mal 07
La conf i gur aci n del puer t o B es mer ament e par a l a comuni caci n ent r e el pi c y el t r anscept or . En l a t abl a se i ndi ca l os pi ns del cabl e de conexi n de l a i nt er f az de l a pl aca RF con el puer t o B del pi c:
Nombre de la linea Pin Interfaz placa Pin del puerto B Estado del pin puerto b TXD 1 0 Sal i da RxTx 10 1 Sal i da EN 8 2 Sal i da DE 6 3 Sal i da RXD 5 4 Ent r ada SC 4 5 Sal i da CLKD 3 6 Ent r ada SD 2 7 Sal i da
De l a ant er i or t abl a se ext r ae l a r i st r a bi nar i a 0101 0000 par a l a conf i gur aci n del puer t o, o en hexadeci mal , 50h.
Al saber l a conf i gur aci n de l os puer t os se i l ust r a a cont i nuaci n di cha conf i gur aci n en el ensambl ador del pi c.
17
Se puede obser var en el cdi go que se ha puest o una i ni ci al i zaci n al puer t o B, cuyo val or en bi nar i o es 0000 1010. El si gni f i cado de l a r i st r a, I NI , es que l as l i neas RxTx y De est a act i vada.
El r egi st r o TRANS es un r egi st r o de 2 byt es que nos ser vi r par a al macenar l a conf i gur aci n de l os r egi st r os que se t r ansmi t i r por l a i nt er f az del bus ser i e de 3 cabl es ( 3- wi r e ser i al bus) . Se usa est e r egi st r o de 16 en cont r a de uno de 8 bi t par a no pr oduci r r et r aso en l a t r ansmi si n por el puer t o ser i e.
Las et i quet as Asup y Ai nf r epr esent a l a conf i gur aci n de r egi st r o de est ado A que se coment ant er i or ment e ( t abl a 1) .
La et i quet a CONT r epr esent a l a di r ecci n del r egi st r o CONT que se coment a post er i or ment e su f unci onami ent o en el cdi go.
A cont i nuaci n se muest r a el cdi go que pr epar a el r egi st r o TRANS con l os val or es cor r espondi ent es par a l a t r ansmi si n a l a pl aca RF. La t r ansmi si n se r eal i zar con ;; SIMBOLOS E EQU 3 SC EQU 5 SD EQU 7 BIT3 EQU 3 CLKD EQU 6 TXD EQU 0 RXD EQU 4 RxTx EQU 1 EN EQU 2
CONFA EQU 07h CONFB EQU 50h ; Configuracin del puerto B ASup EQU 10h ; Mitad superior del registro A de xemics AInf EQU 30h ; Mitad inferior del registro A de xemics
;estado inicial del puerto B INI EQU 0Ah
;Registros Generales utilizados TRANS EQU 0Ch ;tamao 2
CONT EQU 0Eh
org 0 goto inicio org 5
; configuramos el puerto B, interfaz con la placaRF BSF STATUS,RP0 MOVLW CONFB MOVWF TRISB MOVLW CONFA MOVWF TRISA BCF STATUS,RP0 ; inicializamos el puerto B MOVLW INI MOVWF PORTB 18 l a f unci n t r ansmi t i r que se habl ar de el l a ms del ant e de est a memor i a.
En el cdi go de ut i l i za un modo de di r ecci onami ent o i ndi r ect o par a est abl ecer l os val or es de TRANS.
Si gui endo el cdi go or i gi nal vi ene el bucl e pr i nci pal del pr ogr ama que i nt er act a con el usuar i o, i ndi cado el usuar i o el f unci onami ent o, modo de f unci onami ent o y cuando est o no habi l i t ado el t r anscept or .
Lo ms r el evant e del cdi go es cuando el t r anscept or se encuent r a en modo r ecept or no se mi r a el val or del puer t o PORTA2, debi do a que no va ser t r ansmi t i do.
A cont i nuaci n es expone el cdi go de l a f unci n t r ansmi t i r que se quedo ant es si n habl ar de el l a:
; t r ansmi t i mos el r egi st r o A MOVLWTRANS MOVWF FSR MOVLWASup MOVWF I NDF I NCF FSR, F MOVLWAI nf MOVWF I NDF CALL t r ansmi t i r Begin BTFSC PORTA, 0 ; Se habilita o no el circuito? GOTO UNO BCF PORTB, EN ; inhibe el circuito GOTO SIG2 UNO BSF PORTB, EN ; se habilita el circuito SIG BTFSS PORTA,1 ; Se configura en el modo de ejecucin GOTO TRANSIM BSF PORTB, RxTx GOTO SIG2 TRANSIM BCF PORTB, RxTx BTFSC PORTA, 2 GOTO UNO1 BCF PORTB, TXD GOTO SIG2 UNO1 BSF PORTB, TXD SIG2 GOTO begin 19
Como sabemos ya en est e punt o l a conf i gur aci n del t r anscept or se r eal i za a t r avs de l os r egi st r os A, B, C y se t r ansmi t e por l e bus ser i al de 3 cabl es ( 3- wi r e ser i al bus) . Las l neas que se i nvol ucr an en est e bus son SC ( r el oj ser i al ) , SD ( dat o ser i al ) , DE ( dat o habi l i t ado) de l a i nt er f az de l a pl aca RF.
Se usa de nuevo un modo de di r ecci onami ent o i ndi r ect o par a t ener acceso a l os val or es que se van a t r ansmi t i r .
Lo pr i mer o que r eal i za l a f unci n es est abl e DE a ni vel baj o i ndi cando al t r anscept or que est amos en un ci cl o de conf i gur aci n y r eset ea el val or del cont ador CONT a cer o.
La t r ansmi si n se comi enza por el byt e ms si gni f i cat i vo ( MSB) y por el MSb ( bi t ms si gni f i cat i vo) .
Tr as envi ar l os 8 bi t s que es cont r ol ado por el cont ador CONT se t r ansmi t e el segundo byt e del r egi st r o A. Al t er mi nar l a t r ansmi si n del l t i mo byt e se act i va l a seal DE par a conf i r mar al t r anscept or que l a conf i gur aci n del r egi st r o A se ha t er mi nado.
transmitir MOVLW TRANS MOVWF FSR BCF PORTB,E ; Duerme el dispositivo CLRF CONT ; Reinicia contador
B1 BCF PORTB,SC ; Conmutar a bajo el reloj RLF INDF,F ; Rotar a izquierda TRANS BCF PORTB,SD ; Poner seal de envo a cero BTFSC STATUS,C ; Enviar un 1 ? BSF PORTB,SD ; Pone seal de envo a uno BSF PORTB,SC ; Conmutar a alto el reloj INCF CONT,1 ; Contar rotaciones realizadas BTFSS CONT,BIT3 ; Se ha rotado 8 veces ? GOTO B1 ; No, volver a empezar CLRF CONT ; Si, reiniciar contador INCF FSR,F ; Siguiente byte
Ant es de comuni car cual qui er dat o ent r e l as pl acas se hace necesar i o cr ear un pr ot ocol o de t r ansmi si n que adems deber ser pr obado i ni ci al ment e con dos PI CS conect ados f si cament e par a descar t ar posi bl es pr obl emas en el manej o de l as pl acas y cent r ar nos ni cament e en el al gor i t mo.
Se ha escogi do el pr ot ocol o RS232 por ser el ms f ami l i ar al haber t r abaj ado con l pr evi ament e. Al t r at ar se de una pr i mer a ver si n y en est e caso i ni ci al , se modi f i c par a que f uese l o bast ant e l ent o como par a poder obser var vi sual ment e su f unci onami ent o y l a t r ansmi si n en cur so.
Li nea = Li nea comuni caci n Cont = Cont ador 21 Nt ese que el pr ogr ama no empi eza ant es de 12 mar cos de bi t s, est a esper a t an l ar ga l a ut i l i zar emos par a asegur ar que no se empi eza a pr ocesar en medi o de l a t r ansmi si n de un byt e.
2.1 Material
Las pr uebas del pr ot ocol o se r eal i zan conect ando con un cabl e al guno de l os conect or es del puer t o A de dos PI CS, dej ando ent er ament e l i br e el B par a poder most r ar con l os l eds el est ado de l a t r ansmi si n. En el r ecept or , adems, se empl ea el di spl ay l ed de 7 segment os i ncor por ado en l as t ar j et as de ent r enami ent o par a most r ar l a codi f i caci n del nmer o envi ado.
Los dos pr i mer os swi t chs cont r ol an el f unci onami ent o de l as pl acas. El RA0 deci de si el ci r cui t o est act i vado y el RA1 en qu modo l o hacen.
0 Tr ansmi sor 1 Recept or
2.2 Algoritmo
La i mpl ement aci n del pr ogr ama hace uso de i nt er r upci ones par a cont r ol ar el t i empo que ha de t ar dar un mar co de bi t . Como st os dur an 833 mi l i segundos y necesi t amos desbor dar var i as veces el t i mer cal cul ando ml t i pl os de 64 mi l i segundos, podemos r esumi r l os val or es que necesi t a t omar el cont ador segn l a par t e del pr ogr ama.
Desbor dami ent os: 01 - Esper a st ar t bi t = 64 ms 19 - Leer pr i mer BI T = 833 + 833/ 2 ms 13 - Lect ur a de bi t s = 833 ms
RSI MOVWF Temp ; Guardamos W DECFSZ Contador,1 ; Decrementa contador. Contador = 0? GOTO SEGUIR ; Si contador != 0 ir a Seguir MOVLW 01h ; Continuar cede el paso MOVWF Continuar
SEGUIR MOVLW V_TIMER0 MOVWF TIMER0 ; Recarga TMR0 BCF INTCON,TOIF ; Borra bandera de interrupcin BSF INTCON,TOIE ; Rehabilita interrupcin RTIE MOVFW Temp ; Restaura W RETFIE ; Repone GIE y Retorna
END 22 La i nt er r upci n l o ni co que hace una vez l anzada, es decr ement ar un cont ador que f i j a cunt as veces ha de desbor dar se el t i mer ant es de poner a uno el bi t de Cont i nuar , con l o cual l a f unci n r et ar dar conocer el t i empo que ha de r et r asar se segn el val or que l e demos a di cho cont ador .
De hecho, como est a es l a ni ca par t e del pr ogr ama donde i nt er esa conser var i nt er r upci ones, l a pr opi a subr ut i na se encar ga de act i var l as i nt er r upci ones ant es de ent r ar y desact i var l as al sal i r .
Par a l l amar l a, l o ni co que se necesi t a es que se l e pase en el r egi st r o W el t i empo que ha de esper ar en ml t i pl os de 64 mi l i segundos.
La l ect ur a de dat os se r eal i za desde una f unci n espec f i ca que r eal i za t odas l as t ar eas necesar i as par a capt ar el bi t .
Como quer emos t ener un dupl i cado del byt e envi ado, se i nser t an l os bi t s uno a uno en un r egi st r o empezando por l a i zqui er da. Segn sea un uno o un cer o, se col oca en el bi t de desbor dami ent o de STATUS par a que l a f unci n de r ot aci n l o col oque al f i nal de l a var i abl e.
RETARDAR movwf Contador ; Tiempo espera (x64ms) clrf Continuar
BANCO1 movlw b'00000111' movwf OPCION BANCO0 movlw V_TIMER0 ; Desbordar cada 64 ms movwf TIMER0 movlw b'10100000' movwf INTCON ; Activa GIE y TOIE
LOOP1 btfss Continuar,0 ; Esperar seal de continuar goto LOOP1
movlw 00h movwf INTCON ; Activa GIE y TOIE TMR0 LEER btfsc LINEA_IN ; Mirar la LINEA_IN goto LEER1 ; Poner un 1 bcf STATUS,0 ; Poner un 0 rrf Dato,1 ; Rotamos y lo cargamos return
LEER1: bsf STATUS,0 ; Ponemos bit en STATUS,0 rrf Dato, 1 ; Rotamos sin cambiar W incf C_Paridad,1 ; Incrementar contador de paridad return 23 El al gor i t mo i ni ci al del r ecept or es l a i mpl ement aci n di r ect a del di agr ama puest o al pr i nci pi o de est a secci n.
En cuando al emi sor , si gue l a secuenci a expuest a en est a pgi na.
Dur ant e l a cr eaci n del pr ot ocol o, t ant o emi sor como r ecept or f uer on desar r ol l ados por et apas.
En l a pr i mer a se el udi er on l os bi t s de par i dad. El emi sor envi aba un byt e pr ogr amado y el r ecept or al r ecoger l o, l i mpi aba el puer t o B y vol caba el byt e r econoci do.
Luego se aadi el cont r ol de er r or es con un bi t de par i dad y se envi ar on var i os byt es en cadena. El obj et i vo er a obser var posi bl es pr obl emas al r eci bi r una t r ansmi si n cont nua de byt es, l a r ecepci n cor r ect a del r est o de dat os cuando se encend a el r ecept or en medi o de una t r ansmi si n y l a det ecci n de er r or es cuando desconect bamos dur ant e un t i empo el cabl e de dat os par a si mul ar una al t er aci n de l a seal .
Li nea = Li nea comuni caci n Cont = Cont ador Cont Par = Cont ador de par i dad 24 3 Comunicacin por radiofrecuencia
Despus de depur ar el pr ot ocol o de comuni caci n, se pr ocede a uni r el cdi go de conf i gur aci n de l as pl acas y el de l a t r ansmi si n, as , donde ant es t en amos una uni n f si ca con l os cabl es ent r e l os pi cs, ahor a t enemos l as t er mi nal es RxD y TxD de l as pl acas t r anscept or as.
Se conect an l as pl acas si gui endo l os pasos de l a secci n 4 sobr e uso r pi do. Luego se r epi t en l os pasos de compr obaci n que se r eal i zar on cuando l a conexi n er a f si ca.
Una vez sol uci onados t odos l os i nconveni ent es sur gi dos, se deci de ampl i ar l a f unci onal i dad de l as pl acas ut i l i zando el t ecl ado al f anumr i co, par a que esper e en un bucl e l a pul saci n de una t ecl a que deci di r el byt e a envi ar . Como se devuel ve el cdi go deci mal , se necesi t a const r ui r una t abl a que l os t r aduzca al di spl ay de 7 segment os que se ut i l i zar par a most r ar l os dat os.
Como consecuenci a del uso compl et o del puer t o B, no se puede most r ar i ndef i ni dament e el byt e r eci bi do por el di spl ay, as que se r ecur r e a l a f unci n RETARDAR del pr ot ocol o par a most r ar l o un cor t o t i empo mi ent r as se deshabi l i t a el r ecept or . CODIGONUMERO MOVLW high CODIGONUMERO MOVWF PCLATH MOVF POS, W ADDWF PCL, 1
retlw 3Fh ; cdigo del 0 retlw 06h ; cdigo del 1 retlw 5Bh ; cdigo del 2 retlw 4Fh ; cdigo del 3 retlw 66h ; cdigo del 4 retlw 6Dh ; cdigo del 5 retlw 7Dh ; cdigo del 6 retlw 07h ; cdigo del 7 retlw 7Fh ; cdigo del 8 retlw 67h ; cdigo del 9
RETLW 77h ; A RETLW 7Ch ; B RETLW 39h ; C RETLW 5Eh ; D RETLW 79h ; E RETLW 71h ; F 25 4 Indicaciones de uso rpido
Est os son l os pasos a segui r par a empezar a usar i nmedi at ament e l as pl acas con l os pr ogr amas i ncl ui dos.
1. Car gar el pr oyect o i ncl u do en final.hex o compi l ar l o de l as f uent es par a car gar l o en dos pl acas de l abor at or i o con el pi c 16F84.
2. Conect ar al zcal o de ampl i aci n un conect or adapt ado par a i nt r oduci r l os cabl es necesar i os del conect or de l a pl aca. Sumi ni st r ar a l as t ar j et as t r anscept or as una t ensi n de 3, 5 vol t i os y uni r sus t i er r as con l a de l as pl acas. Por l t i mo se debe asegur ar que se conect an adecuadament e l as l neas por donde se t r ansmi t en l os dat os. I ni ci al ment e l a l nea de r ecepci n est i ncl ui da en el zcal o, per o l a t r asmi sor a se conect a a l a pat a TxD de l as pl acas.
3. En l a pl aca dest i nada a ser l a r ecept or a, conmut ar l os dos pr i mer os swi t chs del puer t o a ( RA0 y RA1) a uno, y en l a t r ansmi sor a conmut ar el pr i mer o a uno y el segundo a 0. El pr i mer o i ndi ca que se desea act i var l as pl acas y el segundo el modo baj o el que f unci onar n.
4 Pul sar en el t ecl ado al f anumr i co una t ecl a, a cont i nuaci n se t r ansmi t i r por r adi of r ecuenci a en un pl azo de 13, 3 segundos el byt e pul sado. En el di spl ay de 7 segment os de l a r ecept or a j ust o ant es de most r ar se el byt e, se act i var el punt o par a a cont i nuaci n, exhi bi r se dur ant e 1, 5 segundos l a t ecl a pul sada.
Nt ese que como el pr ot ocol o de comuni caci ones se i ncl uye en f or ma de l i br er a, st e puede mej or ar se si endo l os cambi os t r anspar ent es par a el pr ogr ama pr i nci pal si empr e y cuando se r espet en l as f unci ones expor t adas en el i ncl ude.
El pr oyect o ocupa l a mayor par t e de l os puer t os, de hecho ocupa t odo el puer t o B sal vo el RB4 y del A sol ament e coge el RA4. Si n embar go, cuando no t r ansmi t e, se puede poner en suspensi n l a pl aca y mi ent r as t ant o, t odo el puer t o B queda l i br e.
Si se necesi t ase cambi ar l as l neas por donde se comuni can l os dat os, exi st e una macr o par a que est o pueda r eal i zar se si n pr obl emas.
26 5 Ampliaciones
Se pr oponen di ver sos pr oyect os par a l os que se pueden ut i l i zar est as pl acas.
1. I nt er f az ent r e per i f r i cos del or denador como r at ones, t ecl ados o pl acas de adqui si ci n de dat os. Como l as seal es son di gi t al es, se pueden usar di r ect ament e l as pat as emi sor as y r ecept or as de l as pl acas, adems, l a comuni caci n puede ser en dos sent i dos.
2. Cont r ol y/ o moni t or i zaci n de di sposi t i vos r emot os.
3. I mpl ement aci n de pr ot ocol os espec f i cos par a comuni caci ones i nal mbr i cas, con cont r ol de er r or es y ver i f i caci n de t r amas.
4. El pr ot ocol o act ual no apr ovecha el r el oj par a l eer l os dat os envi ados, ni cambi a di nmi cament e de f unci n par a el cont r ol de er r or es. 27 6 Ficheros
Programa 1: Protocolo de comunicacin
Esta es la implementacin de la versin simple del protocolo RS232 adaptada ya para ser usado como una librera usando memoria dinmica.
;; PROTOCOLO RS232 simple ;; ;; Programa que lee el bit que llega por una LINEA y lo procesa segn ;; las normas RS232. Trabaja con un periodo de 833ms. Espera start bit ;; escaneando cada 64ms ;; ;; Transmisor:: El retardar va despus de escribir en la lnea ;; Receptor:: El retardar va antes de leer la lnea ;; ;; Jos Carlos Ruiz Luque ;; Francisco Garca Rodrguez ;; ;; NOTAS ;; El programa principal ha de controlar que los puertos esten ;; configurados correctamente como entrada o salida
;; Clculos para el contador ;; ;; 832ms = 256x13x (TMR0 = 256 - 250,30048) ;; ;; Cuenta para esperar Sync = 100
GLOBAL Dato, Eviar, TRANSMITIR, ESTADO, RECIBIR, RSI, Contador, Continuar, RETARDAR
udata ;; VARIABLES Contador res 1 ; Estado del circuito Temp res 1 ; Continuar res 1 ; Numero ledo Veces res 1 ; Variable para RSI Eviar res 1 ; BYTE enviado C_Paridad res 1 ; Contador de paridad Dato res 1 ; BYTE recibido Recepcion res 1 ; Indica si hubo un error ESTADO res 1
ts2 code
28 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; RETARDAR ;; ;; Recoge en W el tiempo que pone en espera el micro en mltiplos de ;; 64 milisegundos ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RETARDAR movwf Contador ; Tiempo espera (x64ms) clrf Continuar
movlw V_TMR0 ; Desbordar cada 64 ms movwf TMR0 movlw b'10100000' movwf INTCON ; Activa GIE y TOIE TMR0
LOOP1 btfss Continuar,0 ; Esperar seal de continuar goto LOOP1
;; Deshabilitar interrupciones movlw 00h movwf INTCON ; Desactiva GIE y TOIE TMR0 return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Leer :: Lee el dato de la linea y lo pone al final de Dato despus ;; de desplazarlo. ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; LEER btfsc LINEA_IN ; Mirar la LINEA_IN goto LEER1 ; Poner un 1 bcf STATUS,0 ; Poner un 0 rrf Dato,1 ; Rotamos y lo cargamos return
LEER1: bsf STATUS,0 ; Ponemos bit en STATUS,0 rrf Dato, 1 ; Rotamos sin cambiar W incf C_Paridad,1 ; Incrementar contador de paridad return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; TRANSMITIR :: Transmite el byte contenido en la variable Eviar ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; TRANSMITIR clrf C_Paridad bsf LINEA_OUT movlw 0E1h ; Esperar 833x15 ms call RETARDAR
;; Start bit bcf LINEA_OUT movlw 0Dh ; Esperar 833 ms call RETARDAR 29
;; Bit de paridad btfss C_Paridad,0 ; Paridad? goto T_PAR ; PAR bsf LINEA_OUT ; IMPAR goto T_FIN
T_PAR bcf LINEA_OUT
T_FIN movlw 0Dh ; Esperar 833 ms call RETARDAR
MOVLW 06h MOVWF Eviar
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; RECIBIR :: Recoge el byte enviado por LINEA_IN y lo guarda en Dato ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; RECIBIR movlw 9Dh ; Veces que debera desbordarse movwf Veces clrf C_Paridad ; Resetear bit de paridad
EST01 ;; Estado 01 -- Espera start bit movlw 01h ; Esperar 64 ms call RETARDAR decfsz Veces,1 ; Decrementa Veces goto A01 ; An no es 0 incf Veces,1 ; Ya es 0 A01 btfsc LINEA_IN ; Linea ha pasado a 0? goto EST01 ; An no decfsz Veces,1 ; Si, Ha durado lo suficiente? goto RECIBIR ; No
EST02 ;; Estado 02 -- Saltar start bit y leer primer dato movlw 14h ; Esperar 833+833/2 ms (20d) 30 call RETARDAR call LEER movlw 07h ; Ahora tomaremos otros 7 bits movwf Veces
EST03 ;; Estado 03 -- Leer 7 bits restantes movlw 0Dh ; Para esperar 833 ms (13d) call RETARDAR call LEER decfsz Veces,1 ; Ledo un byte? goto EST03 ; No
bsf PORTB,7
;; Estado 04 -- Leer bit de paridad movlw 0Dh ; Para esperar 833 ms (13d) call RETARDAR
;; Comprobar bits de paridad btfsc LINEA_IN goto IMPAR ; Linea = 1 PAR btfss C_Paridad,0 ; Linea = 0 goto BIEN goto MAL
IMPAR Btfsc C_Paridad,0 goto BIEN
MAL movlw 00h goto OK
BIEN movlw 01h
OK movwf ESTADO
return
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; Rutina de Servicio a la Interrupcin. Estados: ;; ;; 01 - Espera start bit 64 ms ;; 19 - Leer primer BIT 833 + 833/2 ms ;; 13 - Lectura de bits 833 ms ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
RSI MOVWF Temp ; Guardamos W DECFSZ Contador,1 ; Decrementa. Contador = 0? GOTO SEGUIR ; Si contador != 0 ir a Seguir MOVLW 01h ; Continuar cede el paso MOVWF Continuar
SEGUIR MOVLW V_TMR0 MOVWF TMR0 ; Recarga TMR0 BCF INTCON,T0IF ; Borra bandera de interrupcin BSF INTCON,T0IE ; Rehabilita interrupcin RTIE MOVFW Temp ; Restaura W RETFIE ; Repone GIE y Retorna
END 31 Programa 2: Programa principal
Est e es el pr ogr ama pr i nci pal con el que se conf i gur an l as pl acas y se env an t odos l os car act er es i nt r oduci dos por el t ecl ado.
;; PROTOCOLO RS232 simple ;; ;; Programa que lee el bit que llega por una LINEA y lo procesa segn ;; las normas RS232. Trabaja con un periodo de 833ms. Espera start bit ;; escaneando cada 64ms ;; ;; Jos Carlos Ruiz Luque ;; Francisco Garca Rodrguez
;; SIMBOLOS para configurar las placas E EQU 3 ; Validar dato SC EQU 5 ; Reloj serial SD EQU 7 ; Lnea transmisin serial BIT3 EQU 3 ; CLKD EQU 6 ; Reloj TXD EQU 0 ; Salida de datos RXD EQU 4 ; Entrada de datos RxTx EQU 1 ; Modo transmisor/receptor EN EQU 2 ; Habilitar placa
;; Configuraciones para los registros de las placas CONFA EQU 03h CONFB EQU 50h ; Configuracin del puerto ASup EQU 10h ; Mitad superior del registro A de xemics AInf EQU 30h ; Mitad inferior del registro A de xemics INI EQU 08h ; Configuracin inicial del puerto B
udata ;; Registros Generales utilizados TRANS RES 2 ; Configuracion de 16 bits de la placa CONT RES 1 ; Contador para los 8 bits BACK RES 1 ; Guarda la configuracion del puerto B
32 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; CODIGONUMERO ;; ;; Convierte un un nmero binario a su correspondiente codificacin ;; en el display de 7 segmentos. Utiliza W como variable de entrada y ;; salida ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; CODIGONUMERO MOVLW high CODIGONUMERO MOVWF PCLATH MOVF POS, W ADDWF PCL, 1
retlw 3Fh ; cdigo del 0 retlw 06h ; cdigo del 1 retlw 5Bh ; cdigo del 2 retlw 4Fh ; cdigo del 3 retlw 66h ; cdigo del 4 retlw 6Dh ; cdigo del 5 retlw 7Dh ; cdigo del 6 retlw 07h ; cdigo del 7 retlw 7Fh ; cdigo del 8 retlw 67h ; cdigo del 9
RETLW 77h ; A RETLW 7Ch ; B RETLW 39h ; C RETLW 5Eh ; D RETLW 79h ; E RETLW 71h ; F ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; ESCRIBIR ;; ;; Vuelca el byte recibido en el display de 7 segmentos y espera 1,5 s ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ESCRIBIR BANCO1 ; Guarda la configuracin del puerto B movfw TRISB movwf BACK clrf TRISB BANCO0
movfw Dato movwf PORTB movlw 17h call RETARDAR
BANCO1 movfw BACK movwf TRISB BANCO0 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
33 INICIO
;; Configuramos el puerto B, interfaz con la placa RF BANCO1 MOVLW CONFB MOVWF TRISB MOVLW CONFA MOVWF TRISA BANCO0
;; Inicializamos el puerto B MOVLW INI MOVWF PORTB DISABLEPLACA
;; Transmitimos el registro A MOVLW TRANS MOVWF FSR MOVLW ASup MOVWF INDF INCF FSR, F MOVLW AInf MOVWF INDF CALL transmitirConf
BEGIN ;; Se habilita o no el circuito BTFSC PORTA, 0 GOTO UNO DISAB LEPLACA ; inhibe el circuito GOTO BEGIN
UNO ;; Se configura en el modo de ejecucin del transceptor SIG BTFSS PORTA,1 GOTO TRANSIM
bsf PORTB, RxTx ; Funcionamiento Receptor ENABLEPLACA ; se habilita el circuito
call RECIBIR call ESCRIBIR
GOTO BEGIN
TRANSIM
Escanear call Key_Scan movlw 80h SUBWF Tecla, w btfss STATUS, 0 goto TCOD ; Ha leido algo btfsc STATUS, 2 goto E scanear
bcf PORTB, RxTx ; Se configura como emisor ENABLEPLACA ; Se Activa la placa call TRANSMITIR ; Se transmite el Dato DISAB LEPLACA ; Se desactiva la placa bcf PORTB, TXD GOTO BEGIN
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;; CONFIGURACION :: Transmitir en serie configuracin de las placas ;; ;; Enva mitad superior y luego inferior del registro de ;; configuracin de las placas a un ritmo de 5us cada ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; transmitirConf MOVLW TRANS MOVWF FSR BCF PORTB,E ; Comienza la configuracin de la placa CLRF CONT ; Reinicia contador
B1 BCF PORTB,SC ; Conmutar a bajo el reloj RLF INDF,F ; Rotar a izquierda TRANS BCF PORTB,SD ; Poner seal de envo a cero BTFSC STATUS,C ; Enviar un 1 ? BSF PORTB,SD ; Pone seal de envo a uno BSF PORTB,SC ; Conmutar a alto el reloj INCF CONT,1 ; Contar rotaciones realizadas BTFSS CONT,BIT3 ; Se ha rotado 8 veces ? GOTO B1 ; No, volver a empezar CLRF CONT ; Si, reiniciar contador INCF FSR,F ; Siguiente byte