鍵位衝突起源
很久以前,鍵盤都是編碼鍵盤,每一對信號線對應一個按鍵,這樣無論多少按鍵一起按下,計算機都會正確識別每一個按鍵的,自然不會產生鍵位衝突的。但是目前我們大家所用的鍵盤都是經過簡化而來的不完全編碼式鍵盤,這種鍵盤放棄了一一對應的的信號電路,轉而採用矩陣的方式來識別每一個按鍵,這樣一來,設計生產一個鍵盤的信號線數量就遠遠小於按鍵的數量,而且在設計設計電路和解碼晶片時的迂迴空間就越大,但是不幸的是由於信號線不足,就為鍵位衝突埋下了禍根。
目前的鍵盤主要是薄膜結構,而其原理如下:比如按下“1”鍵就=P1+K1。那么按下一個鍵時是不會產生鍵位衝突的,那么同時按下兩個鍵會怎么樣呢?比如按下“1、A”就是P1+K1+K3,這種組合也不會出現問題。如果同時按下“1、3、Q”就是P1+P3+KA+K3,但是這個鍵位於“1、3、E”是一樣的,這樣鍵盤就不能夠正確識別了,造成鍵位得衝突。但是對於不同的鍵盤解碼晶片,衝突也會有不一樣的地方:1、計算機對於按鍵的識別是靠時間的先後的,比如說“Q、E、A、D”的衝突,你按下的順序是“Q、E、A、D”那么計算機就只能夠識別出“Q、E、A”,如果按鍵順序是“E、A、D、Q”那么只能夠識別出“E、A、D”;2、還有一類是按照鍵盤晶片的優先權的設定來識別的,比如說“Q、E、A、D”衝突,鍵盤只能認出“Q、E、A”,即便按下的是“E、A、D”鍵盤還是只能認出“Q、E、A”,這一是大多數鍵盤所採用的方案。
鍵位衝突改善
鍵位衝突雖可以改善,但是是避免不了的。為了方便檢查鍵位衝突的情況,可以使用一個名為KeyboardTest這個軟體來檢測鍵位衝突的情況。如果按下的按鍵全部變為紅色則說明按鍵的操作能夠被正確識別,沒有產生衝突。
現在市場上有很多打著“7鍵不衝突”、“9鍵不衝突”的鍵盤,對於這一類鍵盤,只是做了部分最佳化,只是指定的某7或9個按鍵同時按下不會產生衝突,而其他的按鍵還是會產生衝突的。
對於非編碼結構的鍵盤來說不不存在鍵位衝突是絕對的不可能。其中解決辦法只能是遊戲廠商,鍵盤製造商,相互協調,儘量避免鍵位衝突的出現。