Si además quieres enviarnos un Artículo para el Blog y redes sociales, pulsa el siguiente botón:
Hola.
Necesito sacar datos digitales (0's y 1's) al mundo exterior del PC para, de esta manera, poder sacar bytes enteros (de 00000000b a 11111111b) y poder conmutar (1) y descomutar (0) toda una serie de relés.
He estado probando a través del puerto paralelo en modo EPP (Libro "Parallel Port Complete" de Jon Axelson), pero ahora, después de haberme funcionado la placa que había diseñado, la BIOS no me deja conmutar el modo EPP 1.9 (es posible que haya sido al cambiar la placa base del PC, que es donde reside la ROM BIOS).
En su día hice una placa electrónica que se insertaba en el Bus ISA (y también me funcionaba). Pero ahora ese bus ha desaparecido (al menos mi ordenador actual no tiene este SLOT, sino el PCI). Por lo que tendría que empezar a diseñar de nuevo la placa de expansión ISA, pero para PCI.
He pensado también en transmitir los bits o bytes por el puerto serie pero carezco de conocimientos tecnológicos suficientemente consolidados como para implementar la recepción de esos datos y llevar esos bits recibidos a la base del transistor que conmute un relé. Esta tarjeta tendría que, NO solo recibir datos, sino también transmitirlos al PC por el puerto serie (instrucciones IN y OUT en Ensamblador para el 80x86).
La programación de la UART en el lado del PC lo tengo solucionado (soy programador en Ensamblador y ya he hecho alguna que otra transmisión (y recepción) a través de este puerto.
Lo que necesito es una tarjeta interface entre los relés y:
- Puerto serie o
- Puerto paralelo (mode EPP/ECP) o
- Slot PCI.
a la que se le pueda transmitir los datos.
Cabría la posibilidad de montar más de 8 relés por lo que habría que contemplar la coexistencia de dos placas iguales. Es decir, montar un decodificador o mandar primero el número del grupo de relés y luego el dato.
Existe algo en el mercado ?.
O hay algún ingeniero por aquí que me la pudiera diseñar ?.
O alguna empresa especializada ?.
Pagaría el trabajo previo presupuesto.
Mi Email es:
citfem arroba gmail punto com
Gracias anticipadas y saludos.
Hay muchas formas de hacerlo:
Lo mas sencillo es usando registros de desplazamiento, y unas pocas señales de control. De esta forma no se necesita micro en la parte externa del PC. Puede hacerse usando las señales de control CTS/RTS/CDC etc del puerto serie y una placa similar a esta mia de 64 entradas y 64 salidas: http://heli.xbot.es/ampliacion/ampliacion.htm " onclick="window.open(this.href);return false;
Un poco mas complejo pero bastante estándar es usando el puerto serie y un micro. Se programaría a través la api de comunicaciones estándar de windows. Puede usarse un protocolo diseñado a medida para la comunicación o uno estándar (MODBUS).
Usar un micro con USB y un puerto serie virtual en el usb, el resto como si fuera serie. Es mas universal y trabajaría incluso en un netbook sin puerto serie (solo usb).
Para MODBUS existen soluciones comerciales: http://www.advantech.com.tw/ia/newsletter/Modbus_page2.htm " onclick="window.open(this.href);return false;
También existen módulos de I/O para modbus/tcp que trabaja sobre ethernet.
Advantech también tiene placas I/O digitales y analógicas PCI.
Según la aplicación yo me decantaría por placas o módulos advantech o la solución micro con USB.
Si necesitas mas ayuda puedes mandarme un privado.
Hola.
No estoy en casa. Por lo que voy a ser breve.
He estado mirando por encima tu enlace http://heli.xbot.es/ampliacion/ampliacion.htm " onclick="window.open(this.href);return false; pero me parece que esa placa está diseñada para un PIC (16F84 o similar). Podría valarme, pero prefiero que sea sin micro, por lo que habría que hacer latransformación (creo).
En cuanto a la egunda opción (uso de API de Windows), preferiría no usar Windows. Usaré otro sistema operativo tipo MS-DOS (sSi. Ya sé que no se lleva, pero la plac es para so personal (standard y/o universal)). En este caso, no me importaría que llevara un micro.
Estarías dispuesto (tienes conocimientos electrónicos) a hacer tú dichos cambios ?.
Estamos en contacto.
Saludos y gracias por tu ayuda.
Si no vas a usar Windows, entonces mucho mejor!!
Es mucho mas facil controlar el hardware directamente desde MSDOS, DRDOS o similar (realmente el acceso al hardware es directo, el SO no interviene para nada. Windows interfiere en el input output y hay que usar su API...).
En ese caso la mejor solución es usar mi placa http://heli.xbot.es/ampliacion/ampliacion.htm " onclick="window.open(this.href);return false;
No esta diseñada para PIC, realmente funciona con cualquier micro que tenga 3 ó 4 pines de salida libres para las salidas y 2 pines de salida más 1 de entrada libres para las entradas. En conjunto con 4 pines de salida y 1 de entrada (o 3 pines de salida y uno bidireccional) bastaría para controlar las 64 entradas y las 64 salidas (o mas si se encadenan mas módulos).
En origen yo la utilizaba con un intel i8051, llamarla "ampliación para pic" es debido a que el pic es mas popular hoy en día, si digo apliación para i8051 nadie sabe de que hablo.
Para conectarla a un PC puede usarse el puerto paralelo directamente, o el puerto serie con transreceivers RS232 (para adaptar los niveles de tensión). En cualquier caso el control es igual, a través de input / output a los puertos de entrada/salida adecuados 0x378, 0x278 ó 0x3f8, 0x2f8
Como te comenté mándame un privado y hablamos mas del tema.
Vale. Te mando un privado.
Por cierto.....he leido tu firma......Que razón tienes. Enhorabuena por ella.
Saludos.