<?xml version="1.0" encoding="ISO-8859-1"?><article xmlns:mml="http://www.w3.org/1998/Math/MathML" xmlns:xlink="http://www.w3.org/1999/xlink" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<front>
<journal-meta>
<journal-id>1405-7743</journal-id>
<journal-title><![CDATA[Ingeniería, investigación y tecnología]]></journal-title>
<abbrev-journal-title><![CDATA[Ing. invest. y tecnol.]]></abbrev-journal-title>
<issn>1405-7743</issn>
<publisher>
<publisher-name><![CDATA[Universidad Nacional Autónoma de México, Facultad de Ingeniería]]></publisher-name>
</publisher>
</journal-meta>
<article-meta>
<article-id>S1405-77432014000200005</article-id>
<title-group>
<article-title xml:lang="es"><![CDATA[Teclado con protocolo de comunicación universal aplicado a máquina de CNC]]></article-title>
<article-title xml:lang="en"><![CDATA[Keyboard with Universal Communication Protocol Applied to CNC Machine]]></article-title>
</title-group>
<contrib-group>
<contrib contrib-type="author">
<name>
<surname><![CDATA[Mejía-Ugalde]]></surname>
<given-names><![CDATA[Mario]]></given-names>
</name>
<xref ref-type="aff" rid="A01"/>
</contrib>
</contrib-group>
<aff id="A01">
<institution><![CDATA[,Universidad Autónoma de Querétaro Facultad de Ingeniería ]]></institution>
<addr-line><![CDATA[ ]]></addr-line>
</aff>
<pub-date pub-type="pub">
<day>00</day>
<month>06</month>
<year>2014</year>
</pub-date>
<pub-date pub-type="epub">
<day>00</day>
<month>06</month>
<year>2014</year>
</pub-date>
<volume>15</volume>
<numero>2</numero>
<fpage>209</fpage>
<lpage>220</lpage>
<copyright-statement/>
<copyright-year/>
<self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_arttext&amp;pid=S1405-77432014000200005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_abstract&amp;pid=S1405-77432014000200005&amp;lng=en&amp;nrm=iso"></self-uri><self-uri xlink:href="http://www.scielo.org.mx/scielo.php?script=sci_pdf&amp;pid=S1405-77432014000200005&amp;lng=en&amp;nrm=iso"></self-uri><abstract abstract-type="short" xml:lang="es"><p><![CDATA[Este artículo, describe el uso de un protocolo de comunicación universal para teclado industrial basado en un microcontrolador aplicado a una máquina de control numérico por computadora (CNC). La diferencia principal entre los fabricantes de teclados es que cada fabricante tiene su propia programación de código fuente, produciendo un protocolo de comunicación diferente, generando una interpretación inadecuada de las funciones establecidas. Lo anterior crea que los teclados comerciales industriales sean costosos e incompatibles en su conexión con diferentes máquinas. En el presente trabajo el protocolo permite conectar el teclado universal diseñado y un teclado normal de la PC al mismo tiempo, este es compatible con todas las computadoras a través de la comunicación USB, AT o PS/2, para emplearse en máquinas de CNC, con extensión a otras máquinas como robots, soplado, máquinas de inyección, entre otras. Entre las ventajas de este diseño se encuentran: la fácil reprogramación, disminución de costos, manipulación de diversas funciones de máquina y facilidad de expandir las señales de entrada y salida. Los resultados obtenidos de las pruebas de funcionamiento fueron satisfactorios, debido a que cada tecla tiene la facilidad de programarse y reprogramarse de diferentes maneras, generando distintas funciones de códigos, dependiendo de la aplicación donde se requiera utilizar.]]></p></abstract>
<abstract abstract-type="short" xml:lang="en"><p><![CDATA[This article describes the use of a universal communication protocol for industrial keyboard based microcontroller applied to computer numerically controlled (CNC) machine. The main difference among the keyboard manufacturers is that each manufacturer has its own programming of source code, producing a different communication protocol, generating an improper interpretation of the function established. The above results in commercial industrial keyboards which are expensive and incompatible in their connection with different machines. In the present work the protocol allows to connect the designed universal keyboard and the standard keyboard of the PC at the same time, it is compatible with all the computers through the communications USB, AT or PS/2, to use in CNC machines, with extension to other machines such as robots, blowing, injection molding machines and others. The advantages of this design include its easy reprogramming, decreased costs, manipulation of various machine functions and easy expansion of entry and exit signals. The results obtained of performance tests were satisfactory, because each key has the programmed and reprogrammed facility in different ways, generating codes for different functions, depending on the application where it is required to be used.]]></p></abstract>
<kwd-group>
<kwd lng="es"><![CDATA[microcontrolador]]></kwd>
<kwd lng="es"><![CDATA[teclado]]></kwd>
<kwd lng="es"><![CDATA[USB]]></kwd>
<kwd lng="es"><![CDATA[AT]]></kwd>
<kwd lng="es"><![CDATA[PS/2]]></kwd>
<kwd lng="es"><![CDATA[protocolo]]></kwd>
<kwd lng="en"><![CDATA[microcontroller]]></kwd>
<kwd lng="en"><![CDATA[keyboard]]></kwd>
<kwd lng="en"><![CDATA[USB]]></kwd>
<kwd lng="en"><![CDATA[AT]]></kwd>
<kwd lng="en"><![CDATA[PS/2]]></kwd>
<kwd lng="en"><![CDATA[protocol]]></kwd>
</kwd-group>
</article-meta>
</front><body><![CDATA[ <p align="center"><font face="verdana" size="4"><b>Teclado con protocolo de comunicaci&oacute;n universal aplicado a m&aacute;quina de CNC</b></font></p>              <p align="center"><font face="verdana" size="2">&nbsp;</font></p>              <p align="center"><font face="verdana" size="3"><b>Keyboard with Universal Communication Protocol Applied to CNC Machine</b></font></p>              <p align="center"><font face="verdana" size="2">&nbsp;</font></p>              <p align="center"><font face="verdana" size="2"><b>Mej&iacute;a&#45;Ugalde Mario</b></font></p>              <p align="center"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><i>Facultad de Ingenier&iacute;a, Universidad Aut&oacute;noma de Quer&eacute;taro, Correo:</i> <a href="mailto:mmu92@hotmail.com">mmu92@hotmail.com</a>.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2">Informaci&oacute;n del art&iacute;culo: recibido: noviembre de 2012    <br>     Reevaluado: febrero de 2013    ]]></body>
<body><![CDATA[<br>     Aceptado: abril de 2013</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Resumen</b></font></p>              <p align="justify"><font face="verdana" size="2">Este art&iacute;culo, describe el uso de un protocolo de comunicaci&oacute;n universal para teclado industrial basado en un microcontrolador aplicado a una m&aacute;quina de <i>control num&eacute;rico por computadora</i> (CNC). La diferencia principal entre los fabricantes de teclados es que cada fabricante tiene su propia programaci&oacute;n de c&oacute;digo fuente, produciendo un protocolo de comunicaci&oacute;n diferente, generando una interpretaci&oacute;n inadecuada de las funciones establecidas. Lo anterior crea que los teclados comerciales industriales sean costosos e incompatibles en su conexi&oacute;n con diferentes m&aacute;quinas. En el presente trabajo el protocolo permite conectar el teclado universal dise&ntilde;ado y un teclado normal de la PC al mismo tiempo, este es compatible con todas las computadoras a trav&eacute;s de la comunicaci&oacute;n USB, AT o PS/2, para emplearse en m&aacute;quinas de CNC, con extensi&oacute;n a otras m&aacute;quinas como robots, soplado, m&aacute;quinas de inyecci&oacute;n, entre otras. Entre las ventajas de este dise&ntilde;o se encuentran: la f&aacute;cil reprogramaci&oacute;n, disminuci&oacute;n de costos, manipulaci&oacute;n de diversas funciones de m&aacute;quina y facilidad de expandir las se&ntilde;ales de entrada y salida. Los resultados obtenidos de las pruebas de funcionamiento fueron satisfactorios, debido a que cada tecla tiene la facilidad de programarse y reprogramarse de diferentes maneras, generando distintas funciones de c&oacute;digos, dependiendo de la aplicaci&oacute;n donde se requiera utilizar.</font></p>              <p align="justify"><font face="verdana" size="2"><b>Descriptores:</b> microcontrolador, teclado, USB, AT, PS/2, protocolo.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Abstract</b></font></p>              <p align="justify"><font face="verdana" size="2">This article describes the use of a universal communication protocol for industrial keyboard based microcontroller applied to computer numerically controlled (<i>CNC</i>) machine. The main difference among the keyboard manufacturers is that each manufacturer has its own programming of source code, producing a different communication protocol, generating an improper interpretation of the function established. The above results in commercial industrial keyboards which are expensive and incompatible in their connection with different machines. In the present work the protocol allows to connect the designed universal keyboard and the standard keyboard of the PC at the same time, it is compatible with all the computers through the communications USB, AT or PS/2, to use in CNC machines, with extension to other machines such as robots, blowing, injection molding machines and others. The advantages of this design include its easy reprogramming, decreased costs, manipulation of various machine functions and easy expansion of entry and exit signals. The results obtained of performance tests were satisfactory, because each key has the programmed and reprogrammed facility in different ways, generating codes for different functions, depending on the application where it is required to be used.</font></p>              <p align="justify"><font face="verdana" size="2"><b>Keywords:</b> microcontroller, keyboard, USB, AT, PS/2, protocol.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2"><b>Introducci&oacute;n</b></font></p>              <p align="justify"><font face="verdana" size="2">El teclado es uno de los elementos m&aacute;s importantes dentro de la automatizaci&oacute;n de maquinaria, por medio de este, el operador introduce las &oacute;rdenes de trabajo que la m&aacute;quina debe realizar o el usuario puede editar el programa general que controla la m&aacute;quina. Sin embargo, en el mercado existe una gran variedad de fabricantes de teclados industriales, y cada uno tiene una forma diferente de comunicar sus teclados a las m&aacute;quinas, en algunos casos se tienen que instalar controladores especiales al ordenador para que pueda admitirlo o reconocerlo al conectarlo y muchas veces estos teclados no son compatibles entre s&iacute;, es decir, en caso de que un teclado ya instalado &nbsp;falle, &nbsp;no &nbsp;se &nbsp;podr&aacute;&nbsp; remplazar &nbsp;por &nbsp;otro &nbsp;de &nbsp;diferente &nbsp;fabricante, &nbsp;ya que no suelen tener la misma configuraci&oacute;n del protocolo de comunicaci&oacute;n (Garc&iacute;a, 2009).</font></p>              <p align="justify"><font face="verdana" size="2">De acuerdo con los avances tecnol&oacute;gicos, la industria de procesos requiere sistemas con mayor cantidad de elementos o mecanismos que puedan controlarse de una forma m&aacute;s f&aacute;cil, confiable y eficaz; por esta raz&oacute;n, se pens&oacute; en dispositivos m&aacute;s aut&oacute;nomos como es el uso de microcontroladores y la PC para el control. En el mercado encontramos diferentes fabricantes de teclados como son: Rafi, Schurter, Click Touch, Storm, Beltronic, Indukey, Siemens, Devlink, Ikey, Hitra, Hid y Cti; sin embargo, aunque existen algunas innovaciones y dise&ntilde;os nuevos de teclados en el mercado, es dif&iacute;cil encontrar el espec&iacute;fico para un proceso u automatizaci&oacute;n.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Estado del arte</b></font></p>              <p align="justify"><font face="verdana" size="2">La evoluci&oacute;n de los teclados a lo largo de la historia ha cambiado notablemente en las &aacute;reas did&aacute;cticas e industriales (Li, 2006).</font></p>              <p align="justify"><font face="verdana" size="2">Dentro de los trabajos realizados con respecto a los teclados, encontramos algunos art&iacute;culos como el caso de Varela (2002), quien realiza un teclado matricial de 70 casillas, lo que significa que super&oacute; el tama&ntilde;o est&aacute;ndar de 64 casillas (102 teclas) con la intenci&oacute;n de obtener teclas adicionales con funciones espec&iacute;ficas; en su trabajo el microcontrolador PIC16F84A fue insuficiente por el n&uacute;mero reducido de pines (Manual, 2001) seg&uacute;n el manual del microcontrolador y decidi&oacute; utilizar el microcontrolador PIC16F873A. Dom&iacute;nguez <i>et al</i>. (1991) determinaron que la forma m&aacute;s com&uacute;n para reducir el n&uacute;mero de l&iacute;neas necesarias para la conexi&oacute;n en un teclado es una matriz. En cuanto a protocolos de comunicaci&oacute;n encontramos el art&iacute;culo de Su&aacute;rez <i>et al</i>. (2005) quienes desarrollaron una interfaz de comunicaci&oacute;n con la computadora a trav&eacute;s del puerto USB con la alternativa de hacerlo a trav&eacute;s del puerto serie RS232 basados en el Microprocesador MSP430F155.</font></p>              <p align="justify"><font face="verdana" size="2">Por otra parte Li (2006), present&oacute; la realizaci&oacute;n de un teclado m&oacute;vil inal&aacute;mbrico aplicado a la industria, muestra que se puede llevar a cabo un dispositivo m&oacute;vil usando solamente una mano o un indicador como entrada de datos, pero la &uacute;nica desventaja es que utiliz&oacute; un emisor y un receptor, por lo que su protocolo de comunicaci&oacute;n puede funcionar solo para algunas m&aacute;quinas. Navabi (2004), presenta comunicaci&oacute;n serial de un n&uacute;cleo de c&oacute;digo (CORE) del teclado sobre el chip de Altera MAX 700 series EPM7128S PLD en VHDL (<i>Very High Speed Integrated Circuits Hardware Description Language,</i> lenguaje de descripci&oacute;n de hardware para circuitos de alta velocidad)<i>.</i> Dogan (2006), mediante la integraci&oacute;n de los PLD's (<i>Programmable Logic Device</i>, dispositivo l&oacute;gico programable) en micro, present&oacute; la realizaci&oacute;n de un decodificador para el c&oacute;digo ASCII realizado en display alfanum&eacute;rico y elaborado para visualizar los caracteres o n&uacute;meros ingresados por el teclado, que opera como dispositivo de entrada para un CORE (decodificador de ASCII a display alfanum&eacute;rico); Peng y En&#45;Ping (2011), desarrollaron un teclado reuniendo varias letras o c&oacute;digo de ellas en una sola tecla con el m&eacute;todo llamado CyberSwarm.</font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t1">tabla 1</a> muestra una lista de fabricantes que ofrecen diferentes tipos de teclados para aplicaciones espec&iacute;ficas, ocasionando que algunas industrias cambien su sistema de control para adecuarse a ese teclado y conexiones; generando con esto un incremento en el costo. A pesar de la diversidad de los teclados, la desventaja que se tiene radica en el requerimiento de accesorios adicionales y la interconectividad con todos los equipos. Por esta raz&oacute;n se desarrolla la siguiente investigaci&oacute;n.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t1"></a></font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t1.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Propuesta general</b></font></p>              <p align="justify"><font face="verdana" size="2">Lo novedoso de este proyecto es que ofrece un teclado con ciertas caracter&iacute;sticas o ventajas respecto a los comerciales en dos partes: interfaz con el usuario y funciones adicionales. La primera, permite la conexi&oacute;n directa mediante el protocolo de comunicaci&oacute;n USB, AT o PS/2 en todos los ordenadores, sin la necesidad de instalar controladores y software especiales. La segunda, se adapta al tipo de proceso que se requiere automatizar usando funciones adicionales; esto quiere decir que si cambia o aumenta el n&uacute;mero de herramientas o componentes en la m&aacute;quina solo se necesita una sencilla reprogramaci&oacute;n en el protocolo, logrando con esto su f&aacute;cil control.</font></p>              <p align="justify"><font face="verdana" size="2">Teniendo un teclado universal se podr&aacute; aplicar en cualquier m&aacute;quina automatizada, lo &uacute;nico que se necesita cambiar ser&aacute;n las funciones espec&iacute;ficas de algunos caracteres para las diferentes actividades de cada m&aacute;quina; y para su fabricaci&oacute;n se utilizar&aacute;n circuitos integrados programables (PIC) que no son costosos (entre $80 y $100) de f&aacute;cil programaci&oacute;n.</font></p>              <p align="justify"><font face="verdana" size="2">Dentro de las funciones adicionales de este proyecto se pueden programar y reprogramar las teclas para realizar movimientos especiales y generar caracteres aplicados a diferentes actividades en cada m&aacute;quina. Este nuevo dise&ntilde;o cuenta con funciones especiales que son &uacute;tiles en los procesos de maquinado para evitar que cada vez que se remplaza un teclado comercial por otro, se tenga que cambiar la configuraci&oacute;n de los c&oacute;digos que la m&aacute;quina tiene programada.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Desarrollo</b></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#f1">figura 1</a> muestra el&nbsp; diagrama general de protocolo de comunicaci&oacute;n universal para teclado industrial basado en microcontrolador, el microcontrolador permite la comunicaci&oacute;n entre el teclado de la PC y el teclado industrial hacia la computadora mediante el puerto USB o PS/2 (Chung y Chih, 2007), el conector PS/2 se muestra en la <a href="/img/revistas/iit/v15n2/a5f2.jpg" target="_blank">figura 2</a> con los conectores t&iacute;picos de teclados: el conector de 5&#45;pines (AT) y el mini&#45;dinar de 6&#45;pines (PS/2). Ambos conectores transmiten en forma serial los datos y son por completo (el&eacute;ctricamente) similares, la &uacute;nica diferencia pr&aacute;ctica entre los dos es el arreglo de pernos y el tama&ntilde;o; esto significa que los dos tipos de conectores se pueden cambiar f&aacute;cilmente con los adaptadores hard&#45;wired simples.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f1"></a></font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f1.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">En la <a href="/img/revistas/iit/v15n2/a5f2.jpg" target="_blank">figura 2</a> se presenta el protocolo t&iacute;pico para transmisi&oacute;n de datos en teclados, donde la frecuencia del reloj es de 10 a 16.7 Khz. La transmisi&oacute;n de un bit se realiza en la transici&oacute;n positiva del reloj y el dato es enviado dentro de 11 transiciones del reloj. La informaci&oacute;n se env&iacute;a desde el teclado de forma serial usando 11 bits sobre la l&iacute;nea de datos bi&#45;direccional, la l&iacute;nea de datos permanece inactiva (nivel bajo) cuando ni el teclado ni el computador env&iacute;an datos. El tiempo de transici&oacute;n de un pulso positivo a negativo de los datos debe ser por lo menos 5&micro;s (Garc&iacute;a, 2009), el tiempo de una transici&oacute;n de datos que baja, debe ser por lo menos 5&micro;s y no mayor que 25&micro;s. El tiempo de datos de transmisi&oacute;n puede inhibir la comunicaci&oacute;n en cualquier momento usando la l&iacute;nea hacia abajo del reloj, por lo menos 100&micro;s. Si una transmisi&oacute;n se inhibe antes de 11 pulsos del reloj, el dispositivo debe abortar la transmisi&oacute;n actual y prepararse para retransmitir el dato actual. Por ejemplo, si se interrumpe un teclado mientras env&iacute;a el segundo paquete de 8 de un c&oacute;digo de dos bits, necesitar&aacute; retransmitir ambos octetos de ese c&oacute;digo.</font></p>              <p align="justify"><font face="verdana" size="2">El protocolo de comunicaci&oacute;n implementado sigue las reglas que permiten llevar a cabo la comunicaci&oacute;n seg&uacute;n Chung y Chih, (2007) para este dispositivo mediante el puerto f&iacute;sico USB, AT o PS/2 mostrado en la <a href="/img/revistas/iit/v15n2/a5f2.jpg" target="_blank">figura 2</a>.</font></p>              <p align="justify"><font face="verdana" size="2">El diagrama a bloques de la <a href="#f3">figura 3</a> muestra el protocolo de comunicaci&oacute;n que se realiz&oacute; modificando los protocolos de comunicaci&oacute;n existentes para teclado (estructura matricial), pero manteniendo las mismas conexiones y conectores mostrados en la <a href="#f1">figura 1</a>. El protocolo se genera en las siguientes etapas: <i>esc&aacute;neo de teclas y convertidores serie&#45;paralelo</i> que se logra por medio de una se&ntilde;al de activaci&oacute;n mandada desde el microcontrolador cada 20 ms activando todos los circuitos integrados 74LS166 (convertidores serie&#45;paralelo en donde las entradas son de 8 bits y el corrimiento de 1 bit), adquiriendo cada circuito las se&ntilde;ales de 8 bits provenientes de las teclas que posteriormente con una se&ntilde;al de reactivaci&oacute;n pasan los datos uno a uno en forma serial. El bloque de <i>expansi&oacute;n de entradas</i> realiza un corrimiento de forma serial sincr&oacute;nico hacia el microcontrolador y hacia el protocolo de comunicaci&oacute;n.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f3"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f3.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">El m&oacute;dulo <i>protocolo de comunicaci&oacute;n</i> permite la comunicaci&oacute;n bi&#45;direccional del teclado con la computadora. Este a su vez, puede estar conectado al ordenador (PC) que al mismo tiempo est&aacute; conectado a un teclado normal. En el bloque <i>control de secuencias</i> se encuentra el microcontrolador, el cual realiza ciertas funciones de secuencia y control. <i>Expansi&oacute;n de salida</i>, este bloque se realiz&oacute; por medio de los circuitos integrados 74LS199 (convertidores paralelo&#45;serial, el corrimiento de entradas es de 1 bit y las salidas de 8 bits) en donde las salida puede ser desde 8 hasta n salidas (Garc&iacute;a, 2009). <i>Salidas para automatizaci&oacute;n</i> (Ram&iacute;rez <i>et al</i>., 2011<i>),</i> es la &uacute;ltima etapa digital para la automatizaci&oacute;n o para fines deseados, aqu&iacute; es donde se requiere de un opto&#45;acoplamiento si la aplicaci&oacute;n necesita que la informaci&oacute;n sea transmitida entre dos circuitos el&eacute;ctricamente aislados uno de otro. Este aislamiento se puede conseguir mediante relevadores, transformadores de aislamiento y receptores de l&iacute;nea. No obstante, otro dispositivo que se utiliza de manera igualmente efectiva para resolver estos problemas (Kangbin, 2008; Ram&iacute;rez, 2011) es el opto&#45;acoplador, su empleo es muy importante en aplicaciones en las que el aislamiento de ruido, alta tensi&oacute;n y el tama&ntilde;o son caracter&iacute;sticas determinantes.</font></p>              <p align="justify"><font face="verdana" size="2">En la <a href="#f4">figura 4</a> se presenta de manera m&aacute;s detallada la funcionalidad del teclado implementado que consta de tres m&oacute;dulos de registros serie&#45;paralelo, cada uno de 8 entradas digitales, la conexi&oacute;n directa bidireccional del ordenador al microcontrolador y de &eacute;ste al teclado normal; un m&oacute;dulo para expandir entradas, otro para las salidas, y el ultimo m&oacute;dulo usado industrialmente para la automatizaci&oacute;n y control.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f4"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f4.jpg"></font></p>              ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">La <a href="#f5">figura 5</a> muestra las diferentes estructuras digitales programadas en el microcontrolador como son: <i>un contador m&oacute;dulo 3,</i> encargado de activar las l&iacute;neas de selecci&oacute;n de los multiplexores, <i>dos multiplexores de 7 a 1</i> usados para dirigir los bits uno a uno hacia la base de datos, para su posterior almacenamiento<i>, una compuerta xor</i> que es una segunda selecci&oacute;n de datos antes de llegar a la base de las teclas y c&oacute;digos<i>, una base de datos y c&oacute;digo de teclas</i> donde se unen los 8 bits en 20 ms y se da el formato y c&oacute;digo de la tecla oprimida, <i>un b&uacute;fer circular</i> (Kangbin, 2008)donde se realiza la comparaci&oacute;n de los paquetes de 8 bits en tres columnas, como lo muestra la <a href="#t2">tabla 2</a>; si uno de estos paquetes cambia con relaci&oacute;n al que se encuentra en el b&uacute;fer, este entrar&aacute; al b&uacute;fer remplazando el anterior y se sincroniza el microcontrolador mediante <i>m&aacute;quinas de estado</i>.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f5"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f5.jpg"></font></p>              <p align="center"><font face="verdana" size="2"><a name="t2"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t2.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">Una compuerta XOR es un arreglo de tres compuertas b&aacute;sicas AND, OR y NOT que produce una salida '1' l&oacute;gico si sus entradas son diferentes, se emplea un bloque digital XOR as&iacute;ncrono para verificar qu&eacute; tecla(s) se ha(n) activado, para llevar este proceso se toman los valores que contienen los estados actuales y anteriores de las teclas, proporcionados por los registros Q1 y Q2, al aplicar la operaci&oacute;n XOR se genera una bandera de activaci&oacute;n de la <i>tecla presionada</i> (TPS), cabe mencionar que los datos para cada tecla son transmitidos por la l&iacute;nea con etiquetas Q1 y M1 generando la <i>tecla de los datos internos</i> (TDI).</font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t3">tabla 3</a> muestra el programa principal que comienza escalando el reloj para estar sincronizados los datos al realizar la transmisi&oacute;n o recepci&oacute;n de datos con una velocidad de 12 a 20khz, el arranque o reinicio de la m&aacute;quina, la presencia de datos con el esc&aacute;ner de teclas que identifica qu&eacute; tecla presiona y genera el m&eacute;todo de env&iacute;o, recepci&oacute;n o almacenamiento de los datos detectados.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t3"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t3.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t4">tabla 4</a> muestra el programa de escaneo de teclas la cual identifica qu&eacute; tipo de proceso se est&aacute; llevando a cabo, recepci&oacute;n, transmisi&oacute;n o almacenamiento y generar las banderas necesarias para saber qu&eacute; tipo de funci&oacute;n se realiza, si la PC baja el reloj (cero l&oacute;gico) la PC transmite y el teclado recibe, si el teclado baja el reloj (cero l&oacute;gico) entonces el teclado trasmite y la PC recibe los datos.</font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><a name="t4"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t4.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t5">tabla 5</a> muestra la identificaci&oacute;n y concatenaci&oacute;n de la tecla que est&aacute; presionada, la concatenaci&oacute;n es el almacenamiento y el orden de los bits.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t5"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t5.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">El control de tecla se muestra en la <a href="#t6">tabla 6</a>, y esta permite saber los tiempos que una tecla se est&aacute; presionando y a su vez saber si se est&aacute; enviando o recibiendo datos.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t6"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t6.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t7">tabla 7</a> permite enviar los datos de manera serial por el puerto PS/2 en tiempos iguales cuando la bandera tecla_auxiliar esta activada.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t7"></a></font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t7.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t8">tabla 8</a> env&iacute;a los datos, pero aqu&iacute; se reconoce qu&eacute; dato se env&iacute;a, por medio de un contador de 11 bits y banderas activadas.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t8"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t8.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La <a href="#t9">tabla 9</a> recibe el dato que trasmite la computadora al teclado, si la computadora env&iacute;a un error o est&aacute; ocupada haciendo otro proceso, el teclado industrial le pide al b&uacute;fer circular que reenvi&eacute; los datos.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t9"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t9.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">Cuando una computadora inicia el proceso de arranque o de reinicio, esta env&iacute;a datos de reconocimiento a todos los perif&eacute;ricos (teclado, mouse, esc&aacute;ner, pantalla, entre otros); estos perif&eacute;ricos deben recibir los datos almacenarlos e identificarlos para despu&eacute;s contestarle a la computadora (PC). En la <a href="#t10">tabla 10</a> se muestra este proceso.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t10"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t10.jpg"></font></p>              ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">La <a href="#t11">tabla 11</a> identifica qu&eacute; dispositivo est&aacute; trasmitiendo o recibiendo datos mediante un detector o bandera.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t11"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t11.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">La trasmisi&oacute;n de datos de la computadora al teclado y viceversa se realiza a una velocidad de reloj de 1 a 12 khz, si no se env&iacute;an estos datos a esa velocidad la computadora no podr&aacute; almacenarlos, ocasionando un error o que no reconozca el dispositivo (teclado); para esto existe un c&oacute;digo fuente mostrado en la <a href="#t12">tabla 12</a> para bajar o incrementar la frecuencia de reloj dependiendo del cristal de cuarzo o la velocidad de envi&oacute; del microcontrolador.</font></p>              <p align="center"><font face="verdana" size="2"><a name="t12"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5t12.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Experimentaci&oacute;n</b></font></p>              <p align="justify"><font face="verdana" size="2">La implementaci&oacute;n f&iacute;sica del prototipo de comunicaci&oacute;n se muestra en la <a href="#f6">figura 6</a> y la conexi&oacute;n directa entre los dos teclados al mismo tiempo. Algunas pruebas se realizan con la finalidad de identificar el funcionamiento del nuevo dise&ntilde;o, entre las pruebas experimentales se encuentran el arranque y reinicio del ordenador para su detecci&oacute;n y reconocimiento de los dos teclados. Por razones de seguridad hacia el proceso la prioridad total la tiene el teclado industrial; entre las funciones del teclado industrial est&aacute;n la de cambiar par&aacute;metros como puntos de ajuste, rangos de operaci&oacute;n en tiempo, l&iacute;mites de variables, permisivos, protecciones y otras.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f6"></a></font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f6.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">Las funciones principales del teclado PC son la puesta en marcha y el registro al programa (c&oacute;digo G y M), y algunas pruebas de tecleo de botones al mismo tiempo y de forma consecutiva, como resultado se tiene un teclado universal industrial nuevo en perfectas condiciones y con pruebas satisfactorias.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Discusiones y an&aacute;lisis</b></font></p>              <p align="justify"><font face="verdana" size="2">En la <a href="#f7">figura 7</a> se muestran las se&ntilde;ales obtenidas del protocolo de comunicaci&oacute;n del teclado normal y el implementado (industrial). Las dos primeras l&iacute;neas de la parte superior muestran los datos del teclado normal y las dos l&iacute;neas de la parte inferior muestran los datos del teclado implementado, ambos env&iacute;an el mismo dato al mismo tiempo, donde la prioridad es el teclado industrial por el bot&oacute;n de stop de m&aacute;quina si es que hubiera un error en la m&aacute;quina o humano, finalmente el teclado normal transmite su se&ntilde;al y esta es guardada en un b&uacute;fer circular de datos y para terminar se trasmite.</font></p>              <p align="center"><font face="verdana" size="2"><a name="f7"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f7.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">En la <a href="#f7">figura 7a</a> se env&iacute;a el dato 00010001011 que corresponde a la palabra "o" (c&oacute;digo: cuando se presiona una tecla es 0x44 y cuando se libera la tecla es 0xF0, 0x44), donde la se&ntilde;al se env&iacute;a desde el teclado normal pasando primero por el teclado implementado hacia el ordenador.</font></p>              <p align="justify"><font face="verdana" size="2">En &nbsp;la&nbsp; <a href="#f7">figura 7a</a> y <a href="#f7">b</a> se trasmite el dato 00010101011 que corresponde al n&uacute;mero "0", siguiendo la caracter&iacute;stica de transmisi&oacute;n de los 11 bits de comunicaci&oacute;n; el primero es el bit de inicio, los 8 siguientes son los datos, el pen&uacute;ltimo es el de paridad (indica si se est&aacute;n enviando o recibiendo datos), y el &uacute;ltimo es el bit del paro (stop).</font></p>              <p align="justify"><font face="verdana" size="2">En la <a href="#f8">figura 8</a> se presenta la se&ntilde;al de datos enviada al ordenador desde el teclado implementado (00010010011 correspondiente a la palabra "K", 0x42), se puede observar que las se&ntilde;ales transmitidas desde el microcontrolador van directamente al ordenador de la computadora sin pasar por el teclado de la PC, que tiene un protocolo de comunicaci&oacute;n matricial, las se&ntilde;ales enviadas son las &uacute;ltimas dos l&iacute;neas.</font></p>              ]]></body>
<body><![CDATA[<p align="center"><font face="verdana" size="2"><a name="f8"></a></font></p>              <p align="center"><font face="verdana" size="2"><img src="/img/revistas/iit/v15n2/a5f8.jpg"></font></p>              <p align="justify"><font face="verdana" size="2">Las <a href="#f7">figuras 7</a> y <a href="#f8">8</a> muestran que la comunicaci&oacute;n es satisfactoria e id&eacute;ntica tanto del protocolo de comunicaci&oacute;n implementado como del comercial, logrando la obtenci&oacute;n de un teclado multifuncional y con teclas para funciones espec&iacute;ficas.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Conclusiones</b></font></p>              <p align="justify"><font face="verdana" size="2">Se dise&ntilde;&oacute; e implement&oacute; un protocolo de bajo costo para el control de m&aacute;quinas automatizadas, logrando todos los objetivos propuestos desde el prototipo de un teclado est&aacute;ndar con protocolo y tecnolog&iacute;a propia (el&eacute;ctrica, control y dise&ntilde;o f&iacute;sico) mostrado en la <a href="#f6">figura 6</a>, aplicado a m&aacute;quinas de control num&eacute;rico y a la automatizaci&oacute;n de maquinaria, permitiendo la compatibilidad en cualquier computadora, con la finalidad de que los c&oacute;digos programados en una m&aacute;quina de control num&eacute;rico no se vean afectados si se remplaza un teclado por otro cuando falle.</font></p>              <p align="justify"><font face="verdana" size="2">La arquitectura dise&ntilde;ada queda abierta a nuevas aplicaciones e innovaciones, sin necesidad de cambiar el hardware.</font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Agradecimientos</b></font></p>              <p align="justify"><font face="verdana" size="2">Este art&iacute;culo cont&oacute; con el apoyo financiero de la Universidad Aut&oacute;noma de Quer&eacute;taro (UAQ) y&nbsp; por el Consejo Nacional de Ciencia y Tecnolog&iacute;a (CONACYT) (n&uacute;mero de concesi&oacute;n 209333).</font></p>              ]]></body>
<body><![CDATA[<p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Referencias</b></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Chung&#45;Chen S. y Chih H. KVM Switch Cable for PS/2 and USB Signaling 2007: Patent. US 7, 281, 067, B2.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286276&pid=S1405-7743201400020000500001&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Varela &Aacute;. Alternative and Augmentative Communication Based Support Technology 2002, 7&#45;8 &#91;en l&iacute;nea&#93; &#91;fecha de consulta agosto de 2012&#93;. Disponible en: <a href="http://www.iberchip.net/iberchip2004/articles/39–3–AL–VAREL–ALVAROVARELA.PDF" target="_blank">http://www.iberchip.net/iberchip2004/articles/39&#150;3&#150;AL&#150;VAREL&#150;ALVAROVARELA.PDF</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286278&pid=S1405-7743201400020000500002&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">Dogan H. <i>Pic Basic Projects: 30 Projects Using Pic Basic and Pic Basic Pro</i>, 1a ed., Londres UK, Newnes MPG Books, 2006, pp. 9&#45;71.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286279&pid=S1405-7743201400020000500003&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Dom&iacute;nguez &nbsp;F.R., Palacios&#45;Municio E., L&oacute;pez&#45;J. L. <i>Desarrollo de proyectos microcontrolador PIC16F84A</i>, M&eacute;xico, editorial Alfaomega, 1991, pp. &nbsp;289&#45;294.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286281&pid=S1405-7743201400020000500004&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Garc&iacute;a&#45;Breijo E. <i>Compilador C CCS y Simulador proteus para microcontroladores pic</i>, 2a ed., Barcelona, Marcombo, 2009, pp. 167&#45;190.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286283&pid=S1405-7743201400020000500005&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Kangbin Y. A Fix to the HCI Specification to Evade ID and Password Eexposure by USB Sniff. <i>Proceedings of APIC&#45;IST 2008</i>, volumen 12, 2008: 191&#45;194.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286285&pid=S1405-7743201400020000500006&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Li Y. A Heuristic&#45;Based Approach to Optimize Keyboard Design for Single&#45;Finger Keying Applications. <i>International Journal of Industrial Ergonomics</i>, volumen 36, 2006: 695&#45;704.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286287&pid=S1405-7743201400020000500007&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <!-- ref --><p align="justify"><font face="verdana" size="2">Manual PIC16F84A, Data Sheet, Microchip Technology Inc 2001 &#91;en l&iacute;nea&#93; &#91;fecha de consulta: febrero de 2012&#93;. Disponible en: <a href="http://ww1.microchip.com/downloads/en/devicedoc/5007b.pdf" target="_blank">http://ww1.microchip.com/downloads/en/devicedoc/5007b.pdf</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286289&pid=S1405-7743201400020000500008&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><p align="justify"><font face="verdana" size="2">Navabi Z. Digital Design and Implementation with Field Programmable Devices, Information Technology: Transmission, Processing and Storage, Springer, 2004 &#91;en l&iacute;nea&#93;. Disponible en:    <!-- ref --><br>     <a href="http://books.google.com.mx/books?id=cPv4fHOxcVoC&pg=PA260&dq=design+and++implementation+of+keyboard&hl=es&sa=X&ei=a7efUPeVMYXrrQGNyYCwBA&ved=0CDAQ6AEwAA#v=onepage&q&f=false" target="_blank">http://books.google.com.mx/books?id=cPv4fHOxcVoC&amp;pg=PA260&amp;dq=design+and++implementation+of+keyboard&amp;hl=es&amp;sa=X&amp;ei=a7efUPeVMYXrrQGNyYCwBA&amp;ved=0CDAQ6AEwAA#v=onepage&amp;q&amp;f=false</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286291&pid=S1405-7743201400020000500009&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --><!-- ref --><p align="justify"><font face="verdana" size="2">Peng&#45;Yeng Y. y En&#45;Ping S. Cyber Swarm Optimization for General Keyboard Arrangement Problem. <i>International Journal of Industrial Ergonomics</i>, volumen 41, 2011: 43&#45;52.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286292&pid=S1405-7743201400020000500010&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              ]]></body>
<body><![CDATA[<!-- ref --><p align="justify"><font face="verdana" size="2">Ram&iacute;rez&#45;Cort&eacute;s J.M., G&oacute;mez&#45;Gil P., Mart&iacute;nez&#45;Carballido J., L&oacute;pez&#45;Larios F. A LabVIEW&#45;Based Autonomous Vehicle Navigation System using Robot Vision and Fuzzy Control. <i>Ingenier&iacute;a Investigaci&oacute;n y Tecnolog&iacute;a</i>, volumen 12 (n&uacute;mero 2), 2011: 129&#45;136.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286294&pid=S1405-7743201400020000500011&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>                   <!-- ref --><p align="justify"><font face="verdana" size="2">Su&aacute;rez&#45;Dom&iacute;nguez      E., Gonz&aacute;lez&#45;Marrero F.A. Dise&ntilde;o y desarrollo de la interfaz      de comunicaci&oacute;n del sistema diramic. <i>Revista CENIC</i>, volumen 36,      2005: 1&#45;10.    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[&#160;<a href="javascript:void(0);" onclick="javascript: window.open('/scielo.php?script=sci_nlinks&ref=4286296&pid=S1405-7743201400020000500012&lng=','','width=640,height=500,resizable=yes,scrollbars=1,menubar=yes,');">Links</a>&#160;]<!-- end-ref --></font></p>              <p align="justify"><font face="verdana" size="2">&nbsp;</font></p>              <p align="justify"><font face="verdana" size="2"><b>Semblanza del autor</b></font></p>              <p align="justify"><font face="verdana" size="2"><b><i>Mario Mej&iacute;a&#45;Ugalde</i>.</b>      Es estudiante de doctorado y profesor en la Facultad de Ingenier&iacute;a de      la Universidad Aut&oacute;noma de Quer&eacute;taro (UAQ). Recibi&oacute; la      licenciatura como ingeniero electromec&aacute;nico y la maestr&iacute;a en instrumentaci&oacute;n    y control autom&aacute;tico por parte de la Universidad Aut&oacute;noma de Quer&eacute;taro.    Sus intereses de investigaci&oacute;n actuales son dise&ntilde;o implementaci&oacute;n    y optimizaci&oacute;n mediante software para la automatizaci&oacute;n de m&aacute;quina&#45;herramienta    de fabricaci&oacute;n.</font></p>  	     ]]></body><back>
<ref-list>
<ref id="B1">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Chung-Chen]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
<name>
<surname><![CDATA[Chih]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<source><![CDATA[KVM Switch Cable for PS/2 and USB Signaling 2007: Patent. US 7, 281, 067, B2.]]></source>
<year></year>
</nlm-citation>
</ref>
<ref id="B2">
<nlm-citation citation-type="">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Varela]]></surname>
<given-names><![CDATA[Á.]]></given-names>
</name>
</person-group>
<source><![CDATA[Alternative and Augmentative Communication Based Support Technology]]></source>
<year>2002</year>
<volume>7-8</volume>
</nlm-citation>
</ref>
<ref id="B3">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Dogan]]></surname>
<given-names><![CDATA[H.]]></given-names>
</name>
</person-group>
<source><![CDATA[Pic Basic Projects: 30 Projects Using Pic Basic and Pic Basic Pro]]></source>
<year>2006</year>
<edition>1a</edition>
<page-range>9-71</page-range><publisher-loc><![CDATA[Londres ]]></publisher-loc>
<publisher-name><![CDATA[Newnes MPG Books]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B4">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Domínguez]]></surname>
<given-names><![CDATA[F.R.]]></given-names>
</name>
<name>
<surname><![CDATA[Palacios-Municio]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[López-J.]]></surname>
<given-names><![CDATA[L.]]></given-names>
</name>
</person-group>
<source><![CDATA[Desarrollo de proyectos microcontrolador PIC16F84A]]></source>
<year>1991</year>
<page-range>289-294</page-range><publisher-name><![CDATA[editorial Alfaomega]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B5">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[García-Breijo]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
</person-group>
<source><![CDATA[Compilador C CCS y Simulador proteus para microcontroladores pic]]></source>
<year>2009</year>
<edition>2a</edition>
<page-range>167-190</page-range><publisher-loc><![CDATA[Barcelona ]]></publisher-loc>
<publisher-name><![CDATA[Marcombo]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B6">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Kangbin]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Fix to the HCI Specification to Evade ID and Password Eexposure by USB Sniff]]></article-title>
<source><![CDATA[Proceedings of APIC-IST 2008]]></source>
<year>2008</year>
<volume>12</volume>
<page-range>191-194</page-range></nlm-citation>
</ref>
<ref id="B7">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Li]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A Heuristic-Based Approach to Optimize Keyboard Design for Single-Finger Keying Applications]]></article-title>
<source><![CDATA[International Journal of Industrial Ergonomics]]></source>
<year>2006</year>
<volume>36</volume>
<page-range>695-704</page-range></nlm-citation>
</ref>
<ref id="B8">
<nlm-citation citation-type="">
<source><![CDATA[Manual PIC16F84A, Data Sheet, Microchip Technology Inc]]></source>
<year>2001</year>
</nlm-citation>
</ref>
<ref id="B9">
<nlm-citation citation-type="book">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Navabi]]></surname>
<given-names><![CDATA[Z.]]></given-names>
</name>
</person-group>
<source><![CDATA[Digital Design and Implementation with Field Programmable Devices, Information Technology: Transmission, Processing and Storage]]></source>
<year>2004</year>
<publisher-name><![CDATA[Springer]]></publisher-name>
</nlm-citation>
</ref>
<ref id="B10">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Peng-Yeng]]></surname>
<given-names><![CDATA[Y.]]></given-names>
</name>
<name>
<surname><![CDATA[En-Ping]]></surname>
<given-names><![CDATA[S.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[Cyber Swarm Optimization for General Keyboard Arrangement Problem]]></article-title>
<source><![CDATA[International Journal of Industrial Ergonomics]]></source>
<year>2011</year>
<volume>41</volume>
<page-range>43-52</page-range></nlm-citation>
</ref>
<ref id="B11">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Ramírez-Cortés]]></surname>
<given-names><![CDATA[J.M.]]></given-names>
</name>
<name>
<surname><![CDATA[Gómez-Gil]]></surname>
<given-names><![CDATA[P.]]></given-names>
</name>
<name>
<surname><![CDATA[Martínez-Carballido]]></surname>
<given-names><![CDATA[J.]]></given-names>
</name>
<name>
<surname><![CDATA[López-Larios]]></surname>
<given-names><![CDATA[F.]]></given-names>
</name>
</person-group>
<article-title xml:lang="en"><![CDATA[A LabVIEW-Based Autonomous Vehicle Navigation System using Robot Vision and Fuzzy Control]]></article-title>
<source><![CDATA[Ingeniería Investigación y Tecnología]]></source>
<year>2011</year>
<volume>12</volume>
<numero>2</numero>
<issue>2</issue>
<page-range>129-136</page-range></nlm-citation>
</ref>
<ref id="B12">
<nlm-citation citation-type="journal">
<person-group person-group-type="author">
<name>
<surname><![CDATA[Suárez-Domínguez]]></surname>
<given-names><![CDATA[E.]]></given-names>
</name>
<name>
<surname><![CDATA[González-Marrero]]></surname>
<given-names><![CDATA[F.A.]]></given-names>
</name>
</person-group>
<article-title xml:lang="es"><![CDATA[Diseño y desarrollo de la interfaz de comunicación del sistema diramic]]></article-title>
<source><![CDATA[Revista CENIC]]></source>
<year>2005</year>
<volume>36</volume>
<page-range>1-10</page-range></nlm-citation>
</ref>
</ref-list>
</back>
</article>
