ITRM20130728A1 - Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione. - Google Patents

Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.

Info

Publication number
ITRM20130728A1
ITRM20130728A1 IT000728A ITRM20130728A ITRM20130728A1 IT RM20130728 A1 ITRM20130728 A1 IT RM20130728A1 IT 000728 A IT000728 A IT 000728A IT RM20130728 A ITRM20130728 A IT RM20130728A IT RM20130728 A1 ITRM20130728 A1 IT RM20130728A1
Authority
IT
Italy
Prior art keywords
pointer
sector
data
computer
peripheral unit
Prior art date
Application number
IT000728A
Other languages
English (en)
Inventor
Antonio Carbonera
Paolo Forlani
Roberto Garavaglia
Original Assignee
Prb S R L
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Prb S R L filed Critical Prb S R L
Priority to IT000728A priority Critical patent/ITRM20130728A1/it
Priority to TR2018/08730T priority patent/TR201808730T4/tr
Priority to AU2014375052A priority patent/AU2014375052A1/en
Priority to ES14830677.2T priority patent/ES2674549T3/es
Priority to US15/108,640 priority patent/US20160328354A1/en
Priority to BR112016015465A priority patent/BR112016015465A2/pt
Priority to KR1020167017522A priority patent/KR20160103998A/ko
Priority to CA2935283A priority patent/CA2935283A1/en
Priority to EA201691243A priority patent/EA201691243A1/ru
Priority to PCT/IB2014/066965 priority patent/WO2015101869A1/en
Priority to SG11201604867WA priority patent/SG11201604867WA/en
Priority to MX2016008599A priority patent/MX2016008599A/es
Priority to CN201480071965.8A priority patent/CN105917322B/zh
Priority to JP2016561089A priority patent/JP6530762B2/ja
Priority to EP14830677.2A priority patent/EP3090348B1/en
Publication of ITRM20130728A1 publication Critical patent/ITRM20130728A1/it
Priority to IL246243A priority patent/IL246243B/en
Priority to HK16114171A priority patent/HK1225832A1/zh

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/102Program control for peripheral devices where the programme performs an interfacing function, e.g. device driver
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/42Bus transfer protocol, e.g. handshake; Synchronisation
    • G06F13/4282Bus transfer protocol, e.g. handshake; Synchronisation on a serial bus, e.g. I2C bus, SPI bus
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/06Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor
    • G06F5/10Methods or arrangements for data conversion without changing the order or content of the data handled for changing the speed of data flow, i.e. speed regularising or timing, e.g. delay lines, FIFO buffers; over- or underrun control therefor having a sequence of storage locations each being individually accessible for both enqueue and dequeue operations, e.g. using random access memory
    • G06F5/12Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations
    • G06F5/14Means for monitoring the fill level; Means for resolving contention, i.e. conflicts between simultaneous enqueue and dequeue operations for overflow or underflow handling, e.g. full or empty flags
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/06Network architectures or network communication protocols for network security for supporting key management in a packet data network
    • H04L63/061Network architectures or network communication protocols for network security for supporting key management in a packet data network for key exchange, e.g. in peer-to-peer networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2213/00Indexing scheme relating to interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F2213/0042Universal serial bus [USB]

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Information Transfer Systems (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Exchange Systems With Centralized Control (AREA)
  • Telephonic Communication Services (AREA)
  • Computer And Data Communications (AREA)
  • Character Discrimination (AREA)

Description

Descrizione
Campo in cui si esplica l’invenzione
La presente invenzione fa riferimento in generale all’utilizzo della firma digitalizzata per l’identificazione immediata di una persona in relazione a delle transazioni di tipo bancario commerciale, più in particolare essa riguarda il metodo di interazione tra la periferica hardware preposta alla rilevazione della firma del cliente e il computer, quando l’interlavoro tra questi avviene da remoto, su una rete locale o intranet, o persino a mezzo Internet.
Stato dell’arte
Nel campo dell’informatica, esistono dispositivi periferici per computer che usano un’interfaccia di tipo HID (Human Interface Device). Esempi di questi dispositivi sono ad esempio i Mouse; il loro scopo è di trasmettere al computer con elevata periodicità la posizione del mouse stesso, al fine di permettere all’utente il rapido movimento del puntatore sullo schermo per una rapida interazione con il sistema operativo ed i programmi.
L’interfaccia HID è normalmente realizzata come protocollo di una comunicazione tramite porta USB (Universal Serial Bus). Uno dei vantaggi dell’interfaccia HID è che, data la grande diffusione dei dispositivi che la utilizzano, è supportata nativamente da tutti i sistemi operativi e di conseguenza non è necessario installare alcun driver per utilizzare un dispositivo basato su di essa.
Non solo i mouse utilizzano un’interfaccia HID: altri dispositivi spesso realizzati appoggiandosi ad essa sono le tavolette grafiche usate per il disegno a mano e per la firma autografa. Tali dispositivi trasmettono in rapida ripetizione la posizione della penna sulla superficie di disegno o di firma, assieme a dati accessori, quali ad esempio la pressione esercitata dalla mano sulla penna e l’istante di rilevamento di ogni punto, necessari per il rilevamento di velocità e pressione istantanee (dati grafometrici). La firma acquisita, se completa dei dati grafometrici, è usata quale valido sostituto della firma autografa, ottenendo una validità legale superiore a quella della firma su carta.
La trasmissione tramite USB/HID è anche usata, in alcuni casi, per la trasmissione di quantità di dati superiori a quelli di posizione, velocità e pressione e non solo per la trasmissione da periferica a computer, ma anche da computer a periferica. Ad esempio, la tavoletta di firma grafometrica modello DDD-F-11A a nome PRB S.r.l. (Domande di brevetto italiano in corso: RM2011A000370 e RM2011A000652) usa lo stesso protocollo per trasmettere dal PC alla tavoletta le immagini e il testo da visualizzare sullo schermo prima della firma; tra i dati visualizzati normalmente ci sono: il logo grafico dell’organizzazione che usa la tavoletta (ad esempio, la banca che la utilizza allo sportello); il nome e cognome del firmatario; la data ed ora; il contenuto della clausola che si sta per firmare (ad esempio, il tipo e l’importo della transazione bancaria). I dati, soprattutto quelli grafici, hanno dimensioni maggiori di quelle che possono essere ospitate in un normale pacchetto HID: in tal caso essi vengono suddivisi in tanti pacchetti di piccola dimensione che, per mezzo di un opportuno protocollo di livello superiore all’HID, vengono riaccorpati dal lato della loro ricezione.
Un primo problema della tecnica sopra descritta – largamente impiegata – è che se pure essa risolve egregiamente il problema di stabilire una comunicazione USB semplicemente e senza sviluppare, distribuire, installare ed usare uno speciale driver di dispositivo per ogni sistema operativo, comunque presenta un grave problema nel caso degli ambienti virtuali che sono descritti nel seguito. La tecnica informatica attuale fornisce strumenti innovativi, quali l’emulazione remota di computer. Questa tecnica permette di sostituire un personal computer "fisico" con un computer "virtuale", che risiede in un computer server remoto e collegato, in protocollo TCP/IP tramite una rete (Internet, Intranet, Rete locale). Il computer "fisico" con cui interagisce l’operatore è sostituito da un terminale "stupido", privo di risorse di elaborazione o dotato di poche risorse di base (video, tastiera e mouse), che ripete lo schermo del computer "virtuale" remoto e ad esso invia le battute di tasto della tastiera e la posizione del mouse.
Nel caso in cui sia necessario gestire un dispositivo fisico locale, quale una tavoletta di firma, la tecnica di virtualizzazione utilizza una porta USB locale che però è anch’essa "stupida": i dati trasmessi e ricevuti sulla porta USB sono semplicemente inviati alla macchina "virtuale" nella quale risiedono il driver e il software che gestiscono la comunicazione.
Per una trasmissione più veloce possibile, il sistema di virtualizzazione deve ospitare un breve pacchetto HID per ogni ben più grande pacchetto TCP, quindi la trasmissione è continua ma lenta; per una trasmissione efficiente, occorre ospitare più pacchetti HID per ogni pacchetto TCP, quindi la trasmissione è discontinua.
Il problema (risolto con il metodo descritto di seguito) si presenta quando il terminale "stupido" e il computer "virtuale" sono collegati tra loro per mezzo di una rete lenta, quale può essere Internet o anche una rete locale con molto traffico. In tal caso, anche la trasmissione USB virtualizzata presenta rallentamenti o addirittura perdita di dati.
I rallentamenti, nel caso di un mouse, si percepiscono perché il cursore sullo schermo, anziché muoversi con fluidità, si sposta "a salti"; questo effetto, anche se può disturbare, non ha però le conseguenze negative che si hanno quando il dispositivo USB-HID è una tavoletta di firma.
Perché la firma possa essere usata validamente come prova grafologica, è infatti indispensabile che essa sia completa, che ogni punto digitalizzato sia completo di velocità e pressione e, fattore fondamentale, che l’"acquisition rate" o "velocità di acquisizione" sia assolutamente costante, in modo da permettere un esatto calcolo di velocità ed accelerazione. Tale "rate" non deve essere inferiore a 200 punti/secondo e nei migliori modelli è anche superiore: nel modello già citato a nome PRB, è pari a 400 punti/secondo. Se il rallentamento, anche temporaneo, della connessione USB-HID produce "salti" o "buchi" nell’acquisizione, l’effetto è la deformazione della firma acquisita, la mancanza di alcuni tratti e, in definitiva, l’inaccettabilità della firma come prova grafologica.
Un altro problema si presenta quando la comunicazione HID è usata per trasmettere immagini dal computer alla tavoletta di firma: data la necessità di suddividere i dati in numerosi piccoli pacchetti, la trasmissione risulta piuttosto lenta anche se il computer non è virtualizzato. Lo scarico di un’immagine di dimensioni pari a quelle dell’intero schermo della tavoletta (ad esempio, di 480 x 272 pixel) può richiedere alcuni secondi; questo tempo diventa svariate decine di secondi in un sistema virtualizzato: tale attesa è chiaramente eccessiva ed inaccettabile.
È quindi uno scopo della presente invenzione quello di fornire una tecnica di scambio comandi tra elaboratore e tavoletta grafica che risolve le problematiche esposte relative all’interazione tra la periferica hardware preposta alla rilevazione della firma del cliente e il computer, quando l’interlavoro tra questi avviene da remoto su una rete locale o intranet o persino a mezzo Internet.
È ancora scopo della presente invenzione quello di fornire un metodo di scambio comandi tramite disco USB e relativi dispositivi che ne attuano l’implementazione, che permettano di superare il problema del corretto funzionamento in un ambiente virtualizzato, remotizzato o comunque lento; e permettano anche di superare il problema della velocità nello scambio di dati, senza introdurre la necessità di realizzare un protocollo USB dedicato con la conseguente necessità di sviluppare ed installare un apposito driver di dispositivo.
Si vuole d’altra parte fornire un metodo di scambio comandi tramite disco USB e relativi dispositivi che ne permettono l’implementazione, che si basino su componentistica HW diffusa. Si prevede quindi di impiegare componenti elettroniche standard, a livello di indirizzamento di memoria RAM, ROM, oppure Flash, al fine di rendere i nuovi dispositivi di acquisizione contenuti nei costi, di elevata affidabilità e di immediato utilizzo.
Questi scopi sono raggiunti con un apparato per l’acquisizione della firma naturale basato su di una tavoletta digitalizzatrice del tipo "Touch Screen" il cui interfacciamento con il computer dedicato all’elaborazione della firma acquisita si caratterizza in accordo con la rivendicazione 1 che seguirà. Le rivendicazioni subordinate permetteranno di delineare una serie di alternative per l’implementazione del principio fondamentale.
Il metodo oggetto della presente invenzione risolve completamente i problemi evidenziati, senza necessità di usare protocolli speciali e senza necessità di installare driver di dispositivo.
Il metodo consiste nel fare apparire la tavoletta di firma come un disco rimovibile "USB drive", in altre parole come una "penna USB", dispositivo assai diffuso e supportato da tutti i sistemi operativi senza necessità di driver di dispositivo. Un dispositivo di questo tipo è gestito molto diversamente rispetto a un dispositivo HID:
1- La trasmissione nei due sensi avviene a blocchi molto più grandi (ad esempio 512 byte contro i 64 dell’HID)
2- Il disco presenta un’area di memorizzazione praticamente grande a piacere.
Esaminiamo in dettaglio questi due punti nel caso in cui la porta USB sia virtualizzata e i dati siano inoltrati tramite una rete a pacchetti:
1- Un blocco di 512 byte è di dimensione paragonabile a quello trasmesso su una rete TCP/IP, quindi la sua trasmissione avviene in modo efficiente, a differenza del breve pacchetto di pochi byte (ad es. 64) usato nel caso HID.
2- È possibile creare un disco di area ben maggiore di un pacchetto ed usarlo come memoria temporanea ("buffer") per i dati in attesa di essere trasmessi. Si elimina così la possibilità di perdita di dati anche in caso di rallentamenti nella trasmissione.
La soluzione oggetto del brevetto comprende svariati accorgimenti tecnici, che saranno descritti nel seguito, che sono adottati principalmente per adattare un disco, dispositivo nato per memorizzare e conservare dati statici, a funzionare come un buffer di trasmissione.
Si noti che la soluzione è stata studiata per sostituire la sezione di comunicazione della tavoletta di firma con un’altra funzionalmente equivalente. In particolare, prima della sostituzione, la tavoletta inviava al computer i punti della firma man mano che erano acquisiti, e il programma che riceve la firma nel computer la visualizzava nello schermo in tempo reale; questa caratteristica è utile per evidenziare immediatamente problematiche che renderebbero necessaria la ripetizione dell’operazione: ad esempio, nel caso della persona che cerca di firmare invertendo nome e cognome rispetto alla firma depositata o che firma in modo abbreviato. È stata quindi esclusa una soluzione che prevedesse l’acquisizione e la memorizzazione di tutta la firma nella tavoletta, e il suo invio totale al computer solo al momento del suo completamento. Tale soluzione, chiaramente più confacente con un dispositivo di memorizzazione di massa quale un disco USB, comporterebbe la perdita di una caratteristica desiderata, quale appunto la visualizzazione della firma durante l’acquisizione e non solo alla fine. Con il metodo qui descritto la trasmissione avviene comunque durante la firma e, in caso di trasmissione lenta da macchina virtuale o remotizzata, l’operatore al computer percepisce, nel caso peggiore, solo un certo ritardo nella sua visualizzazione.
Breve descrizione dei disegni
Al solo fine di meglio chiarire l’invenzione e senza con ciò volerne limitare l’ambito ed i settori di impiego, la presente invenzione verrà ora descritta con riferimento ad una serie di realizzazioni particolari ma non limitative o vincolanti, mostrate nei disegni allegati, in cui:
La figura 1 è uno schema rappresentativo di una soluzione diversa da quella secondo la presente invenzione.
La figura 2 è uno schema rappresentativo di una soluzione secondo la presente invenzione.
La figura 3 è una rappresentazione schematica di una configurazione del dispositivo di memoria esterna e delle modalità di interlavoro tra unità periferica ed elaboratore secondo la presente invenzione.
La figura 4 è uno schema a blocchi delle diverse sezioni componenti il dispositivo di memoria esterna secondo la tecnica nota.
La figura 5 è uno schema a blocchi delle diverse sezioni componenti il dispositivo di memoria esterna secondo la presente invenzione.
La figura 6 è una ulteriore rappresentazione schematica di una configurazione del dispositivo di memoria esterna e delle modalità di interlavoro tra unità periferica ed elaboratore.
La figura 7 è una rappresentazione schematica di una ulteriore configurazione del dispositivo di memoria esterna e delle modalità di interlavoro tra unità periferica ed elaboratore, per le funzionalità di visualizzazione dell’immagine sulla periferica.
La figura 1 evidenzia il funzionamento della soluzione (che non si è voluto adottare) che acquisisce totalmente la firma: durante la fase di firma (I) la tavoletta digitalizzatrice 21 memorizza i dati della firma (posizione, velocità, pressione, tempo), man mano che sono acquisiti, nel disco 22 sotto forma di un file 23. La fase di firma finisce quando il firmatario inserisce la conferma, con l’apposito tasto. A tal punto inizia la fase di scaricamento (II) nella quale il computer 24 legge il file 23 dal disco 22; al termine della ricezione del file che contiene i dati della firma, il computer 24 è in grado di visualizzare, in un sol colpo, la firma sullo schermo 40.
Con il metodo qui descritto – relativo al disegno di Fig. 2 –, invece, la tavoletta digitalizzatrice 21 invia i dati della firma ad una coda 25 di tipo FIFO (first in, first out) nel disco 22; il computer 24 legge i dati dalla FIFO 25 man mano che sono disponibili, e li visualizza sullo schermo con il solo ritardo dato dalla comunicazione disco-computer, non quindi con un ritardo pari alla intera durata della firma.
La coda FIFO 25 di tipo circolare, è realizzata nel disco sfruttando le normali funzioni già presenti nel "file system" di tutti i computer, in modo da non richiedere assolutamente la realizzazione di particolari driver di dispositivo; in particolare sono usate:
- la comune funzione che permette di leggere e scrivere uno qualsiasi dei settori in cui è suddiviso il disco,
- la possibilità di condividere un file, cioè di aprirlo, leggerlo e scriverlo contemporaneamente in due diversi dispositivi, nel nostro caso: la tavoletta digitalizzatrice 21 e il computer 24 con cui è collegata.
Per la comunicazione bidirezionale tavoletta-computer è usato un solo file che viene generato e reso disponibile secondo la tecnica descritta più avanti.
Con riferimento alla figura 3, il file, qui rappresentato come una successione lineare di dati, è condiviso tra la tavoletta 21 e il computer 24, che possono ambedue leggerlo e scriverlo, in istanti virtualmente coincidenti, secondo la normale tecnica informatica della condivisione di file, mediante l’implementazione di semafori dedicati.
Il primo settore A di questo file, evidenziato con un contorno più marcato nella figura 3, è usato per l’organizzazione della coda FIFO creata all’interno del file stesso.
Le posizioni numerate nel primo settore A del disco hanno il significato che segue:
1) = comando da computer a tavoletta
4) = risposta al comando da tavoletta a computer
2) = puntatore al settore in lettura da computer
3) = puntatore al punto in lettura da computer
5) = puntatore al settore in scrittura da tavoletta
6) = puntatore al punto in scrittura da tavoletta.
I settori dal secondo all’ultimo, B, C…N, sono invece usati per contenere i dati dei punti di firma acquisiti: ad esempio, nel caso di un settore di 512 byte e di dati di firma composti di 8 byte per ogni punto, ogni settore può contenere 512/8=64 punti di firma.
Per iniziare l’operazione di firma, il computer 24 scrive il relativo comando come un byte nella posizione del primo settore indicata con 1. La tavoletta 21, mentre è a riposo, legge continuamente tale settore, quindi non appena vede il comando di firma nella posizione 1 inizia ad acquisire la firma e comunica l’accettazione del comando scrivendo la risposta, sotto forma di un byte, nella posizione 4; contemporaneamente nelle posizioni 2 e 5 scrive il numero del primo settore di dati del disco (il settore 2) e nelle posizioni 3 e 6 il numero 1. Il computer 24 vede la risposta al comando nella posizione 4 e si predispone a visualizzare la firma che sarà apposta dal firmatario ed acquisita.
La tavoletta 21 acquisisce, alla velocità data dall’"acquisition rate" (nel caso particolare 400 volte al secondo), i punti di firma e man mano scrive ognuno nel settore indirizzato dal puntatore di settore 5 e dal puntatore di punto 6. Ad ogni punto incrementa il puntatore di punto 6 e, quando esso supera il numero di punti che può essere contenuto in un settore (es. 64), azzera il puntatore di punto 6 e incrementa di un’unità il puntatore di settore 5. Se il puntatore di settore arriva a superare l’ultimo settore del disco, la tavoletta lo riporta al valore 2, andando in questo modo a riutilizzare il primo settore libero che nel frattempo sarà già stato letto dal computer (coda circolare).
Mentre la tavoletta scrive i punti con la sequenza descritta, quasi contemporaneamente il computer 24 vede che il puntatore 6 o il puntatore 5 sono diversi dai puntatori 3 e 2, quindi comprende che vi sono dei punti pronti da leggere; legge ogni punto dal disco nella propria memoria operativa e incrementa il puntatore 3. Se il puntatore 3 arriva a superare il numero di punti per settore (es. 64), azzera il puntatore 3 e incrementa il puntatore 2. Il computer si ferma non appena tutti i punti generati dalla tavoletta sono stati letti; questa condizione si verifica quando il puntatore 3 incrementato arriva allo stesso valore del puntatore 6 e il puntatore 2 arriva allo stesso valore del puntatore 5.
Va notato che l’esatta sequenza temporale degli eventi non influenza in alcun modo la correttezza dello svolgimento dell’operazione di trasferimento dati. Infatti la tavoletta 21 scrive unicamente i puntatori 5 e 6 mentre il computer 24 scrive unicamente i puntatori 2 e 3. Quindi, anche se l’accesso dei due dispositivi avviene in tempi asincroni e con qualsiasi grado di sovrapposizione, non si verificano incoerenze nei dati, ma tutt’al più dei ritardi.
Se l’acquisizione da parte del computer 24 rallenta o si ferma per un certo tempo, la tavoletta 21 continua a scrivere i dati nel file e ad aggiornare i puntatori; quando il computer torna disponibile, ricupera il ritardo e acquisisce i punti in sospeso nella FIFO 25, purché la velocità media di lettura sia almeno pari alla velocità media di scrittura.
Come si è accennato, giunta alla fine del file la tavoletta riprende a scrivere dal secondo settore riutilizzando quindi la zona già usata, purché sia stata liberata nel frattempo dal computer.
Vi sono due condizioni particolari:
- FIFO vuota: quando puntatore 2 = puntatore 5 e puntatore 3 = puntatore 6 - FIFO piena: quando puntatore 5 = puntatore 2 meno 1.
Chiaramente, quando la FIFO è vuota il computer non deve leggere punti, e quando la FIFO è piena la tavoletta non ne può scrivere.
Quest’ultima condizione, nel normale funzionamento, non si verifica mai, perché la dimensione totale del disco è scelta per contenere tutti i punti che si possono accumulare nel caso di massimo ritardo di lettura dal computer. Nel caso in esempio, una dimensione del disco di 32768 byte, sottratto il primo settore di 512 byte usato per i comandi, contiene 32256 byte di dati utili, cioè 4032 punti di firma da 8 byte ognuno, pari a più di 10 secondi di firma attiva. Un ritardo di più di dieci secondi (molto elevato per la tecnica attuale) nell’acquisizione da parte del computer è quindi il massimo supportato dal tale dimensione del disco.
Realizzazione del disco
Nella particolare realizzazione che si riporta come esempio, il disco è realizzato all’interno della tavoletta di firma e sfrutta lo stesso microcontrollore che realizza le altre funzioni della tavoletta: acquisizione della firma, visualizzazione nel display, visualizzazione di tasti ed acquisizione del loro azionamento.
Il disco è realizzato secondo la normale tecnica informatica comune a tutte le unità di memoria di massa di tipo USB, comunemente denominate "Pen Drive" o "USB Disk" o, in italiano, "Chiavetta USB". Non si descrive nel dettaglio tale tecnica perché ampiamente diffusa e supportata da tutti i normali sistemi operativi quali Windows e quelli di tipo simile a Unix (Linux, Mac OS, Android). Questi dispositivi realizzano la USB Mass Storage Device class o MSD class che si basa su MSD protocol, una realizzazione per mezzo di comunicazione USB del protocollo SCSI. Tutti questi protocolli sono universalmente noti, sono normati da standard ufficiali e supportati dai sistemi operativi senza necessità di configurazioni o installazioni particolari. Lo stesso vale per i sistemi operativi "remotizzati" o "virtuali", che supportano immediatamente le unità di memoria di massa su porta USB.
Quella che è stata realizzata in modo originale è invece la struttura interna del disco, che aderisce dal punto di vista logico allo standard FAT in uso da molti anni e regolato dalla normativa ISO/IEC 9293, ma è realizzato fisicamente in modo originale, allo scopo di risolverne alcuni problemi e da migliorarne le prestazioni.
In particolare, nei sistemi operativi esiste la possibilità di modificare le dimensioni di un file su disco, di cancellarlo o di formattare completamente il disco stesso. L’uso di una di queste funzioni, anche accidentale, avrebbe conseguenze disastrose sul funzionamento del sistema di comunicazioni sopra descritto, perché la cancellazione del file toglierebbe ogni possibilità di comunicazione tra il computer e la tavoletta, mentre anche solo una variazione della sua dimensione durante il funzionamento comprometterebbe la sincronizzazione tra la funzione di trasmissione e quella di ricezione.
La figura 4 rappresenta la struttura di una comune memoria di massa USB reperibile in commercio, mentre la figura 5 rappresenta la struttura realizzata con il metodo qui descritto.
Con riferimento alla figura 4, in una normale memoria di massa USB il connettore USB 31 comunica con il blocco d’interfaccia USB 32, il quale a sua volta comunica con il blocco 33 che gestisce il protocollo MSD verso il computer e realizza anche il file system che normalmente è di tipo FAT (File Allocation Table) esistente nelle varianti FAT12, FAT16 e FAT 32. I blocchi 32, 33 e 34 sono realizzati totalmente in hardware oppure possono anche essere, in tutto o in parte, realizzati per mezzo di un microcontrollore programmato con un apposito firmware. La memoria che contiene fisicamente i dati è attualmente realizzata per mezzo di una memoria di tipo Flash (cancellabile e riscrivibile a blocchi), indicata in figura con il numero 35; in passato tale memoria era invece realizzata con un supporto magnetico quale ad esempio un floppy disk.
Il file system di tipo FAT è stato concepito per permettere tutte le normali funzioni di una memoria a disco, quindi prevede anche la creazione e cancellazione di file, la variazione di dimensioni dei file, la formattazione completa del disco. In particolare, la tabella di allocazione chiamata FAT, che dà anche il nome a tutto il file system che la realizza, è realizzata in modo da permettere lo sfruttamento di tutte le aree del disco anche in caso di cancellazione di file, di aumento delle dimensioni di un file già presente, di generazione di nuovi file di dimensioni incompatibili con gli spazi vuoti esistenti: un file infatti può essere "sparpagliato" in diverse zone del disco, in base alla tecnica delle cancellazioni e delle riutilizzazioni dei vari settori in cui il disco è suddiviso. Se i file sono sparpagliati nel disco, si parla di "frammentazione" del file system.
La memoria di massa descritta in figura 4 colloca in memoria Flash tutte le strutture del file system FAT, denominate MBR, Boot Sector, FAT, Root Directory e infine la memoria che contiene i dati veri e propri, chiamata DATA. Se, ad esempio, il computer collegato alla porta USB richiede la variazione della dimensioni di un file, il gestore 33 della funzione FAT provvede, tramite il gestore di memoria 34, a modificare il settore FAT per riflettere la nuova allocazione dei dati del file all’interno della sezione DATA. Se è richiesta la cancellazione di un file, il gestore 33 provvede, sempre tramite 34, a riscrivere il settore contenente la Root Directory con il nome del file invalidato e provvede a riscrivere il settore FAT in modo da indicare come libero lo spazio che prima era occupato dal file cancellato.
Come si è detto, volendo usare il disco per realizzare uno scambio di comandi, le funzioni di cancellazione, formattazione ed ogni variazione dell’allocazione del file all’interno della zona DATA sono da evitare assolutamente; il metodo oggetto dell’invenzione prevede quindi una diversa struttura che è riportata in figura 5.
Mentre i blocchi 31, 32, 33, 34 hanno la stessa funzione di quelli della figura 4, la memoria fisica è realizzata in due distinti blocchi: il blocco 38 che è realizzato con una memoria di sola lettura ROM e il blocco 39 che è realizzato con una memoria RAM (a lettura/scrittura di tipo volatile). I settori MBR, BOOT SECTOR, FAT e ROOT DIRECTORY sono scritti una volta per tutte in una memoria di tipo ROM, quindi ogni operazione che ne comporta la variazione (anche accidentale) non ha alcuna conseguenza e il disco mantiene sempre la stessa struttura, lo stesso elenco di file e la stessa allocazione. La zona DATA, indicata con 39, è invece realizzata con una memoria di tipo RAM. Una memoria RAM è normalmente molto più veloce di una Flash, sia in lettura, sia, di gran lunga di più, in riscrittura; infatti la Flash richiede la cancellazione del settore prima di poterlo riscrivere mentre la RAM può essere riscritta anche un byte alla volta. Quindi l’uso di RAM velocizza enormemente la risposta del disco, requisito indispensabile volendolo usare per la trasmissione di comandi.
Inoltre tutte le memorie di tipo Flash hanno, nella loro vita, un numero massimo di cicli di cancellazione, dopo il quale possono essere inutilizzabili per sempre. Il numero di cancellazioni, dell’ordine da centomila a un milione, è sufficiente per una memoria di massa, ma è molto basso per una interfaccia di comandi in cui sono possibili centinaia o migliaia di riscritture al secondo. L’uso della RAM è quindi l’unica possibilità per rendere fattibile questo particolare uso della memoria di massa; il fatto che la RAM è volatile, cioè perde il contenuto se si toglie tensione, non dà nessun problema perché i dati hanno breve durata temporale. Anzi, il fatto che il disco torni "pulito" ad ogni accensione è positivo perché elimina certamente ogni possibile residuo di operazioni precedenti che potrebbero non essere andate a buon fine.
Va notato che il blocco 38, anziché con memoria ROM, può anche essere realizzato con una memoria di tipo Flash; in tal caso, per evitarne assolutamente la possibilità di riscrittura, si disabilita permanentemente (ad hardware o a firmware) la funzione di cancellazione dei settori in cui è collocata, ottenendo un comportamento uguale a quello di una ROM e mantenendo il vantaggio di potere scrivere la memoria, una sola volta in produzione, con un normale programmatore esterno o con uno speciale firmware di prima programmazione.
Realizzazione della FAT
Nel caso dell’interfaccia di comandi qui descritta, si è deciso di usare per lo scambio di comandi e di dati un solo file della massima dimensione disponibile nella RAM utilizzata (nel caso dell’esempio, 32k o 32768 byte). La tabella FAT è quindi stata preparata, una sola volta all’atto della progettazione, in modo da allocare il file in maniera lineare su tutta la RAM. Quindi i settori del disco si trovano nella RAM uno dopo l’altro in esatta successione crescente; se l’allocazione del file non fosse fissa in ROM, i settori potrebbero invece trovarsi in ordine più o meno sparso in base alla storia delle cancellazioni e riscritture effettuate in precedenza.
L’allocazione assolutamente lineare del file ha un altro grande vantaggio che viene qui descritto. Per accedere ai dati del disco, che come si è detto è condiviso tra computer e tavoletta di firma, sia il computer sia la tavoletta debbono essere dotati di un gestore di file system FAT. Il gestore è piuttosto complesso e richiede una discreta quantità di risorse di elaborazione, che sono certamente disponibili nel computer, ma sono piuttosto onerose da realizzare con il piccolo microcontrollore di cui è dotata la tavoletta grafica; oltre allo sforzo iniziale per la loro realizzazione, l’effettuazione delle funzioni FAT da parte della tavoletta comporterebbe grande lentezza di esecuzione. Ma l’allocazione lineare dei settori del disco nella memoria RAM permette, dal lato della tavoletta 21, di fare completamente a meno di un gestore di file system: per accedere a un qualsiasi settore il microcontrollore esegue solo l’accesso diretto alla RAM, dopo aver calcolato con una semplice moltiplicazione l’indirizzo del settore all’interno della RAM. Ad esempio, nel caso di settori da 512 byte ognuno numerati da zero in avanti, l’indirizzo del settore in RAM è semplicemente dato da: Indirizzo = Numero di settore x 512.
In definitiva, la particolare allocazione adottata permette un enorme risparmio nella complessità della soluzione e una velocità di risposta migliore. Una prova fatta nella particolare realizzazione portata come esempio ha dimostrato che, usando una memoria Flash e un file system anche dal lato della tavoletta, una operazione elementare (scrittura e lettura di un settore da ambo i lati) richiedeva 120 millisecondi mentre, con memoria RAM e senza file system lato tavoletta, la stessa operazione richiede 3 millisecondi.
Si passa ora ad esaminare la realizzazione di alcune delle funzioni tipiche della tavoletta, oltre a quella di acquisizione e trasmissione della firma già riportata in precedenza.
Scambio di chiavi
Al pari dello scambio di comandi e trasmissione di dati nel caso dell’acquisizione della firma, anche tutti i comandi operativi e le relative risposte sono scambiati tramite lo stesso tipo di organizzazione basata su disco condiviso, eventualmente senza l’uso di una coda FIFO di dati, ma solo con comandi scambiati nel primo settore.
Come esempio di comando, si riporta quello relativo allo scambio di chiavi di crittografia.
Una funzione essenziale di ogni valida tavoletta per l’acquisizione della firma è quella della crittografia dei dati di firma, per impedirne l’intercettazione dalla comunicazione USB. Già si comprende che una comunicazione tramite coda FIFO su disco, del tipo descritto, non è semplice da interpretare come la continua trasmissione dei dati di posizione e pressione usata da un normale dispositivo HID. Inoltre, il dispositivo descritto provvede alla cifratura dei dati ben prima della loro trasmissione: la cifratura è realizzata con algoritmo simmetrico, punto per punto, nel momento stesso in cui ogni punto della firma, appena acquisito, è scritto nella RAM che forma i settori del disco di scambio dati. Quindi qualsiasi analisi dei dati che transitano nel collegamento USB non permette l’estrazione della firma.
La chiave di cifratura è rinnovata ad ogni operazione di firma per mezzo del noto protocollo crittografico tipo Diffie-Hellman. Come si vede in figura 6, il computer scrive nella posizione 1 del primo settore del disco il byte che indica il comando di scambio chiavi, e nei byte successivi la propria chiave casuale Ka. La tavoletta risponde inserendo nel byte alla posizione 4 la risposta affermativa al comando ricevuto, e inserendo nel seguito la propria chiave casuale Kb. Immediatamente dopo ambedue i dispositivi effettuano le operazioni previste dall’algoritmo Diffie-Hellman generando così la chiave comune di crittografia simmetrica che viene usata nella successiva operazione di firma. Lo scambio di chiavi richiede solo la scrittura e lettura di un settore del disco, che nel caso dell’esempio dura appena tre millisecondi.
Visualizzazione di immagini
Nell’uso della tavoletta di firma 21, la funzione che richiede la trasmissione della maggior quantità di dati è quella in cui il computer 24 trasmette alla tavoletta 21 un’immagine che deve essere visualizzata nello schermo della tavoletta. Nel caso, ad esempio, di un’immagine della dimensione di 480 x 272 pixel con 65536 colori, ogni pixel comporta la trasmissione di due byte, quindi l’immagine occupa 480 x 272 x 2 = 262120 byte.
La tecnica qui descritta prevede di suddividere i dati dell’immagine in blocchi di dimensione pari ad un settore del disco, nel caso dell’esempio 512 byte ognuno. Come si vede in figura 7, il computer inserisce nella posizione 1 il byte di comando visualizzazione immagini e nelle posizioni successive le coordinate sullo schermo (X1,Y1) e (X2,Y2) dei due angoli superiore destro e inferiore sinistro dell’immagine da visualizzare. Inoltre azzera il contatore Bw dei blocchi scritti e il contatore Br dei blocchi letti. La tavoletta scrive la risposta al comando nella posizione 2.
Il computer 24 quindi inizia a scrivere nei settori dati, i blocchi in cui ha suddiviso l’immagine; per ogni blocco scritto incrementa Bw. La tavoletta vede che Br è diverso da Bw e inizia a leggere i blocchi di dati e a trasferirli nello schermo. Ad ogni blocco incrementa Br, e prosegue finché Br diventa uguale a Bw.
Come si è detto, i blocchi corrispondono ai settori del disco e sono consecutivi; per realizzare una coda FIFO circolare si usa una semplice formula che dà il numero del settore a partire dal numero del blocco corrente:
Settore = 2 Blocco mod Ns
Ns è il numero di settori del disco disponibili per i dati; ad esempio, nel caso del disco da 32768 byte con settori da 512 byte, e tenendo conto che il primo settore è usato per i comandi, si ha Ns = 32768/512 – 1 = 63.
L’operazione di modulo realizza automaticamente il ritorno al primo settore quando il blocco arriva dopo la fine del disco.
Anche in questo caso occorre gestire le condizioni di:
- buffer vuoto Br=Bw
- buffer pieno Bw-Br=Ns
A buffer vuoto, la tavoletta smette di leggere; a buffer pieno, il computer smette di scrivere finché la tavoletta non ha liberato dello spazio. Va notato che, anche in questo caso, qualsiasi sia la velocità di lettura e scrittura dei dati e l’ordine di lettura e scrittura del primo settore che contiene i contatori, non esiste alcuna possibilità di corruzione dei dati dovuta a rallentamenti o caduta della trasmissione.
La tavoletta 21, quando ha ricevuti tutti i dati necessari a completare l’immagine, o in altre parole quando arriva a scrivere il pixel di posizione (X2,Y2), comprende che è stata raggiunta la fine della trasmissione dell’immagine e toglie la propria risposta dalla posizione 2 del primo settore. Il computer rileva quindi che la trasmissione è andata a buon fine.
Vantaggi ed industrialità del trovato
Come è stato evidenziato nella descrizione precedente, il metodo secondo la presente invenzione permette di superare il problema principale che è quello del corretto funzionamento in un ambiente virtualizzato, remotizzato o comunque lento; permette anche di superare il secondo problema, quello della velocità nello scambio di dati, senza introdurre la necessità di realizzare un protocollo USB personalizzato con la conseguente necessità di sviluppare ed installare un apposito driver di dispositivo. Il metodo inoltre risolve svariati altri problemi che si presentano adottando una comunicazione tramite memoria di massa, in particolare quello di evitare la cancellazione dei dati o la modifica della dimensione del file utilizzato per la comunicazione.
Il metodo, qui descritto per l’uso come interfaccia per una tavoletta di firma, può essere vantaggiosamente essere usato in una grande quantità di altre applicazioni informatiche in cui un computer deve dialogare con una periferica, quindi l’ambito di protezione del presente brevetto non deve essere inteso come limitato alle applicazioni nel campo delle tavolette di firma, ma esteso ad ogni applicazione in cui esiste una comunicazione tra un computer e un dispositivo periferico o esterno.

Claims (13)

  1. RIVENDICAZIONI 1. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati per un elaboratore (24) nel processo di I/O, con delle periferiche seriali esterne (21) – quali tavolette grafiche e/o digitalizzatrici per la firma autografa – caratterizzato dal fatto di utilizzare un supporto esterno (22) di memorizzazione di dati statici in modo da costituire un buffer di trasmissione che operi con l’unità periferica seriale (21) vista come un disco virtuale rimovibile "USB drive", su tale supporto esterno (22) essendo configurato un solo file costituito come una successione sequenziale lineare di dati in settori di dimensioni costanti, condivisibili tra l’unità periferica seriale (21) e l’elaboratore (24), che possono ambedue leggerlo e scriverlo, in parallelo, di qui definendo una trasmissione di I/O asincrona con blocchi dati di contenuto dell’ordine del Kbyte e un’area di memorizzazione di fatto grande a piacere, comunque ben maggiore di un pacchetto dati, impiegata come memoria temporanea di transito per i dati in attesa di essere trasmessi, tale file comprendendo: a- un primo settore (A) con i seguenti codici operativi funzionali ad una organizzazione FIFO degli accessi I/O: i. comando (1) da computer (24) a unità periferica seriale (21), ii. risposta al comando (4) da unità periferica seriale (21) a computer (24), iii. puntatore al settore (2) in lettura da computer (24), iv. puntatore al punto (3) in lettura da computer (24), v. puntatore al settore (5) in scrittura da unità periferica seriale (21), vi. puntatore al punto (6) in scrittura da unità periferica seriale (21), e b- una serie di settori (B, C, D…N) successivi al primo configurati di dimensioni costanti per l’accesso immediato ai dati in essi contenuti.
  2. 2. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo la rivendicazione 1 caratterizzato dal fatto che la virtualizzazione della periferica (21) che si interfaccia attraverso le funzionalità USB drive è realizzata all’interno della stessa unità periferica seriale (21) di firma utilizzando, per gestire il supporto esterno (22) di memorizzazione lo stesso microcontrollore che gestisce le altre funzioni dell’unità periferica seriale, tipo l’acquisizione del tracciato e la visualizzazione sul display.
  3. 3. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che il supporto di memoria (22) sia costituito da una memoria fisica realizzata in due distinte sezioni: a- un blocco (38) realizzato con una memoria ROM a sola lettura, con i settori MBR, BOOT SECTOR, FAT e ROOT DIRECTORY scritti una volta per tutte in detta memoria di tipo ROM, mantenendo il supporto esterno sempre la stessa struttura, lo stesso elenco di file e la stessa allocazione; b- una serie di blocchi DATI (39), realizzati con una memoria di tipo RAM a lettura/scrittura, di tipo volatile.
  4. 4. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo la rivendicazione precedente caratterizzato dal fatto che la memoria (38) a sola lettura, sia realizzata con una memoria di tipo Flash, evitando la possibilità di riscrittura, mediante disabilitazione permanente della funzione di cancellazione dei settori in cui è collocata, di qui operando con una modalità di funzionamento uguale a quello di una ROM, scrivendo sulla memoria stessa, una sola volta al momento della produzione.
  5. 5. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che la tabella FAT del supporto di memoria (22) sia predisposta, una sola volta all’atto della progettazione, in modo da allocare detto file in maniera lineare su tutta la RAM, i settori di memoria essendo allocati nella RAM in sequenza in successione strettamente crescente.
  6. 6. Sistema real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo la rivendicazione precedente caratterizzato dall’allocazione lineare dei settori in cui è suddivisa la memoria RAM su supporto di memoria (22) senza l’impiego di alcun gestore di file system, il microcontrollore consentendo l’accesso diretto a un qualsiasi settore della RAM, mediante l’indirizzamento immediato alla locazione di memoria ottenuta con la moltiplicazione del numero di byte occupati da ciascun settore, con il numero di settore all’interno della RAM e sommando lo spiazzamento relativo all’entry point.
  7. 7. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati basato su un sistema Hardware secondo le rivendicazioni precedenti caratterizzato dal fatto di comprendere le seguenti fasi operative relative al procedimento di acquisizione: a) l’unità periferica seriale digitalizzatrice (21) predispone l’invio dei dati da acquisire in ingresso ad una coda (25) di tipo FIFO nel supporto esterno (22) attraverso: a-1) la configurazione di un solo file costituito come una successione sequenziale lineare di dati, in settori di dimensioni costanti, condivisibili, tra l’unità periferica seriale (21) e l’elaboratore (24), che possono entrambi in parallelo, leggere e scrivere, su detto file, a-2) l’inserimento nel primo settore di tale file, per l’organizzazione della coda FIFO all’interno del file stesso, dei seguenti codici operativi: i. comando (1) da computer (24) a unità periferica seriale (21), ii. risposta al comando (4) da unità periferica seriale (21) a computer (24), iii. puntatore al settore (2) in lettura da computer (24), iv. puntatore al punto (3) in lettura da computer (24), v. puntatore al settore (5) in scrittura da unità periferica seriale (21), vi. puntatore al punto (6) in scrittura da unità periferica seriale (21), b) l’elaboratore (24) legge i dati dalla FIFO (25) man mano che questi sono acquisiti dall’output dell’unità periferica (21), e li visualizza sullo schermo con il solo ritardo dato dalla comunicazione supporto di memoria - computer, senza i ritardi imputabili ad un processo di acquisizione basato sulla intera durata dell’input sulla periferica (21), l’accesso ai settori del file (B, C, …N) dal secondo all’ultimo – configurati per contenere i dati dei punti rilevati dall’unità periferica (21) –, avvenendo in modo immediato.
  8. 8. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che per attivare le operazioni di rilevazione dei dati digitali: I- l’elaboratore (24) scrive il relativo comando come un byte nella posizione del primo settore (1); II- l’unità periferica seriale (21), poiché a riposo legge continuamente tale primo settore (1) non appena vede il comando immesso in detta prima posizione inizia ad acquisire i dati in ingresso e comunica l’accettazione del comando scrivendo la risposta, sotto forma di un byte, nella posizione (4); III- parallelamente nelle posizioni (2) e (5) scrive il numero del primo settore dati del supporto esterno di memoria ed attiva le posizioni (3) e (6); IV- l’elaboratore (24) vede la risposta al comando nella posizione (4) e si predispone a visualizzare il tracciato che sarà apposto – dall’utente – ed acquisito; V- l’unità periferica seriale (21) acquisisce i punti del tracciato e progressivamente inserisce ognuno di essi nel settore indirizzato dal puntatore di settore (5) e dal puntatore di punto (6); VI- per ogni punto fornito in ingresso, l’unità periferica incrementa il puntatore di punto (6) e, quando esso supera il numero di punti che può essere contenuto in un settore, azzera il puntatore di punto (6) e incrementa di un’unità il puntatore di settore (5); VII- se il puntatore di settore arriva a superare l’ultimo settore del supporto esterno di memorizzazione, l’unità periferica seriale (21) lo riporta al valore originario, andando in questo modo a riutilizzare il primo settore libero che nel frattempo sarà già stato letto dal computer, e dal fatto che mentre l’unità periferica seriale (21) acquisisce i punti in ingresso con la sequenza I-VII, di fatto in parallelo dall’elaboratore (24) sono eseguite le seguenti fasi operative: a- l’elaboratore (24) vede che il puntatore (6) o il puntatore (5) sono diversi dai puntatori (3) e (2), e quindi rileva che vi sono dei punti pronti da leggere; b- l’elaboratore (24) legge ogni punto dal supporto di memoria esterno, nella propria memoria operativa e incrementa il puntatore (3); c- se il puntatore (3) arriva a superare il numero di punti per settore, l’elaboratore (24) azzera il puntatore (3) e incrementa il puntatore (2); d- l’elaboratore si ferma non appena tutti i punti generati dall’unità periferica seriale sono stati letti, questa condizione verificandosi quando il puntatore (3) incrementato arriva allo stesso valore del puntatore (6) e il puntatore (2) arriva allo stesso valore del puntatore (5); la correttezza dello svolgimento dell’operazione di trasferimento dati prescindendo dalla esatta sequenza temporale degli eventi, in quanto l’unità periferica seriale (21) scrive unicamente sui puntatori (5) e (6) mentre l’elaboratore (24) scrive unicamente sui puntatori (2) e (3).
  9. 9. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che se l’acquisizione da parte dell’elaboratore (24) rallenta o si ferma per un certo tempo, l’unità periferica seriale (21) continua a scrivere i dati nel file e ad aggiornare i puntatori, ricuperando il ritardo e acquisendo i punti in sospeso nella FIFO, quando l’elaboratore torna disponibile.
  10. 10. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo le rivendicazioni precedenti caratterizzato dal fatto che in base alle due condizioni funzionali limite: i. coda FIFO vuota: quando puntatore (2) = puntatore (5) e puntatore (3) = puntatore (6) ii. coda FIFO piena: quando puntatore (5) = puntatore (2) meno 1, giunta alla fine del file, l’unità periferica seriale (21) riprenda a scrivere dal secondo settore riutilizzando quindi la zona già usata, purché sia stata liberata nel frattempo dall’elaboratore.
  11. 11. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo le rivendicazioni precedenti caratterizzato dal fatto di fornire la cifratura dei dati prima della loro trasmissione, realizzandola con algoritmo simmetrico, punto per punto del tracciato in ingresso, nel momento stesso in cui ogni punto del tracciato, appena acquisito, è scritto nella RAM che forma i settori del disco di scambio dati, la chiave di cifratura essendo rinnovata ad ogni operazione di firma per mezzo di protocollo crittografico dedicato, con l’esecuzione delle seguenti fasi operative: a- in base ad una configurazione dei codici operativi dedicata l’elaboratore (24) scrive nella posizione (1) del primo settore del disco il byte che indica il comando di scambio chiavi, e nei byte successivi la propria chiave casuale (Ka), b- l’unità periferica seriale (21) risponde con l’inserzione, nel byte alla posizione (4), della risposta affermativa al comando ricevuto, e inserendo di seguito la propria chiave casuale (Kb); c- immediatamente di seguito ambedue i dispositivi effettuano le operazioni previste dall’algoritmo di criptatura generando la chiave comune di crittografia simmetrica che viene usata nella successiva operazione di firma.
  12. 12. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che la funzionalità di visualizzazione delle immagini sulla periferica di I/O (21) preveda una configurazione dei codici operativi, dedicata, con le seguenti fasi operative: a- la suddivisione dei dati dell’immagine in blocchi di dimensione pari ad un settore del disco, l’elaboratore inserendo nella prima posizione il byte di comando visualizzazione immagini e nelle posizioni successive le coordinate sullo schermo (X1,Y1) e (X2,Y2) dei due angoli superiore destro e inferiore sinistro dell’immagine da visualizzare, si azzera quindi il contatore (Bw) dei blocchi scritti e il contatore (Br) dei blocchi letti; b- la scrittura da parte della unità periferica seriale (21), della risposta al comando nella relativa posizione (2), l’elaboratore iniziando a scrivere nei settori dati i blocchi in cui ha suddiviso l’immagine, per ogni blocco scritto incrementando il contatore dei blocchi scritti (Bw), di qui l’unità periferica seriale vedendo che il contatore dei blocchi letti (Br) è diverso dal contatore dei blocchi scritti (Bw) e iniziando a leggere i blocchi di dati e a trasferirli nello schermo, ad ogni blocco incrementando il contatore dei blocchi letti (Br), e proseguendo finché il contatore dei blocchi letti (Br) diventa uguale al contatore dei blocchi scritti (Bw). c- l’unità periferica seriale, quando ha ricevuto tutti i dati necessari a completare l’immagine, scrivendo il pixel di posizione (X2,Y2), comprende che è stata raggiunta la fine della trasmissione dell’immagine e toglie la propria risposta dalla posizione (2) del primo settore, l’elaboratore rilevando, a sua volta, che la trasmissione è andata a buon fine.
  13. 13. Metodo real time di memorizzazione e trasmissione bidirezionale dei comandi e dei dati secondo ciascuna delle rivendicazioni precedenti caratterizzato dal fatto che l’allocazione di detti blocchi consecutivi corrispondenti ai settori del disco operi secondo una coda FIFO circolare, il numero del settore attuale ricavandosi a partire dal numero del blocco corrente come Settore = 2 Blocco mod Ns essendo Ns il numero di settori del disco disponibili per i dati; e l’operazione di modulo realizzando automaticamente il ritorno al primo settore quando il puntatore al blocco arriva a superare la terminazione del supporto esterno di memoria, tenendo conto delle condizioni limite di: i. buffer vuoto, contatore dei blocchi letti (Br)= contatore dei blocchi scritti (Bw) ii. buffer pieno, contatore dei blocchi scritti (Bw) - contatore dei blocchi letti (Br)=Ns, per cui rispettivamente: a- a buffer vuoto, l’unità periferica seriale smette di leggere; b- a buffer pieno, l’elaboratore smette di scrivere finché l’unità periferica seriale non ha liberato dello spazio.
IT000728A 2013-12-31 2013-12-31 Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione. ITRM20130728A1 (it)

Priority Applications (17)

Application Number Priority Date Filing Date Title
IT000728A ITRM20130728A1 (it) 2013-12-31 2013-12-31 Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.
CA2935283A CA2935283A1 (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
SG11201604867WA SG11201604867WA (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
ES14830677.2T ES2674549T3 (es) 2013-12-31 2014-12-16 Método para intercambiar controles a través de un disco USB y dispositivos relativos que permiten la implementación del mismo
US15/108,640 US20160328354A1 (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
BR112016015465A BR112016015465A2 (pt) 2013-12-31 2014-12-16 Sistema e método para a memorização e transmissão bidirecional em tempo real dos controles e dados para um processador com base em um sistema de hardware
KR1020167017522A KR20160103998A (ko) 2013-12-31 2014-12-16 Usb 디스크를 통해 제어를 교환하기 위한 방법 및 이를 구현하기 위한 상대 장치
TR2018/08730T TR201808730T4 (tr) 2013-12-31 2014-12-16 Bir USB disk ve bunun uygulanmasına olanak tanıyan ilgili cihazlar yoluyla kontrollerin değiştirilmesine yönelik yöntem.
EA201691243A EA201691243A1 (ru) 2013-12-31 2014-12-16 Способ обмена управляющими элементами через usb-диск и относящиеся к нему устройства, позволяющие его реализацию
PCT/IB2014/066965 WO2015101869A1 (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
AU2014375052A AU2014375052A1 (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
MX2016008599A MX2016008599A (es) 2013-12-31 2014-12-16 Metodo para intercambiar controles a traves de un disco usb y dispositivos relativos que permiten la implementacion de los mismos.
CN201480071965.8A CN105917322B (zh) 2013-12-31 2014-12-16 用于通过usb盘和允许对其的实施的相关设备来交换控制的方法
JP2016561089A JP6530762B2 (ja) 2013-12-31 2014-12-16 Usbディスクを介して制御を交換するための方法、およびその実現を可能にする関連装置
EP14830677.2A EP3090348B1 (en) 2013-12-31 2014-12-16 Method for exchanging controls through a usb disc and relative devices which allow the implementation thereof
IL246243A IL246243B (en) 2013-12-31 2016-06-15 A method for changing controls through a usb disk and nearby devices that allow its application
HK16114171A HK1225832A1 (zh) 2013-12-31 2016-12-13 用於通過usb盤和允許對其的實施的相關設備來交換控制的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000728A ITRM20130728A1 (it) 2013-12-31 2013-12-31 Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.

Publications (1)

Publication Number Publication Date
ITRM20130728A1 true ITRM20130728A1 (it) 2015-07-01

Family

ID=50239806

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000728A ITRM20130728A1 (it) 2013-12-31 2013-12-31 Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.

Country Status (17)

Country Link
US (1) US20160328354A1 (it)
EP (1) EP3090348B1 (it)
JP (1) JP6530762B2 (it)
KR (1) KR20160103998A (it)
CN (1) CN105917322B (it)
AU (1) AU2014375052A1 (it)
BR (1) BR112016015465A2 (it)
CA (1) CA2935283A1 (it)
EA (1) EA201691243A1 (it)
ES (1) ES2674549T3 (it)
HK (1) HK1225832A1 (it)
IL (1) IL246243B (it)
IT (1) ITRM20130728A1 (it)
MX (1) MX2016008599A (it)
SG (1) SG11201604867WA (it)
TR (1) TR201808730T4 (it)
WO (1) WO2015101869A1 (it)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106250057B (zh) * 2016-07-26 2019-06-04 青岛海信移动通信技术股份有限公司 一种显示存储设备的方法和装置
CN108255433B (zh) * 2018-01-12 2021-12-07 珠海极海半导体有限公司 Flash存储器、Flash存储器的文件管理方法和装置
KR20190138336A (ko) 2018-06-05 2019-12-13 현대자동차주식회사 운송 수단용 리튬 이차 전지 및 이의 제조 방법
CN109375875B (zh) * 2018-10-11 2020-03-17 北京明朝万达科技股份有限公司 文件传输方法和装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307955B1 (en) * 1998-12-18 2001-10-23 Topaz Systems, Inc. Electronic signature management system
US20040193785A1 (en) * 2003-03-11 2004-09-30 Zayas Fernando A. System for improving the performance of read/write testing in a hard drive
US8370835B2 (en) * 2009-03-12 2013-02-05 Arend Erich Dittmer Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device

Family Cites Families (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2932568B2 (ja) * 1990-02-15 1999-08-09 松下電器産業株式会社 データ通信装置
JP3816180B2 (ja) * 1997-03-14 2006-08-30 株式会社日立コミュニケーションテクノロジー 通信装置のインターフェイス制御方法
JPH11339447A (ja) * 1998-05-29 1999-12-10 Sony Corp 記録再生装置
JP4663718B2 (ja) * 2004-07-21 2011-04-06 ビーチ・アンリミテッド・エルエルシー ブロックマップキャッシングおよびvfsスタック可能なファイルシステムモジュールに基づく分散型のストレージアーキテクチャ
JP2006202051A (ja) * 2005-01-20 2006-08-03 Canon Inc データ処理装置及びデータ処理方法
RO121497B1 (ro) * 2005-02-09 2007-06-29 Softwin S.R.L. Sistem informatic şi metodă pentru achiziţia, analiza şi autentificarea semnăturii olografe
JP2008544348A (ja) * 2005-06-09 2008-12-04 エヌエックスピー ビー ヴィ メモリーコントローラ及びネットワークとメモリーの結合方法
US7594067B2 (en) * 2005-10-20 2009-09-22 Stec, Inc. Enhanced data access in a storage device
JP4357473B2 (ja) * 2005-11-04 2009-11-04 株式会社ソニー・コンピュータエンタテインメント データ処理システムおよびプログラム
JP4663577B2 (ja) * 2006-05-16 2011-04-06 株式会社バッファロー データ記憶装置およびこの初期化方法
CN101252536B (zh) * 2008-03-31 2010-06-02 清华大学 路由器多队列数据包缓存管理与输出队列调度系统
US8638805B2 (en) * 2010-05-18 2014-01-28 Lsi Corporation Packet draining from a scheduling hierarchy in a traffic manager of a network processor
CN101997646B (zh) * 2010-05-25 2012-11-28 锐骐(厦门)电子科技有限公司 基于usb和nand flash的数据打包和传输的方法
ITRM20110370A1 (it) 2011-07-15 2013-01-16 Prb S R L Sistema stilo-tavoletta grafica per la presentazione ed il confronto della firma biometrica autografa.
ITRM20110652A1 (it) 2011-12-07 2013-06-08 Prb S R L Unità di digitalizzazione ed archiviazione dei documenti e relative tecniche di virtualizzazione degli aggiornamenti.

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6307955B1 (en) * 1998-12-18 2001-10-23 Topaz Systems, Inc. Electronic signature management system
US20040193785A1 (en) * 2003-03-11 2004-09-30 Zayas Fernando A. System for improving the performance of read/write testing in a hard drive
US8370835B2 (en) * 2009-03-12 2013-02-05 Arend Erich Dittmer Method for dynamically generating a configuration for a virtual machine with a virtual hard disk in an external storage device

Also Published As

Publication number Publication date
JP6530762B2 (ja) 2019-06-12
EP3090348B1 (en) 2018-03-21
US20160328354A1 (en) 2016-11-10
TR201808730T4 (tr) 2018-07-23
IL246243A0 (en) 2016-07-31
CN105917322A (zh) 2016-08-31
JP2017507438A (ja) 2017-03-16
MX2016008599A (es) 2017-04-13
IL246243B (en) 2019-03-31
EP3090348A1 (en) 2016-11-09
AU2014375052A1 (en) 2016-07-07
SG11201604867WA (en) 2016-07-28
ES2674549T3 (es) 2018-07-02
CA2935283A1 (en) 2015-07-09
WO2015101869A1 (en) 2015-07-09
HK1225832A1 (zh) 2017-09-15
BR112016015465A2 (pt) 2017-08-08
EA201691243A1 (ru) 2016-12-30
KR20160103998A (ko) 2016-09-02
CN105917322B (zh) 2020-08-07

Similar Documents

Publication Publication Date Title
EP2889780B1 (en) Data processing system and data processing method
EP2849076B1 (en) Dma transmission method and system
ITRM20130728A1 (it) Metodo di scambio comandi tramite disco usb e relativi dispositivi che ne permettono l¿implementazione.
EP2849077A1 (en) Method for writing data into storage device and storage device
EP3992790A1 (en) Information processing method, physical machine and pcie device
CN111949605A (zh) 用于实现文件系统的方法、设备和计算机程序产品
US20120124380A1 (en) Usb composite device and method therefor
CN101968779A (zh) 通用串行总线传输转译器及微帧同步方法
JP2017194959A (ja) NVMe装置に対しカーネルモードアクセス及び使用者モードアクセスを同時に可能にする方法及びホストコンピュータシステム並びに非一時的コンピュータ読出可能記録媒体
KR20210119529A (ko) 스토리지 장치 컨텐츠를 스트리밍하는 시스템들 및 방법들
CN109977037B (zh) 一种dma数据传输方法及系统
CN105677444B (zh) 一种启动虚拟机的方法和装置
WO2015176664A1 (zh) 一种数据操作的方法、设备和系统
CN108733309A (zh) 存储管理方法、设备和计算机可读介质
CN104050115A (zh) 一种存储控制器及其使用方法
JP2017102775A (ja) 情報処理装置、制御方法およびプログラム
CN108415655B (zh) 触摸数据处理的方法、装置、一体机及存储介质
ITUB20154033A1 (it) Programma software retrodriver per comunicazioni con periferiche e metodo associato.
CN104636079A (zh) 文件存取方法及其系统
Sawant et al. Computer independent USB to USB data transfer bridge
CN103294632A (zh) 一种总线载板、数据交互系统、数据处理方法及装置
CN102375702A (zh) 存储器管理设备、存储器管理方法及其程序
ITUB20154062A1 (it) Metodo di scambio dati e comandi sicurizzato.
CN114124301B (zh) 一种具有数据校验和错误重传机制的虚拟媒体传输系统
GB2482478A (en) Using a mass storage device interface to control a different type of device