Υλικό υπολογιστών

Γνώση Υπολογιστών >> Υλικό υπολογιστών >  >> Συσκευές Εισόδου και Εξόδου

Συζητήστε τα διάφορα υλικό και το λογισμικό για να ξεπεράσετε την επαφή αναπήδηση μια κατάσταση στην οποία πιέζονται ταυτόχρονα περισσότερα από ένα κλειδί;

Επικοινωνήστε με την Bounce, η ταχεία εναλλαγή on-off ενός μηχανικού διακόπτη λόγω της φυσικής του κίνησης, είναι ένα κοινό πρόβλημα στο πληκτρολόγιο και σε άλλες συσκευές εισόδου που βασίζονται σε διακόπτες. Όταν πιέζονται ταυτόχρονα πολλαπλά πλήκτρα (μια κοινή κατάσταση), η επικοινωνία με αναπήδηση σε κάθε πλήκτρο μπορεί να οδηγήσει σε καταχωρημένα πολλαπλά ψευδή σήματα, με αποτέλεσμα την εσφαλμένη εισροή. Η υπέρβαση αυτού απαιτεί τόσο λύσεις υλικού όσο και λογισμικού.

Λύσεις υλικού:

* Circuits Debouncing: Αυτές είναι η πιο συνηθισμένη προσέγγιση υλικού. Ουσιαστικά εξομαλύνουν τις γρήγορες μεταβάσεις του διακόπτη. Υπάρχουν διάφοροι τύποι:

* Κυκλώματα RC (αντίσταση-Capacitor): Ένα απλό κύκλωμα RC λειτουργεί ως φίλτρο χαμηλής διέλευσης. Ο πυκνωτής χρεώνει αργά, αγνοώντας αποτελεσματικά την ταχεία αναπνοή μετά την αρχική παροχή πλήκτρου. Η σταθερά χρόνου (RC) επιλέγεται για να είναι αρκετά μεγάλη για να φιλτράρει την αναπήδηση, αλλά αρκετά σύντομη για να μην καθυστερήσει τις νόμιμες αποθήκες κλειδιών. Πρόκειται για μια οικονομικά αποδοτική λύση, αλλά η αποτελεσματικότητά της εξαρτάται από τα χαρακτηριστικά του διακόπτη.

* σκανδάλη Schmitt: Αυτό το κύκλωμα είναι πιο εξελιγμένο και έχει αποτέλεσμα υστέρησης. Απαιτεί μια υψηλότερη τάση για να ενεργοποιηθεί παρά να απενεργοποιηθεί, αγνοώντας τις μικρές παραλλαγές τάσης που προκαλούνται από την αναπήδηση. Αυτό παρέχει ένα καθαρότερο σήμα με μια πιο έντονη μετάβαση.

* Μικροελεγκτές με εσωτερικές δυνατότητες debouncing: Πολλοί σύγχρονοι μικροελεγκτές έχουν ενσωματωμένες λειτουργίες debouncing, απλοποιώντας το σχεδιασμό υλικού. Συχνά χρησιμοποιούν χρονομετρητές ή εξειδικευμένο χειρισμό εισροών για την ανίχνευση σταθερών καταστάσεων.

* Μηχανικές βελτιώσεις: Αν και δεν είναι αυστηρά ένα διάλυμα κυκλώματος, χρησιμοποιώντας μηχανικούς διακόπτες υψηλότερης ποιότητας με καλύτερα σχέδια επαφής μειώνει εγγενώς την αναπήδηση. Αυτοί οι διακόπτες είναι συχνά πιο ακριβοί. Τα πληκτρολόγια μεμβράνης, τα οποία δεν έχουν φυσικά κινούμενα μέρη, εγγενώς δεν υποφέρουν από αναπήδηση επαφής.

Λύσεις λογισμικού:

* Λογισμικό Debouncing: Ακόμη και με την ανατροπή του υλικού, μπορεί να παραμείνει κάποια υπολειπόμενη αναπήδηση. Οι αλγόριθμοι λογισμικού μπορούν να μετριάσουν περαιτέρω αυτό. Αυτά συνήθως περιλαμβάνουν:

* Χρονοδιακόπτες: Η απλούστερη προσέγγιση είναι να ελέγξετε την κατάσταση κλειδιού μετά από σύντομη καθυστέρηση (π.χ. 10-20 χιλιοστά του δευτερολέπτου). Εάν η κατάσταση είναι συνεπής μετά από αυτή την καθυστέρηση, το KeyPress θεωρείται έγκυρη.

* Μηχανήματα κατάστασης: Πιο πολύπλοκες μηχανές κατάστασης μπορούν να χειριστούν πιο εξελιγμένα σενάρια, όπως η διάκριση μεταξύ ενός ενιαίου τύπου τύπου και των πολλαπλών γρήγορων πιεσμάτων (προορίζονται ως επαναλαμβανόμενη εντολή).

* Αλγόριθμοι φιλτραρίσματος: Οι πιο προηγμένες τεχνικές φιλτραρίσματος λογισμικού, όπως οι μετακινήσεις μέσων όρων ή τα διάμετα φίλτρα, μπορούν να εξομαλύνουν το σήμα εισόδου, μειώνοντας τις επιδράσεις των εναπομένουσας αναπνοής.

Ξεπερνώντας ταυτόχρονα κλειδί:

Ο χειρισμός πολλαπλών πλήκτρων που πιέζεται ταυτόχρονα (ένας συνδυασμός κλειδιών, όπως το Ctrl+C) απαιτεί πρόσθετες εκτιμήσεις πέρα από την απλή ανατροπή μεμονωμένων κλειδιών.

* Πληκτρολόγια μήτρας: Αντί για μεμονωμένους διακόπτες για κάθε κλειδί, πολλά πληκτρολόγια χρησιμοποιούν μια διάταξη μήτρας. Οι σειρές και οι στήλες σαρώνονται για να καθορίσουν ποιο πλήκτρο πατηθεί. Αυτό επιτρέπει εγγενώς την ανίχνευση ταυτόχρονων πιεστηρίων πλήκτρων. Το λογισμικό πρέπει στη συνέχεια να ερμηνεύσει το συνδυασμό ενεργών σειρών και στηλών.

* Δημοσκόπηση εναντίον διακοπών: Η δημοσκόπηση περιλαμβάνει περιοδικά τον έλεγχο των βασικών καταστάσεων, ενώ η εισροή που καθοδηγείται από τη διακοπή χειρίζεται κάθε πατήστε το πλήκτρο ως διακοπή. Οι διακοπές μπορούν να οδηγήσουν σε βελτιωμένη ανταπόκριση, αλλά ενδέχεται να απαιτούν προσεκτικό χειρισμό για να αποφευχθούν ταυτόχρονα οι συνθήκες της φυλής όταν πιέζονται ταυτόχρονα πολλαπλά πλήκτρα.

* ουρές κλειδιών/buffer: Το λογισμικό χρησιμοποιεί συχνά ουρές ή buffer για την αποθήκευση των πληκτρολογίων προσωρινά. Αυτό χειρίζεται καταστάσεις όπου πατάονται πολλαπλά πλήκτρα σχεδόν ταυτόχρονα, εξασφαλίζοντας ότι όλες οι βασικές καταγεγραμμένες καταχωρίσεις με τη σωστή σειρά.

Στην πράξη, μια ισχυρή λύση συχνά συνδυάζει το υλικό και το λογισμικό debouncing. Ένα απλό κύκλωμα RC μπορεί να χειριστεί την πλειοψηφία της αναπήδησης, με το λογισμικό να χειρίζεται οποιοδήποτε υπολειμματικό θόρυβο ή πιο εξελιγμένες πτυχές χρονισμού. Η επιλογή της προσέγγισης υλικού και λογισμικού εξαρτάται από τους περιορισμούς, τον προϋπολογισμό και τις απαιτήσεις απόδοσης της εφαρμογής. Για απλές εφαρμογές, μπορεί να αρκεί μια λύση μόνο για το λογισμικό. Για απαιτητικές εφαρμογές όπως το παιχνίδι ή ο βιομηχανικός έλεγχος, είναι συνήθως απαραίτητες πιο δυνατές λύσεις υλικού.

Συναφής σύστασή

Πνευματικά δικαιώματα © Γνώση Υπολογιστών Όλα τα δικαιώματα κατοχυρωμένα