Comparación entre SerialTool y otros software
Descripción y tabla comparativa
¿Por qué esta página?
Si has llegado a esta página, probablemente te estás preguntando qué software utilizar para el puerto serie, también conocido como puerto COM, para tus aplicaciones.
Probablemente también te estés preguntando por qué hay una tabla comparativa de software para el uso del puerto serie. La respuesta es simple: en SerialTool, estamos bastante seguros de que reconocerás a SerialTool como uno de los software más avanzados para la comunicación con el puerto serie, y se sostiene bien frente a otros programas más conocidos y utilizados ampliamente.
La historia de SerialTool
Comencemos con el hecho de que SerialTool nace de una experiencia de una década en el uso diario e intensivo del puerto serie, desde los tiempos en que aún estaba físicamente disponible como RS-232 en la mayoría de los PC y laptops, antes de ser suplantado en favor de los conocidos y comúnmente utilizados convertidores de USB a Serie.
A menudo notamos que el software de puerto serie enfatiza que también funcionan con RS-422 y RS-485.
Aclaremos de inmediato: RS232, RS422, RS423 y RS485 son todos protocolos de capa física esencialmente. Son protocolos e interfaces de comunicación serie para dispositivos ubicuos. Las interfaces serie se utilizan ampliamente en electrónica y sistemas embebidos, a menudo para la adquisición remota de datos de dispositivos o control remoto. Cambian la forma en que se transmite la señal, ya sea desde un PC, un microcontrolador o comunicación serie a través de protocolos de comunicación serie o transmisión a nivel TTL. Todos ellos necesitan ser convertidos a señales RS232, RS422, RS423 o RS485 mediante un chip convertidor de comunicaciones.
¿Por qué esta aclaración? Cualquier software que se comunique con el puerto serie o puerto COM puede recibir y transmitir en RS-232, RS-422 y RS-485, con las limitaciones de distancia y velocidad inherentes a la capa física de la comunicación.
Ante la pregunta de si SerialTool es adecuado para usar con RS-485, la respuesta es SÍ. Como todo software que se comunica con un puerto serie.
No te dejes engañar por software que enfatiza ser compatible con RS-422 y RS-485. ¡Lo son y serían compatibles de todos modos!
Software de serie multiplataforma para Windows, Linux y Mac OS
Exactamente desde aquellos días distantes, se desarrolló una versión privada de SerialTool, diseñada solo para uso interno, que recogió todas las necesidades diarias de trabajar en un entorno embebido. En un entorno embebido, principalmente trabajas con sistemas operativos distintos al más popular Windows, como Linux y cada vez más Mac OS.
SerialTool se ha desarrollado con un marco multiplataforma, y las rutinas de conexión del puerto serie se han escrito usando funciones nativas para los tres sistemas operativos en los que SerialTool se ha distribuido.
No se utilizaron bibliotecas públicas, que, aunque estables, no permiten flexibilidad ni control total de todos los parámetros soportados por el puerto serie. Por tanto, fue necesario escribir el código fuente de manera que pudiera alcanzar donde las bibliotecas ofrecidas por ciertos IDEs no lo permitían. Este esfuerzo ha sido bien recompensado por las características y el rendimiento que ofrece SerialTool.
¿Para quién es SerialTool?
Probablemente te estés preguntando si este software se desarrolló solo para uso profesional.
La respuesta es NO. Es ideal para todo tipo de aplicaciones, desde simples ejemplos de comunicación con una placa de Arduino en entornos de pasatiempos, escolares y académicos hasta sistemas complejos que involucran múltiples conexiones serie, con la necesidad de monitorear todas simultáneamente y registrar el tráfico serie de manera confiable, persistente y flexible.
Por estas y muchas otras razones, SerialTool se ha desarrollado internamente desde 2009 en los laboratorios de Duolabs y se llamaba SerialTalk. Ahora, veamos en detalle las necesidades que a menudo surgen al usar el puerto serie, tanto en un contexto profesional como de pasatiempos.
¿Qué hace único a SerialTool?
En primer lugar, SerialTool es el único software, hasta la fecha, capaz de manejar varios puertos serie múltiples simultáneamente en un solo lanzamiento de la aplicación. Por esta razón, cada puerto serie o puerto COM debe tener una asignación. En esencia, será posible operar simultáneamente en múltiples puertos serie dentro de una sola aplicación, asignando números progresivos a cada puerto serie y configurando diversas características sin tener que iniciar múltiples software simultáneamente.
Esta característica es muy compleja de manejar internamente y requirió muchos meses de desarrollo para implementarse en SerialTool. Ahora, veamos el simple envío de bytes al puerto serie.
Envío de datos al puerto serie (modos ASCII y hexadecimal)
Los dos modos más comunes son enviar cadenas ASCII o arreglos de bytes en hexadecimal. SerialTool te permitirá enviar tus bytes de manera eficiente, intuitiva y rápida en ambos modos.
También puedes enviar automáticamente cadenas de fin de bytes predefinidas, como CR = Retorno de Carro (\r, 0x0D en hexadecimal, 13 en decimal) y LF = Alimentación de Línea (\n, 0x0A en hexadecimal, 10 en decimal), o ambos.
Autocompletar con CRC
En algunas situaciones, especialmente en el sector industrial, es necesario enviar el CRC (chequeo de redundancia cíclica) al final de los bytes. El cálculo de CRC se basa en los bytes que pretendes enviar y es una de las formas de checksum. CRC, o bytes de control para la corrección de los bytes recibidos (por el receptor), a menudo es requerido en ciertos protocolos de comunicación como MODBUS. SerialTool ofrece la más amplia elección de polinomios de CRC que pueden enviarse al final de la carga útil real.
Uso del Búfer Rápido
La transmisión de la carga útil real se realiza a través del panel de envío rápido llamado Búfer Rápido, diseñado especialmente para permitir el envío instantáneo de tus bytes sin sumergirte en opciones complicadas o ventanas que crean confusión. Enviar bytes ASCII también se puede hacer escribiendo directamente las teclas del teclado, similar a los terminales de comunicación típicos. Enfatizamos que SerialTool, por el momento, no puede realizar todas las funciones de un terminal típico (por ejemplo, VT100), ya que se posiciona como un software para gestionar el puerto serie como el aspecto predominante de la aplicación. No se descarta que en desarrollos futuros, el modo terminal (actualmente disponible) pueda ampliarse y hacerse compatible con la codificación VT100.
P: Pero, ¿cómo y dónde veo los bytes que recibo y transmito?
Muchos programas de software tienen una pantalla de terminal que permite enviar y recibir bytes similar a los terminales clásicos como TeraTerm. SerialTool ofrece, como se mencionó anteriormente, un modo de terminal híbrido.
P: ¿Qué pasa con los bytes hexadecimales?
La situación se complica porque los bytes hexadecimales no siempre son representables en ASCII y pueden generar caracteres no mostrables o, en el caso de los terminales reales, crear comportamientos aparentemente anormales. En un terminal clásico, al recibir el byte correspondiente a la tecla DEL del teclado, el terminal elimina el último carácter enviado. No es ideal si estamos recibiendo bytes hexadecimales de una fuente remota y necesitamos interceptar ese byte como parte de un paquete.
SerialTool resuelve el problema de dos maneras. Primero, tiene una pantalla de terminal clásico que puede mostrar bytes enviados y recibidos en varios modos. Solo ASCII, solo ASCII imprimible, o hexadecimal (con diferentes tipos de formato). Lea aquí..
Si no tienes intención de usar el modo de terminal clásico, SerialTool tiene el modo de terminal hexadecimal.
En el modo de terminal hexadecimal, cada byte o paquete de bytes se mostrará en una tabla de editor que permite una visualización rápida, intuitiva y precisa de las cargas útiles recibidas y transmitidas.
P: Pero, ¿qué se entiende exactamente por un byte o paquetes de bytes?
Un solo byte puede enviarse o recibirse desde el puerto serie, y después de un tiempo predefinido, la transmisión puede considerarse completa, generando un paquete. Un paquete que contiene un solo byte en este caso.
P: ¿Cómo puedo determinar el intervalo entre un paquete y el siguiente?
Típicamente, se utilizan herramientas como osciloscopios o analizadores de estado lógico para determinar el intervalo entre paquetes. Sin embargo, puede que no siempre sea conveniente o práctico (incluso si tienes una de estas herramientas) hacer conexiones físicas y observar el tiempo entre bits para determinar con qué frecuencia el dispositivo remoto envía bytes o paquetes. SerialTool ofrece la capacidad de determinar con precisión el tiempo transcurrido desde la llegada de un solo byte y de establecer los milisegundos entre bytes para delimitar un paquete, por ejemplo.
Además, SerialTool también ofrece la capacidad de registrar y monitorear el tiempo transcurrido desde el último paquete recibido o transmitido.
P: ¿Cuántas veces has tenido que copiar y pegar búferes para enviar al puerto serie, y quizás cometer errores o olvidar algunos bytes?
Un obstáculo común para muchos. En línea con los Búferes Rápidos, SerialTool ofrece la capacidad de tener búferes precargados, siempre editables para un envío rápido y confiable.
Después de horas de trabajo, pueden ocurrir algunos errores, y SerialTool te ayudará a evitarlos. La función de Búferes Múltiples te ayudará a mantener los búferes al alcance de la mano, ya sean en formato ASCII o hexadecimal.
Registro de datos serie en un archivo
¿Crees que eso es suficiente? Algunos usuarios podrían estar satisfechos, y la mayoría de los programas de software disponibles solo ofrecen algunas de estas funciones. Sin embargo, cualquiera que trabaje con o tenga pasión por el mundo embebido o participe en aplicaciones de pasatiempos que involucren una gran cantidad de datos enviados y recibidos se dará cuenta de la necesidad de algo más.
Cuando hay una gran cantidad de datos en juego, se hace necesario guardar los datos entrantes y salientes para analizar el flujo o un protocolo para posibles operaciones de ingeniería inversa. SerialTool te permite guardar el registro de datos en un archivo para un análisis posterior organizado y preciso, lo que te permite verificar qué ha pasado realmente por un puerto serie particular. El registro se puede ver en modo texto o guardar directamente en un archivo binario.
Por ejemplo, si estuvieras monitoreando la descarga de firmware a un dispositivo remoto conectando el adaptador USB-serie a las señales de transmisión y recepción, podrías observar pasivamente todo el tráfico que los dos dispositivos están intercambiando. En el caso de las descargas de firmware, podría ser extremadamente útil poder guardar el flujo de datos directamente en un archivo para un análisis más detallado más tarde.
Filtros serie y función de alarma
Puede que necesites interceptar solo ciertos paquetes de interés y analizar su contenido.
En el momento en que se escribió este documento, no hay programas de software comerciales específicos que puedan filtrar ciertos paquetes y generar alarmas en consecuencia. SerialTool te permite analizar el tráfico entrante en uno o más puertos serie y generar una alarma cuando se recibe un paquete predefinido o una simple secuencia de bytes, ya sea en formato ASCII o hexadecimal. SerialTool aplica un filtro a estos paquetes y los muestra o bloquea durante el flujo entrante. Además, puedes guardar solo ciertos paquetes o secuencias de bytes en un archivo separado. Esta funcionalidad es posible gracias a la función de Alarmas disponible en SerialTool.
Envío de datos del puerto serie a un servidor o la nube
SerialTool ofrece una característica que muchos otros programas de software comerciales no tienen o solo tienen en forma parcial: la capacidad de enviar tráfico serie a través de una red. SerialTool te permite enviar tráfico bidireccional (recibir y transmitir) a un servidor utilizando el protocolo TCP o UDP, utilizando el Envío de Paquetes en Red. Admite tanto IPv4 como IPv6.
P: ¿Puedo enviar datos a la nube?
¡Absolutamente SÍ! SerialTool también te permite enviar tráfico a la nube utilizando el Envío de Paquetes en Red. Puedes hacer llamadas GET o POST a un servidor en la nube para analizar mejor, filtrar y almacenar los datos serie.
En un contexto profesional, por ejemplo, SerialTool se puede instalar en un mini-PC con Linux y conectarlo a una máquina remota, enviando todo el tráfico a un backend en la nube. Imagina poder monitorear remotamente una máquina industrial, incluso si no tiene conectividad nativa con la nube, o instalar sensores y enviar datos directamente a la nube sin tener que desarrollar varios protocolos de comunicación.
También puede ser necesario conectar el tráfico del puerto serie a software externo para análisis en tiempo real. SerialTool proporciona todo el tráfico del puerto serie para análisis con software propietario.
SerialTool ha desarrollado un pequeño script php para probar esta función, disponible en la página de Envío de Paquetes en Red.
Envío de un archivo al puerto serie
SerialTool ofrece la capacidad de enviar archivos (incluso grandes) directamente al puerto serie. No importa qué tipo de archivo sea, texto o binario, SerialTool automáticamente romperá el archivo en paquetes de bytes definibles y los enviará a intervalos específicos.
Autorespuesta
P: Si quisiera probar mi protocolo serie desarrollado en Arduino y recibir una respuesta predefinida al enviar un paquete sin crear otro dispositivo para responder automáticamente?
En este caso también, SerialTool te ayuda con el modo AutoAnswer. Puedes instruir a SerialTool para que responda con una carga útil predefinida cuando recibe una carga útil específica, sin tener que escribir scripts complejos o usar lenguajes de programación difíciles. SerialTool hace que esta función sea rápida, práctica e intuitiva.
Queremos mencionar todas las funciones actualmente disponibles en SerialTool, pero eso podría quitar el placer de experimentar con él directamente. El equipo de desarrollo de SerialTool está disponible para tus necesidades, informes de errores o sugerencias de mejoras. Algunas de las funciones mencionadas pueden estar disponibles solo en la versión PRO de SerialTool. Revisa el registro de cambios de vez en cuando para ver qué está disponible en las versiones GRATUITA y PRO de SerialTool.
Diferencias entre las versiones PRO y GRATUITA
La versión GRATUITA proporciona las funcionalidades básicas de SerialTool y ofrece la oportunidad de evaluar algunas de las características de la versión PRO.
La versión PRO elimina algunas limitaciones encontradas en la versión GRATUITA:
- Número de configuraciones guardadas
- Número de búferes de bytes guardados
- Número de alarmas guardadas
- Número de registros guardados
- Número de macros guardadas
- Número de puertos serie disponibles al mismo tiempo
- Funciones PRO futuras y mejoras
La página de licencia te proporcionará información sobre cómo comprar la versión PRO.