Condividi tramite


Panoramica della misurazione della latenza hardware touch down

La latenza è una misura del ritardo di tempo riscontrato nel sistema del digitalizzatore tocco. La latenza intrinseca di un sistema è uno dei parametri più importanti del dispositivo touch e rappresenta sempre un compromesso tra diverse funzionalità importanti: livelli di rumore (SNR), sensibilità, consumo di energia, jitter e così via.

Il punto di partenza per la misurazione della latenza è uno standard ben definito; è il momento in cui il dito o lo stilo (attuatore) tocca lo schermo per la prima volta in un determinato contatto. L'endpoint per il touch down della latenza hardware è il momento in cui il sistema operativo host (ad esempio, Windows 8) rileva il messaggio del digitalizzatore tocco di destinazione (per i dispositivi USB questo è il momento in cui la richiesta di interrupt bulk viene rilevata su un controller USB dedicato per digitalizzatori di tocco; in genere questa richiesta indica un report HID in ingresso con informazioni di contatto iniziali). Per tutti gli scopi pratici, questo endpoint è identico a quello dell'endpoint WndProc, che è il momento in cui l'applicazione host diventa prima a conoscenza del contatto (ad esempio tramite WM_INPUT e WM_POINTER messaggi per le applicazioni native o tramite un messaggio Windows::UI::Input::P ointerPoint per le applicazioni di Microsoft Store).

Metodologia

Questa procedura si basa sull'onda acustica/meccanica prodotta dal dito che tocca il digitalizzatore per misurare questa latenza. Vale la pena notare che anche il minimo contatto tocco produrrà un'onda acustica/meccanica sostanziale sulla superficie del digitalizzatore, che può chiaramente e senza ambiguità (ovvero con SNR estremamente elevato, praticamente zero falsi positivi, e quasi nessun falso negativo) viene rilevato usando anche i microfoni più semplici.

La metodologia si basa sull'oggetto di test toccando manualmente il touch screen un numero di volte. Ciò è dovuto al fatto che la latenza è probabilistica in natura, a causa dell'incertezza intrinseca alla funzione di scansione. In questo modo è possibile creare una funzione di distribuzione cumulativa empirica. Esistono aspettative prevedibili per questa funzione, consentendo di stimare la qualità della misurazione complessiva. Usando questi dati, è possibile estrarre i parametri di base per la distribuzione.

Ogni misura viene eseguita abbastanza semplicemente: un soggetto di test tocca il digitalizzatore con un dito, creando l'onda acustica/meccanica. Un ritardo piccolo ma misurabile tra il contatto effettivo e il momento in cui l'onda raggiunge il microfono sul digitalizzatore viene registrato. L'onda viene quindi rilevata dal microfono, amplificata e soglia in modo appropriato, quindi viene convertita in 0 o 1 livello logico. Questo valore logico viene inserito nella scheda microcontroller (ad esempio, AT90USBKEY2), che accetta questa modifica con bassa latenza (~μs) e la trasmette al dispositivo sottoposto a test con una latenza massima di 1 ms, tramite un report HID USB (1 ms è il periodo di polling minimo per dispositivi USB a velocità intera, ad esempio AT90USBKEY2).

Sul lato host (ovvero il dispositivo sottoposto a test) vengono previsti due eventi. Il primo è la ricezione di un rapporto HID dalla scheda microcontroller, che indica che si è verificato il contatto fisico. Il secondo è il report HID del digitalizzatore touch. La differenza di tempo tra i due report rappresenta la latenza di tocco.

Vi sono due incertezze in questa misura; è stato elaborato un metodo per ridurre entrambi. La prima incertezza è che c'è un ritardo di tempo tra il contatto effettivo e il momento in cui l'onda raggiunge il microfono (o per essere più specifico, tra il contatto effettivo e il tempo 1 logico viene ricevuto sul microcontroller). Questo viene compensato aggiungendo un ulteriore passaggio alla metodologia, ovvero una calibrazione. Prima di iniziare le misurazioni della latenza, viene misurato il tempo necessario per propagare l'onda dalla posizione più lontana del digitalizzatore al microfono (microcontroller). Queste informazioni vengono usate per fornire una stima assoluta degli errori per ogni singola misura in un secondo momento. Nella maggior parte dei casi questo è inferiore a 2 ms (a seconda delle dimensioni dello schermo e dei materiali usati per la superficie del digitalizzatore).

La seconda incertezza è la latenza introdotta dal canale USB tra il microcontroller e il computer host (il dispositivo sottoposto a test). Si tratta di un'introduzione di un timestamp a 48 bit a ogni report HID del microcontroller. Questo timestamp viene impostato quando è stato rilevato 1 logico sulla porta di input del microcontroller (con ~μs latenza tra questo evento e la generazione del valore timestamp). Quindi gli orologi sull'host (il computer sottoposto a test) e il lato di destinazione (microcontroller) possono essere sincronizzati per produrre i risultati più precisi.

Questa metodologia può essere completamente automatizzata ed è completamente ripetibile; un robot può essere usato per indurre il tocco invece di un partecipante umano. Al contrario, la soluzione più semplice, basata su un partecipante umano e una misurazione naturale, è consigliabile configurare più semplice e conveniente. I risultati osservati indicano una precisione coerente, che indica che è stato raggiunto un equilibrio tra la complessità della configurazione e la precisione della misura.

Requisiti hardware

Questa sezione descrive in dettaglio i componenti hardware necessari. Lo scopo di attrezzatura è descritto, ma i numeri di parte effettivi non sono forniti qui (questi verranno forniti più avanti in questo documento.

  • Microfono: per rilevare le onde acustiche sul digitalizzatore touch. È consigliabile usare un microfono piezomicrofono piccolo e piatto che può essere facilmente toccato sul touch screen.

  • Amplificatore acustico : per amplificare il segnale dal microfono.

  • Un circuito di soglia : per distinguere il suono del tocco dal rumore ambientale.

  • Scheda microcontroller con funzionalità HID USB e capacità di polling su almeno due porte di input con latenza ~μs.

  • Circuito di calibrazione: per misurare la propagazione dell'onda acustica, ovvero il tempo tra il tocco che si verifica e il 1 logico ricevuto sul microcontroller.

La sezione successiva illustra un'implementazione della configurazione della misurazione della latenza di tocco.

Istruzioni dettagliate

Il dispositivo hardware per eseguire le misurazioni viene presentato nell'immagine seguente. La scatola ha tre fori: input del microfono, input della lastra metal di calibrazione e microcontroller micro-usb output.

scheda di circuito per il touch down della latenza hardware

L'immagine successiva mostra il circuito per il microfono, l'amplificatore acustico e il thresholder. Il confronto microcontroller può essere usato per applicare la soglia.

diagramma del circuito per il touch down della latenza hardware

La connessione del microfono è illustrata nell'immagine seguente. Si noti che in questa configurazione viene usato un microfono molto semplice, sufficiente per discriminare in modo affidabile e accurato tra i rubinetti e il rumore ambientale.

scheda di circuito con allegato microfono

L'input della lastra di calibrazione si trova nell'altro foro, come illustrato nell'immagine seguente.

lastra di calibrazione collegata alla scheda di circuito

La scheda microcontroller usata è AT90USBKEY2.

Come descritto nella metodologia, questa scheda microcontroller viene usata per rilevare le modifiche nell'output del circuito di soglia, ovvero 0 logico e 1 (lo stesso per la calibrazione e la piastra metallica). Quando viene rilevato un segnale audio con una grandezza superiore alla soglia, tale modifica viene rilevata e viene inviato un report HID all'host per ogni evento di questo tipo. Quando l'onda sonora oscilla, la soglia verrà superata più volte; per evitare di inviare un evento di modifica ogni volta che viene superata la soglia, la logica del controller deve ignorare il segnale audio per un certo periodo di tempo dopo ogni evento di modifica. L'intervallo di tempo deve essere sufficientemente lungo, in modo che il risultato finale sia solo un evento di modifica per tocco del dito. Durate più lunghe di 500 ms di solito funzionano. In alternativa, è possibile usare un multivibratore mono-stabile o un circuito logico aggiuntivo, posizionato dopo l'amplificatore audio e l'input MCU. Per riutilizzare la configurazione consigliata (firmware e software) è necessario inserire l'output del circuito di soglia audio nel pin di input C0 e l'output del circuito della lastra metal all'input C1. La scheda microcontroller e il circuito di soglia devono avere un terreno condiviso (i motivi devono essere collegati). La posizione dei pin C0 e C1 e del terreno è illustrata nelle due immagini seguenti.

porta c della scheda di circuito

L'area delimitata dal rettangolo rosso (porta C della scheda AT90USBKEY) dell'immagine precedente viene visualizzata ingrandita nell'immagine seguente, con puntini C0, C1 e terra contrassegnati in modo appropriato.

pin c0, c1 e terra evidenziati

Per altre informazioni su questa scheda, visitare il sito Web del produttore e la guida per l'utente hardware per la scheda.