Fissare i problemi di latenza seriale di Arduino

Fissare i problemi di latenza seriale di Arduino

April 15, 2023 Digital Electronics 0

[Paolo] ha scritto per parlarci di alcuni interessanti problemi di latenza Arduino che ha aiutato a inchiodare e fissare sull’Arduino.

Sembra che [Michu] stesse avendo problemi con il controllo del suo progetto Rainbowduino abbiamo presentato all’inizio di quest’anno, e non riusciva a capire del tutto perché stava vivendo enormi ritardi durante l’invio e la ricezione di dati.

La ricerca online per le risposte si è accertato molto poco, e poiché [Michu] stava usando l’elaborazione, la coppia ha sviluppato una serie di test per vedere che tipo di latenza è stata introdotta da Java. Pitting A Arduino Uno e un Arduino dal 2009 contro un Teensy 2.0, i test calibro la latenza dei trasferimenti di dati nativi rispetto ai trasferimenti facilitati da Java attraverso la Biblioteca RXTX utilizza per le comunicazioni seriali.

I risultati sono stati piuttosto sbalorditivi. Mentre entrambi gli Arduinos sono rimasti dietro il teensy da un colpo lungo, i loro valori di latenza sotto Java erano sempre 20ms al minimo – qualcosa non si è sommato. [Michu] ha colpito nel codice RXTX e ha trovato un ritardo Mystery 20ms programmato nella libreria seriale. Non ha senso per lui, quindi ha cambiato il ritardo a 2ms e ha visto un drastico aumento delle prestazioni quando si trasferisce meno di 128 byte di dati.

La correzione della coppia non sembra influenzare la latenza quando vengono trasferite quantità maggiori di dati (> 1 kb), ma fa un mondo di differenza quando si manipolano pezzi più piccoli di dati.

Per motivi di divulgazione, dovrebbe essere notato che [Paul’s] La società produce il Teensy MCU.

Leave a Reply

Your email address will not be published. Required fields are marked *