Hola amigos, espero me puedan ayudar...
Estoy tratando de leer la información de un puerto serial mediante un pic... pero no lo logro.... me explico :
Tengo un DVR, con una salida RS485, a esta salida le he conectado un conversor RS485/RS232
http://www.bestsecurityperu.com/portal/index.php?route=product/product&product_id=375
Al final tengo un puerto serial RS232 que sale del DVR gracias al conversor... lo que necesito es leer lo que envía el DVR que son señales para el PTZ (Protocolo PELCO-D), el DVR ya esta configurado los bauds y demás opciones :
Configuración en el DVR
********************
Protocolo : PELCO-D
Baud rate : 9600
Data bit : 8
Stop bit : 1
Verify : ODD
Address : 1
Auto cruise : OFF
El PIC16F628 que va recibir la información del DVR, el programa en PICBasic Pro es este.
Y no logro que funcione. Adjunto diagrama del circuito.
PICBasic Pro
Aqui se explica como funciona el protocolo PELCO-D
http://www.commfront.com/RS232_Examples/CCTV/Pelco_D_Pelco_P_Examples_Tutorial2.HTM#3
En verdad mucho les agradece me des luces que que esta mal en mi programa...
Desde ya muchas gracias.
Martin.
Estoy tratando de leer la información de un puerto serial mediante un pic... pero no lo logro.... me explico :
Tengo un DVR, con una salida RS485, a esta salida le he conectado un conversor RS485/RS232
http://www.bestsecurityperu.com/portal/index.php?route=product/product&product_id=375
Al final tengo un puerto serial RS232 que sale del DVR gracias al conversor... lo que necesito es leer lo que envía el DVR que son señales para el PTZ (Protocolo PELCO-D), el DVR ya esta configurado los bauds y demás opciones :
Configuración en el DVR
********************
Protocolo : PELCO-D
Baud rate : 9600
Data bit : 8
Stop bit : 1
Verify : ODD
Address : 1
Auto cruise : OFF
El PIC16F628 que va recibir la información del DVR, el programa en PICBasic Pro es este.
Y no logro que funcione. Adjunto diagrama del circuito.
PICBasic Pro
Código:
@ DEVICE XT_OSC, MCLR_OFF, PWRT_ON, WDT_OFF, LVP_OFF,PROTECT_OFF
include "modedefs.bas"
DEFINE OSC 4
' ////**** Setup PortA ****////
D_Bus var PortA
TE var D_Bus.4
Ser_Pin var D_Bus.5
D_Bus = %00010000
TrisA = %00100000
CMCON = 7
' ////**** Setup PortB ****////
A_Bus Var PortB ' PortB = encoder 8-bit address bus
A_Bus = $00 ' Power up encoder address bus = 0
TrisB = $00 ' PortB = outputs
' ////**** Set Baud Rate ****////
Baud con 16572 ' Define serial baud-rate = 4800 N,8,1
' ////**** Utility Variables ****////
stx Var byte
stx = $00
adr Var byte
adr = $00
cmd1 Var byte
cmd1 = $00
cmd2 Var byte
cmd2 = $00
dat1 Var byte
dat1 = $00
dat2 Var byte
dat2 = $00
chks Var byte
chks = $00
tmp Var byte
tmp = $00
'ESTE ES MI PROBLEMA... NO LOGRO QUE RECIBA LOS DATOS... INICIO
Begin:
serin2 PORTA.5,Baud,5000,Re_Set,[WAIT($FF),stx,adr,cmd1,cmd2,dat1,dat2,chks]
'SEGUN DEFINICION DE PELCO-D LA SUMA DE adr,cmd1,cmd2,dat1,dat2 DEBE SER
'IGUAL chks CON ESTO DEBERIA PASAR... PERO NADA
tmp = adr + cmd1 + cmd2 + dat1 + dat2
if (tmp <> 0) and (tmp = chks) then goto RUTINA
goto BEGIN
'ESTE ES MI PROBLEMA... NO LOGRO QUE RECIBA LOS DATOS... FIN
Re_Set:
high TE
goto Begin
goto Begin
'RUTINA QUE DEBE HACER UNA VEZ QUE RECIBA LA SEÑAL DEL PUERTO RS232
'.................................
end
http://www.commfront.com/RS232_Examples/CCTV/Pelco_D_Pelco_P_Examples_Tutorial2.HTM#3
En verdad mucho les agradece me des luces que que esta mal en mi programa...
Desde ya muchas gracias.
Martin.
Adjuntos
Última edición por un moderador: