Haz una pregunta
  Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos
Foros Registrarse ¿Olvidaste tu contraseña?

Temas similares

13/10/2010 #1

Avatar de yoelmicro

Receptor trasmisor de IR protocolo NEC.
Bueno he aquí otra herramienta para poder ver los comandos y el identificador de un control remoto por infrarrojos del tipo NEC.
Me decidí a este proyecto por la gran escala de uso de este protocolo por parte de los Chinos actualmente, lo utilizan donde quiera por decirlo así.
Todos los Dvd, Tv, Hdd Player, Home Teatre y equipos de audio fabricados por ellos la mayoría utilizan protocolo NEC por su alcance a números de equipos actual.
Existen dos tipos de protocolo NEC, ellos son:
El Estándar y Custom. En el primero trasmiten la dirección + su complemento y comando + su complemento pudiendo direccionar 256 dispositivos con 256 comandos diferentes; En el segundo caso trasmiten 2 bytes de dirección y mantienen el estándar en los comandos, es decir, trasmiten el comando + su complemento, de esta forma extienden aun mas los dispositivos a direccionar a un total de 65536 asegurándose de que ningún dispositivo responda al remoto inadecuado, solo imaginen tener 65536 posibilidades en equipos de la casa.
El primer software fue para un 12x508x pero no soportaba el protocolo custom y cuando lo desarrolle no me cavia, por eso es que utilice 12x509x y no actualice el circuito porque lo único que lo diferencia es la capacidad de programa. También publico el fuente para que tomen ideas de cómo está realizado, en estos momentos me encuentro sumándole protocolos RCA, SONY, RC5, SHARP y JVC; Un ejemplo de cómo detectar que tipo de protocolo entra seria por su cabecera, más exactamente midiendo su tiempo:
;################################################# ############################

DETEC BTFSC GPIO,PINRX

GOTO COMPCW
BTFSC GPIO,DATINP ;Espero por la trasmisión del IRC
GOTO $-3 ;para comenzar a detectar el protocolo.
;-----------------------
MOVLW 34 ; Demoro 480uS para testear la cabecera
MOVWF TMR0 ; del protocolo Sharp.
BTFSS TMR0, BIT_6 ; Salto si encuentro un 1 después de este
GOTO $-1 ; tiempo a la lectura del IRC SHARP
BTFSC GPIO, DATINP ; si no sigo verificando.
GOTO IRRSHP ; Salto a la lectura de protocolo SHARP
;-----------------------
MOVLW 11 ; Cargo el valor en el TIMER para contar
MOVWF TMR0 ; aproximadamente 848uS para detectar
BTFSS TMR0, BIT_6 ; el protocolo RC5.
GOTO $-1 ; Salto si encuentro un 1 en la DATA
BTFSC GPIO, DATINP ; pues es el primer BIT de start
GOTO IRRRC5 ; que ya ha pasado, de lo contrario sigo.
;-----------------------
MOVLW 42 ; Cargo el valor en el TIMER para contar
MOVWF TMR0 ; aproximadamente 1376uS para detectar
BTFSS TMR0, BIT_7 ; el protocolo SONY
GOTO $-1 ; Salto si encuentro un 1 en la DATA
BTFSC GPIO, DATINP ; pues es la cabecera
GOTO IRRSNY ; que ya ha pasado, de lo contrario sigo.
;-----------------------
CLRF TMR0 ; Limpio el TIMER.
MOVF TMR0, W ; Lo cargo en el acumulador para poderlo
XORLW 206 ; comparar cuando transcurrió 3296uS.
BTFSS STATUS, Z ; Salto si encuentro un 1 en la DATA
GOTO $-3 ; pues es la cabecera
BTFSC GPIO, DATINP ; que ya ha pasado, de lo contrario sigo.
GOTO IRRRCA ; Salto a la subrutina de RCA.
;-----------------------
CLRF TMR0 ; Limpio el TIMER.
MOVF TMR0, W ; Lo cargo en el acumulador para poderlo
XORLW 255 ; comparar cuando transcurrió 4080uS.
BTFSS STATUS, Z ; Salto si encuentro un 1 en la DATA
GOTO $-3 ; pues es la cabecera
BTFSC GPIO, DATINP ; que ya ha pasado, de lo contrario sigo.
GOTO IRRJVC ; Salto a la subrutina de JVC
;################################################# ############################
Bueno dejemos de explicar y veamos su empleo.
Por default arranca en modo recepción y devolverá los bytes mandados con el formato siguiente:
ID=00FF
CM=CD32
Ready
Si pulsamos W; (Con mayúscula siempre); Entonces entrara en modo trasmisor y luego de mandar la palabra (oK) esperara por que entremos los 4 bytes necesarios, el formato de estos son:
ID; Custom o ID Negado; CM y CM negado.
Cada vez que ejecuta una función devolverá la palabra Ready; En cualquier momento podremos cambiar de W a R o viceversa devolviendo el mismo la palabra oK.
La configuración del puerto serie es a 1200, 8, N, 1 y pueden usar cualquier programa terminal para emplearlo.
Espero les sea de utilidad.
Respuesta
¿Tienes una mejor respuesta a este tema? ¿Quieres hacerle una pregunta a nuestra comunidad y sus expertos? Registrate

Foros de Electrónica » Diseño digital » Microcontroladores y sistemas embebidos

Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2017, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO ©2011, Crawlability, Inc.