Vergelijking tussen SerialTool en andere software
Beschrijving en vergelijkende tabel
Waarom deze pagina?
Als je op deze pagina bent terechtgekomen, vraag je je waarschijnlijk af welke software je moet gebruiken voor de seriële poort, ook wel COM-poort genoemd, voor jouw toepassingen.
Waarschijnlijk vraag je je ook af waarom er een vergelijkende tabel bestaat van software voor het gebruik van de seriële poort. Het antwoord is simpel: bij SerialTool zijn we er vrij zeker van dat je SerialTool zult herkennen als een van de meest geavanceerde softwareoplossingen voor communicatie via de seriële poort, die de vergelijking met andere, bekendere en vaker gebruikte programma’s prima doorstaat.
De geschiedenis van SerialTool
Laten we beginnen met het feit dat SerialTool voortkomt uit meer dan tien jaar dagelijkse, intensieve ervaring met de seriële poort, teruggaand tot de tijd dat deze nog fysiek aanwezig was als RS-232 op de meeste pc’s en laptops, voordat hij werd vervangen door de bekende en veelgebruikte USB-naar-serieel-omzetters.
We merken vaak dat software voor seriële poorten sterk benadrukt dat ze ook werken met RS-422 en RS-485.
Laten we meteen een verduidelijking geven: RS232, RS422, RS423 en RS485 zijn in essentie allemaal protocollen op de fysieke laag. Het zijn seriële communicatieprotocollen en interfaces voor alomtegenwoordige apparaten. Seriële interfaces worden veel gebruikt in elektronica en embedded systemen, vaak voor het op afstand uitlezen van gegevens of het op afstand besturen van apparaten. Ze veranderen de manier waarop het signaal wordt overgebracht, of het nu een pc, een microcontroller of seriële communicatie op TTL-niveau is. Ze moeten allemaal worden omgezet in RS232-, RS422-, RS423- of RS485-signalen met behulp van een communicatie-converterchip.
Waarom deze verduidelijking? Elke software die met de seriële poort of COM-poort communiceert, kan ook met RS-232, RS-422 en RS-485 werken, met inachtneming van de beperkingen qua afstand en snelheid van de fysieke communicatielaag.
Op de vraag of SerialTool geschikt is voor gebruik met RS-485 is het antwoord JA. Net als alle software die met een seriële poort communiceert.
Laat je dus niet misleiden door software die sterk benadrukt dat ze compatibel zijn met RS-422 en RS-485. Dat zijn ze sowieso al!
Multiplatform seriële software voor Windows, Linux en macOS
Juist vanuit die vroege periode is een privéversie van SerialTool ontwikkeld, uitsluitend bedoeld voor intern gebruik, waarin alle dagelijkse behoeften van het werken in een embedded omgeving werden verzameld. In een embedded omgeving werk je vooral met andere besturingssystemen dan het populaire Windows, zoals Linux en in toenemende mate macOS.
SerialTool is ontwikkeld met een multiplatformframework, en de routines voor seriële-poortverbindingen zijn geschreven met behulp van native functies voor de drie besturingssystemen waarop SerialTool wordt verspreid.
Er zijn geen openbare bibliotheken gebruikt die, hoewel stabiel, geen volledige flexibiliteit en controle geven over alle parameters die door de seriële poort worden ondersteund. Het was daarom nodig om de broncode zo te schrijven dat men kon gaan waar de door bepaalde IDE’s geleverde bibliotheken niet konden komen. Deze inspanning is ruimschoots beloond door de functies en prestaties die SerialTool biedt.
Voor wie is SerialTool bedoeld?
Misschien vraag je je af of deze software uitsluitend voor professioneel gebruik is ontwikkeld.
Het antwoord is NEE. Hij is ideaal voor alle soorten toepassingen: van eenvoudige voorbeelden van communicatie met een Arduino-board in hobby-, school- en academische contexten tot complexe systemen met meerdere seriële verbindingen, waarbij alle verbindingen tegelijk moeten worden bewaakt en het seriële verkeer betrouwbaar, langdurig en flexibel moet worden gelogd.
Om deze en vele andere redenen wordt SerialTool sinds 2009 intern ontwikkeld in de laboratoria van Duolabs, en heette het destijds SerialTalk. Laten we nu in detail kijken naar de behoeften die vaak ontstaan bij het gebruik van de seriële poort, zowel in professionele als hobby-omgevingen.
Wat maakt SerialTool uniek?
Allereerst is SerialTool tot op heden de enige software die meerdere seriële poorten tegelijk kan beheren binnen één enkele applicatie-instantie. Om die reden moet elke seriële poort of COM-poort een toewijzing krijgen. In feite kun je gelijktijdig op meerdere seriële poorten werken binnen één applicatie, door oplopende nummers aan elke seriële poort toe te wijzen en verschillende functies te configureren zonder meerdere programma’s tegelijk te hoeven starten.
Deze functionaliteit is intern zeer complex te beheren en heeft vele maanden ontwikkeltijd gekost om in SerialTool te implementeren. Laten we nu kijken naar het eenvoudig verzenden van bytes naar de seriële poort.
Gegevens naar de seriële poort sturen (ASCII- en hexmodus)
De twee meest gebruikte methodes zijn het versturen van ASCII-strings of van bytearrays in hexadecimale vorm. Met SerialTool kun je je bytes in beide modi efficiënt, intuïtief en snel versturen.
Je kunt ook automatisch voorgedefinieerde eindtekens versturen, zoals CR = Carriage Return (\r, 0x0D in hexadecimaal, 13 in decimaal) en LF = Line Feed (\n, 0x0A in hexadecimaal, 10 in decimaal), of beide samen.
Automatische aanvulling met CRC
In sommige situaties, vooral in de industriële sector, is het nodig om aan het einde van de bytes een CRC (cyclic redundancy check) te versturen. De CRC-berekening is gebaseerd op de bytes die je wilt versturen en is een vorm van checksum. CRC, of controlebytes voor de juistheid van de ontvangen data (aan de zijde van de ontvanger), is vaak vereist bij bepaalde communicatieprotocollen zoals MODBUS. SerialTool biedt de ruimste keuze aan CRC-polynomen die aan het einde van de daadwerkelijke payload kunnen worden toegevoegd.
Het gebruik van de Quick Buffer
Het versturen van de eigenlijke payload gebeurt via het quick-sendpaneel, de zogenoemde Quick Buffer, speciaal ontworpen om je bytes onmiddellijk te versturen zonder je te hoeven verdiepen in ingewikkelde opties of vensters die verwarring veroorzaken. Het versturen van ASCII-bytes kan ook eenvoudig door rechtstreeks op het toetsenbord te typen, vergelijkbaar met klassieke communicatieterminals. We benadrukken dat SerialTool op dit moment niet alle functies van een typische terminal ondersteunt (bijv. VT100), omdat het zich primair richt op het beheer van de seriële poort als hoofdonderdeel van de applicatie. Het is niet uitgesloten dat de terminalmodus (momenteel aanwezig) in de toekomst zal worden uitgebreid en compatibel wordt gemaakt met VT100-codering.
V: Maar hoe en waar bekijk ik de bytes die ik ontvang en verzend?
Veel programma’s hebben een terminal waarin je bytes kunt versturen en ontvangen, vergelijkbaar met klassieke terminals zoals TeraTerm. SerialTool biedt, zoals hierboven vermeld, een hybride terminalmodus.
V: En hoe zit het met hexadecimale bytes?
Daar wordt het ingewikkelder, omdat hexadecimale bytes niet altijd in ASCII kunnen worden weergegeven en daardoor niet-afdrukbare tekens kunnen opleveren of, in het geval van echte terminals, ogenschijnlijk abnormaal gedrag kunnen veroorzaken. In een klassieke terminal verwijdert de byte die overeenkomt met de DEL-toets op het toetsenbord het laatst verzonden teken. Niet ideaal als we hexabytes van een externe bron ontvangen en dat specifieke byte onderdeel van een pakket is dat we willen analyseren.
SerialTool lost dit probleem op twee manieren op. Ten eerste is er een klassieke terminal die verzonden en ontvangen bytes in verschillende modi kan weergeven: pure ASCII, alleen afdrukbare ASCII of hexadecimaal (met verschillende notaties). Lees hier meer.
Als je de klassieke terminalmodus niet wilt gebruiken, heeft SerialTool een speciale hexadecimale terminal-modus.
In de hex-terminalmodus wordt elke byte of elk bytepakket weergegeven in een tabelachtige editor, waarmee ontvangen en verzonden payloads snel, intuïtief en nauwkeurig kunnen worden geanalyseerd.
V: Wat wordt precies bedoeld met een byte of bytepakketten?
Een enkele byte kan via de seriële poort worden verzonden of ontvangen en na een vooraf ingestelde tijdsperiode wordt de transmissie als voltooid beschouwd, waardoor een pakket wordt gevormd. In dat geval een pakket van één byte.
V: Hoe kan ik het tijdsinterval tussen pakketten bepalen?
Gewoonlijk gebruik je hiervoor meetinstrumenten zoals oscilloscopen of logische analysers om de intervaltijd tussen pakketten vast te stellen. Het is echter niet altijd handig of praktisch (zelfs als je over deze instrumenten beschikt) om fysieke verbindingen te maken en de timing tussen bits te bekijken om te begrijpen hoe vaak het externe apparaat bytes of pakketten verstuurt. SerialTool biedt de mogelijkheid om nauwkeurig de tijd te meten sinds de aankomst van een enkel byte en om het aantal milliseconden tussen bytes te definiëren om bijvoorbeeld een pakket af te bakenen.
Bovendien biedt SerialTool de mogelijkheid om de tijd sinds het laatste ontvangen of verzonden pakket te registreren en te monitoren.
V: Hoe vaak heb je al buffers naar de seriële poort gekopieerd en geplakt en daarbij fouten gemaakt of bytes vergeten?
Een veelvoorkomend probleem voor velen. In lijn met de Quick Buffers biedt SerialTool de mogelijkheid om vooraf geladen buffers beschikbaar te hebben, die altijd bewerkbaar zijn voor snelle en betrouwbare verzending.
Na uren werk kunnen fouten gemakkelijk optreden, en SerialTool helpt je ze te vermijden. De functie Multiple Buffers helpt je om buffers altijd binnen handbereik te houden, zowel in ASCII- als in hex-formaat.
Seriële gegevens loggen naar een bestand
Denk je dat dit genoeg is? Sommige gebruikers zullen tevreden zijn, en de meeste beschikbare programma’s bieden slechts een deel van deze functies. Maar iedereen die werkt met of gepassioneerd is door de embedded wereld, of hobbyprojecten realiseert waarbij grote hoeveelheden data worden verzonden en ontvangen, zal al snel merken dat er meer nodig is.
Wanneer er veel data in het spel is, wordt het noodzakelijk om de inkomende en uitgaande gegevens op te slaan om de datastroom of een protocol te analyseren, bijvoorbeeld voor mogelijk reverse engineering. Met SerialTool kun je de datalog naar een bestand opslaan voor latere, gestructureerde en nauwkeurige analyse, zodat je exact kunt controleren wat er over een bepaalde seriële poort is gegaan. De log kan in tekstmodus worden bekeken of direct als binair bestand worden opgeslagen.
Als je bijvoorbeeld het downloaden van firmware naar een extern apparaat in de gaten houdt door de USB-serieeladapter aan te sluiten op de zend- en ontvanglijnen, kun je passief al het verkeer observeren dat tussen de twee apparaten wordt uitgewisseld. In het geval van firmware-downloads kan het uiterst nuttig zijn om de datastroom direct naar een bestand op te slaan voor later, gedetailleerd onderzoek.
Seriële filters en alarmfunctie
Misschien moet je alleen bepaalde pakketten van interesse onderscheppen en de inhoud analyseren.
Op het moment van schrijven bestaan er geen specifieke commerciële programma’s die bepaalde pakketten kunnen filteren en daar alarmsignalen aan kunnen koppelen. SerialTool maakt het mogelijk om inkomend verkeer op één of meerdere seriële poorten te analyseren en een alarm te genereren wanneer een vooraf gedefinieerd pakket of een eenvoudige bytereeks wordt ontvangen, ongeacht of deze in ASCII- of hex-formaat is. SerialTool past een filter op deze pakketten toe en kan ze tijdens de binnenkomende stroom tonen of blokkeren. Ook kun je enkel bepaalde pakketten of bytereeksen naar een apart bestand opslaan. Deze functionaliteit wordt mogelijk gemaakt door de functie Alarms in SerialTool.
Seriële data naar een server of de cloud sturen
SerialTool biedt een functie die veel andere commerciële software niet hebben of slechts deels: de mogelijkheid om seriële traffic over een netwerk te versturen. Met SerialTool kun je het bidirectionele verkeer (ontvangen en verzenden) naar een server sturen via TCP- of UDP-protocol met behulp van de Network Packet Sender. Zowel IPv4 als IPv6 worden ondersteund.
V: Kan ik data naar de cloud sturen?
Absoluut JA! SerialTool maakt het mogelijk om verkeer naar de cloud te sturen met behulp van de Network Packet Sender. Je kunt GET- of POST-aanroepen naar een cloudserver uitvoeren om seriële data beter te analyseren, te filteren en op te slaan.
In een professionele context kan SerialTool bijvoorbeeld worden geïnstalleerd op een mini-pc met Linux die op een externe machine is aangesloten, waarbij alle traffic naar een cloud-backend wordt gestuurd. Stel je voor dat je op afstand een industriële machine kunt monitoren, zelfs als die geen native cloudconnectiviteit heeft, of dat je sensoren installeert en de data rechtstreeks naar de cloud stuurt zonder allerlei communicatieprotocollen te hoeven ontwikkelen.
Het kan ook nodig zijn om het seriële verkeer door te geven aan externe software voor realtimeanalyse. SerialTool kan al het seriële verkeer beschikbaar maken voor analyse met propriëtaire software.
SerialTool heeft een klein php-script ontwikkeld om deze functionaliteit te testen, beschikbaar op de pagina Network Packet Sender.
Een bestand naar de seriële poort sturen
SerialTool biedt de mogelijkheid om bestanden (zelfs grote) direct naar de seriële poort te versturen. Ongeacht het type bestand, tekst of binair, SerialTool zal het bestand automatisch opsplitsen in instelbare bytepakketten en deze met een gedefinieerd interval verzenden.
Automatisch antwoord
V: Wat als ik mijn seriële protocol, ontwikkeld op Arduino, wil testen en een vooraf gedefinieerd antwoord wil ontvangen bij het versturen van een pakket, zonder een extra apparaat te hoeven bouwen dat automatisch antwoordt?
Ook in dit geval helpt SerialTool je met de modus AutoAnswer. Je kunt SerialTool instrueren om met een vooraf gedefinieerde payload te antwoorden wanneer een bepaalde payload wordt ontvangen, zonder complexe scripts te hoeven schrijven of moeilijke programmeertalen te gebruiken. SerialTool maakt deze functie snel, praktisch en intuïtief.
We zouden alle functies kunnen opsommen die momenteel in SerialTool aanwezig zijn, maar dat zou misschien het plezier wegnemen om ze zelf te ontdekken. Het ontwikkelteam van SerialTool staat klaar voor jouw behoeften, bugmeldingen of verbetersuggesties. Sommige van de genoemde functies zijn mogelijk alleen beschikbaar in de PRO-versie van SerialTool. Controleer regelmatig de changelog om te zien wat beschikbaar is in de GRATIS en in de PRO versie van SerialTool.
Verschillen tussen de PRO- en GRATIS-versie
De GRATIS-versie biedt de basisfunctionaliteit van SerialTool en geeft je de mogelijkheid om enkele functies van de PRO versie uit te proberen.
In de PRO-versie worden een aantal beperkingen uit de GRATIS-versie opgeheven:
- Aantal opgeslagen configuraties
- Aantal opgeslagen bytebuffers
- Aantal opgeslagen alarmen
- Aantal opgeslagen logs
- Aantal opgeslagen macro’s
- Aantal seriële poorten die gelijktijdig beschikbaar zijn
- Toekomstige PRO-functies en verbeteringen
Op de licentiepagina vind je alle informatie over het aanschaffen van de PRO-versie.