Con la idea de aclarar dudas y comenzar con un proyecto sencillo realizo la siguiente introduccion donde especifico el compilador a utilizar.
Serial PIC
La interfaz entre los dispositivos electrónicos utilizados es mediante comunicación asincrónica RS-232, cada equipo trabaja con distinta velocidad de transmisión así como diferente tecnología y protocolo de enlace, denotando que la comunicación entre los componentes es la parte más compleja del sistema desarrollado.
La interfaz RS-232 es el estándar más usado en las comunicaciones seriales, enlaza dos dispositivos conectando la línea transmisora de un equipo con la línea receptora del otro.
Ambos terminales pueden conversar simultáneamente (full duplex), además, puede haber líneas de protocolo destinadas a controlar las comunicaciones, pero su implementación varía ampliamente y no se utiliza en muchos casos.
El enlace RS-232 envía señales de tensión por las líneas, con referencia a tierra, dispone de un alcance máximo de 15 metros entre equipos y un amplio rango de velocidades de transmisión de datos.
RS-232 permite agregar o borrar bits al tren de datos seriales, los bits que se emplean son de inicio, parada y paridad, además son controladas independientemente la transmisión, recepción, estados de línea, configuración de datos e interrupciones.
Las características de la interfaz serie son totalmente programables y emplea los siguientes parámetros:
1. 6, 7 u 8 bits por carácter.
2. Detección de paridad par, impar o no paridad.
3. Generación de 1, 1.5 o 2 bits de parada.
4. Generación de velocidades altas de transmisión.
COMPATIBILIDAD
Cuando se intenta comunicar dos dispositivos usando la interfaz RS-232, se deben cuidar 4 aspectos de compatibilidad entre los sistemas:
1. La designación funcional de los dispositivos (DTE o DCE).
2. La velocidad de la transferencia de los datos (bit por segundo o baudios).
3. El formato de los datos, es decir, bits de inicio, paridad, y parada.
4. Las líneas de control que usan ambos dispositivos.
VELOCIDAD DE TRANSMISIÓN
Uno de los parámetros más importantes que se deben establecer correctamente entre los dos dispositivos que se comunican a través de una interfaz es la velocidad de transferencia de los datos.
La única norma de datos utilizado en aplicaciones computacionales es el código
ASCII (American Estándar Code for Information Interchange), este es un código de 7 bits que puede representar hasta 128 caracteres separadamente, existen 96 caracteres imprimibles y 32 caracteres de control.
Aunque se utilizan 7 bits para representar un carácter ASCII, se usan comúnmente 8 bits, el octavo bit es designado como un bit de paridad y se utiliza para chequear los errores que pudieran producirse entre la creación de un string y su lectura, siempre se pone a (1L) o (0L) de modo que el número total de bits 1L es siempre par o impar. Si por ejemplo, se selecciona paridad par y se detecta un número impar de bits 1L en el byte del carácter transmitido, este byte debe contener un error.
La adición del bit de paridad al byte de datos es un mecanismo simple para aumentar la confiabilidad de los datos transferidos. Este bit es generado por el controlador asincrónico y es chequeado por el receptor, el cual debería ser configurado para un formato de datos similar al del transmisor. El chequeo de la paridad no es parte de la norma RS-232 y debe ser parte del software que se utilice en la comunicación. Las posibilidades de paridad en la transferencia de datos es la siguiente:
• Ninguna.- No se incluye paridad en el byte transferido.
• Par.- Se agrega un bit al byte total de modo que el carácter completo incluyendo los bits de partida término, información y de paridad tenga un número par de bits.
• Impar.- El string completo tiene un número impar de bits.
• Uno.- Se agrega siempre un bit 1L a todos los caracteres transferidos.
• Cero.- Se agrega un 0L a todos los caracteres transferidos.
El compilador PicBasic Pro (PBP) es un lenguaje de programación que permite realizar rápidamente programas en micro controladores PIC. El lenguaje Basic es más fácil de leer y escribir, además como es un compilador real los programas se ejecutan mucho más rápido.
El PBP permite programar una variedad de micro controladores de diferente número de pines y que disponen de convertidores A/D, temporizadores y puertos seriales.
PBP genera programas sobre la base de un PIC con un cristal de 4 Mhz. Todas las instrucciones asumen un tiempo de 1 microsegundo para sus retardos y los comandos para transmisión serial disponen de baud rate exactos.
Para utilizar otro oscilador se debe indicarle al PBP que cambie los parámetros que no son los encontrados por defecto, con el siguiente comando:
@ device XT_OSC 20 ;Oscilador de 20 MHz tipo cristal
DEFINE OSC 20
Los programas que se desarrollan en esta aplicación tienen como base la comunicación serial asincrónica y para este propósito el programa PBP es de mucha ayuda, ya que se puede emplear una sola instrucción para ejecutar la comunicación serial con un dispositivo, además la salida o entrada de datos se efectúa por el pin que se especifique y no es necesario utilizar driver RS-232 debido a que PBP puede invertir la señal de los bits.
Para la comunicación con el receptor Computador el comando ejecutado es el SERIN y SERIN2 y la transmisión SEROUT y SEROUT2.
SERIN y SERIN 2
Con estos comandos se puede recibir datos asincrónicamente por determinado pin, la instrucción tiene la estructura compuesta por:
“SERIN2Data pin, Mode,[datos] o SERIN2 Data pin, Mode,[datos]””
• Data pin.- Es el pin seleccionado como entrada
• Mode.: Utilizado para especificar el baud rate y los parámetros de operación de la transferencia serial.
• Datos: Es la información recibida
El parámetro Mode se emplea para especificar el baud rate y los parámetros de operación de la transferencia serial, para encontrar su valor se resuelve la ecuación:
Mode = (1000000/baud rate)-20
El valor decimal encontrado se convierte a número binario, posteriormente se completan los bits que corresponden a los demás parámetros de comunicación como sigue:
Los 13 bits de menor orden seleccionan el baud rate
El bit 13 selecciona paridad ó no paridad.
• Si el bit13=1 equivale a paridad par
• Si el bit13=0 equivale a sin paridad
El bit 14 selecciona el nivel de los pines de datos y de control de flujo.
• Si el bit 14=0, los dato se reciben en forma normal y se utiliza drivers RS-
232.
• Si el bit 14=1, los datos se reciben invertidos evitando emplear drivers RS-
232
El bit 15 no se utiliza.
Una vez completados los 15 bits se convierten a número decimal y se coloca en la instrucción.
SEROUT y SEROUT2.
SEROUT Pin, Mode, [Item [, Item...}] o SEROUT2 Pin, Mode, [Item [, Item...}]
Envía uno ó más Ítems a Pin, en formato estándar asincrónico usando 8 bits de datos sin paridad y 1 stop bit (8N1) .
Pin es automáticamente colocado como salida. Pin puede ser una constante, 0 - 15, ó una variable que contenga un número de 0-15 (p.ej. B0) ó un número de Pin (p.ej. PORTA.0)
Los nombres Mode (p.ej. T2400) están definidos en el archivo MODEDEFS.BAS.
Para los, se agrega la línea:
Include “modedefs.bas” al comienzo de su programa PBP.
Se puede realizar comunicacion sin la MAX 232 con PBP configurando el Mode a "N" por ejemplo N9600 en el caso que deseemos transmitir utilizaremos una resistencia de 330 Ohms en el pin del pic que realizara la operacion, en cuanto a la recepcion nos valdremos de un resisitencia alta 2.2 K Ohms conectada al resipectivo pin del pic que urtilizaremos.