Fixing Arduino sériová latence problémy
[Paul] napsal, aby nám řekl o některých zajímavých otázkách latence Arduino, které pomohl nehet a opravit na Arduino.
Zdá se, že [Michu] měl nějaké problémy s kontrolou jeho rainbowduino projektu, který jsme letos představili dříve, a nemohl zjistit, proč zažíval takové obrovské zpoždění při odesílání a přijímání dat.
Hledání online pro odpovědi se objevil velmi málo, a protože [Michu] používal zpracování, pár vyvinul soubor testů, aby zjistil, jaký druh latence byl zaveden Java. Dodržování Arduino UNO a Arduino od roku 2009 proti Teensy 2.0, zkoušky měří latenci nativní datových převodů versus převodů usnadněných Java prostřednictvím knihovny RXTX využívá pro sériovou komunikaci.
Výsledky byly docela ohromující. Zatímco oba arduinos zaostávaly za teensy dlouhým výstřelem, jejich hodnoty latence pod Javou byly vždy 20ms na minimum – něco neřídilo. [Michu] poklepal v kódu RXTX a našel zplodnocení tajemství 20ms naprogramované do sériové knihovny. Nebylo pro něj žádný smysl, takže změnil zpoždění na 2ms a viděl drastický nárůst výkonu při přenosu méně než 128 bajtů dat.
Oprava pár nezdá, že by ovlivňovala latenci, když jsou přeneseny větší množství dat (> 1KB), ale při manipulaci s menšími kousky údajů činí svět rozdílů.
V zájmu zveřejnění by mělo být poznamenáno, že [Paulova] společnost produkuje Teensy MCU.