當(dāng)你按下A鍵時(shí),電腦是怎么知道你按的是A鍵而不是其他鍵呢?:你把每個(gè)鍵位理解為一個(gè)開關(guān),按下接通,彈起斷開。其實(shí)它就是一個(gè)開關(guān),只不過開關(guān)樣式不一樣。別
你把每個(gè)鍵位理解為一個(gè)開關(guān),按下接通,彈起斷開。
其實(shí)它就是一個(gè)開關(guān),只不過開關(guān)樣式不一樣。別管機(jī)械式還是電容式,歸根結(jié)底都是開關(guān)狀態(tài)變化,就是0.1變化。
有了0和1,鍵盤芯片在提前已經(jīng)編碼的情況下就可以準(zhǔn)確知道是哪一個(gè)按鍵按下了。你可以理解為每個(gè)鍵位都有一條通道芯片的路,芯片在每個(gè)路口都設(shè)了門崗。對(duì)應(yīng)鍵位按下,就會(huì)及時(shí)通知對(duì)應(yīng)門崗。因?yàn)橐灰粚?duì)應(yīng),自然芯片就可以知道是哪個(gè)按鍵按下。
如果按鍵的通知系統(tǒng),比如接觸電容或機(jī)械開關(guān)壞了。又或者門崗擅離職守,比如芯片內(nèi)部問題,再或者送信的這頭路斷了。都會(huì)造成按鍵無反應(yīng)。
有時(shí)鍵盤芯片出下故障,比如門崗串崗了,那就會(huì)照成鍵位錯(cuò)誤響應(yīng)。你按A,電腦最終得到的不一定是A。
鍵盤不僅僅是按鍵,它的內(nèi)部還有芯片和線路的,每一個(gè)按鍵都通過行和列連接到一個(gè)專用芯片,芯片會(huì)根據(jù)按下的行和列位置來判斷是那個(gè)鍵被按下,然后把鍵碼傳送給主機(jī)。
其實(shí)鍵盤上的每一個(gè)銨鍵都是一個(gè)開關(guān),按下和釋放代表著關(guān)和開兩種狀態(tài)。以單個(gè)按鍵為例,沒有按下時(shí),芯片(單片機(jī))的輸入口通過一個(gè)電阻連接到VCC,為高電平(在數(shù)字電路中為1),當(dāng)按鍵按下后,芯片(單片機(jī))的輸入口連接到地,為低電平(在數(shù)字電路中為0)。
因?yàn)殒I盤的按鍵比較多,為了節(jié)省芯片的輸入接口,往往通過行和列的組合來識(shí)別按鍵,鍵盤上的單個(gè)或者多個(gè)按鍵按下都可以被芯片識(shí)別出來。
當(dāng)然,這些按鍵需要按鍵盤的標(biāo)準(zhǔn)擺放到規(guī)定的位置,因?yàn)槊恳粋(gè)按鍵都設(shè)定好了指定的編碼,當(dāng)識(shí)別到按鍵按下時(shí),芯片就會(huì)把這些標(biāo)準(zhǔn)的編碼通過PS/2接口或者USB接口傳送給電腦。
歡迎關(guān)注@電子產(chǎn)品設(shè)計(jì)方案,一起享受分享與學(xué)習(xí)的樂趣!關(guān)注我,成為朋友,一起交流一起學(xué)習(xí)
實(shí)際上電腦不知道
這個(gè)和代碼設(shè)置有關(guān)系
電腦代碼都是由0或1二進(jìn)制組成的
每個(gè)按下的鍵都代表著不同的0和1組成
如電腦設(shè)定“01101”代表按下A鍵
那么我們按下A鍵時(shí)
通過驅(qū)動(dòng)傳達(dá)給電腦是“01101”
那么電腦就會(huì)執(zhí)行“01101”這個(gè)指令
首先我們要簡(jiǎn)單的想象一下鍵盤的結(jié)構(gòu):鍵盤上的每個(gè)按鍵都連接在控制芯片上。當(dāng)我們按下某一個(gè)按鍵時(shí),控制芯片就會(huì)把信息傳到主板上。
現(xiàn)在的鍵盤采用的是矩陣式的結(jié)構(gòu)。這樣做的好處就是,不需要每一個(gè)按鍵都有一條線、一個(gè)接口(芯片接口)。比如下面的“Q、W、E、A、S、D、Z、X、C”9個(gè)按鍵,矩陣式的只需要6條線、6個(gè)接口,但如果每個(gè)按鍵單獨(dú)連接芯片就需要9條線、9個(gè)接口。
鍵盤上的按鍵其實(shí)就是一個(gè)一個(gè)的開關(guān),當(dāng)我們按下按鍵的時(shí)候,就接通了這一列和這一行的兩條線。控制芯片通過電平的變化,就可以確定按下的是哪一個(gè)按鍵。
有點(diǎn)類似我們玩的水管工游戲
依次往R0、R1、R2這幾個(gè)管道注水,當(dāng)按下了按鍵時(shí),有些管道就接通了,橫著的C0、C1、C2管道自然會(huì)有水跑出來。
當(dāng)按下S鍵時(shí)就會(huì)接通了上、下兩個(gè)管道,R1里注入的水就會(huì)從C1跑出來?刂菩酒ㄟ^查詢編碼表,“給R1注水的時(shí)候,C1也有水”,就可以確定按下的是“S”鍵。
當(dāng)同時(shí)有兩個(gè)按鍵被按下,相當(dāng)于依次往幾個(gè)管道注水。
控制芯片再通過查詢編碼表,就知道“A”鍵和“S”鍵被按下了。
但這種矩陣式結(jié)構(gòu)存在一些問題
比如玩游戲的時(shí)候,同時(shí)按住“W”鍵和“A”鍵控制人物往左前方移動(dòng),前面突然跳出一個(gè)“怪獸”,就需要馬上按下“Q”鍵切換出武器。這時(shí),“Q”、“W”、“A”這三個(gè)鍵時(shí)處于同時(shí)被按下的狀態(tài)。
控制芯片這時(shí)一查表,傳給主板的結(jié)果就是“Q”、“A”、“W\"、\"S\"這4個(gè)按鍵都被按下了,結(jié)果就是被控制的人物突然站住不動(dòng)了。這種情況下就是按鍵沖突,控制芯片誤以為“S”鍵也被按下了。
要怎么解決按鍵沖突的問題呢?
方法就是挑戰(zhàn)會(huì)產(chǎn)生沖突的線路,因?yàn)橹挥型嬗螒虻臅r(shí)候才會(huì)集中同時(shí)按下幾個(gè)鍵。比如調(diào)整成下圖這個(gè)樣子,控制芯片編碼表也跟著做一下調(diào)整。
還是同時(shí)按下“Q”、“W”、“A”三個(gè)鍵。
控制芯片往R0注水,C0有水流出來;
控制芯片往R1注水,C0、C1也有水流出來;
控制芯片往R2注水,沒有水流出來;
控制芯片一查表,傳給主板的結(jié)果就是“Q”、“W”、“A”三個(gè)鍵。這樣就在一定程度上解決了同時(shí)按下一些按鍵會(huì)產(chǎn)生沖突的問題。
鍵盤的按鍵電路
01 以薄膜鍵盤為例,鍵盤按鍵電路被印刷在3張和A4紙差不多厚度的塑料薄膜上。
比如:將R、R1、R2電路印刷在第一層薄膜上,C0、C1、C2電路印在第二層薄膜上,它們之間再用一張薄膜把上、下兩個(gè)電路隔開,再在中間這個(gè)薄膜的按鍵位置挖個(gè)孔。
當(dāng)按鍵按下的時(shí)候,就會(huì)把上面的薄膜壓得向下凹下來觸碰到下面的薄膜,這樣上、下兩層的電路就接通了。
實(shí)際上上面依次給每個(gè)管道注水就是一個(gè)掃描的過程,為了第一時(shí)間發(fā)現(xiàn)有按鍵被按下,就需要每秒鐘完成成百上千次的掃描,這個(gè)就是鍵盤上的輪詢率。
02 以機(jī)械鍵盤為例,為了防止按鍵沖突,給每個(gè)按鍵增加了一個(gè)止回閥,防止水流到不該去的地方,導(dǎo)致按鍵識(shí)別錯(cuò)誤。
還是同時(shí)按下“Q”、“W”、“A”三個(gè)鍵,再往R1注水的時(shí)候,水就不會(huì)像之前那樣從“Q”鍵下面的管道流向“A”鍵下面的管道,從C1出來。基于這個(gè)電路,鍵盤中增加一塊PCB板,止回閥就是二極管。二極管只能單向?qū)ǎ娏髦荒軓囊粋(gè)方向流過二極管。這樣就解決了按鍵沖突的問題。
科技源于生活,牛頓當(dāng)初也是被普通無奇的蘋果砸到腦袋,才發(fā)現(xiàn)牛頓第二定律。任誰(shuí)也不曾想到我們用的普通不能再普通的鍵盤竟然會(huì)潛藏如何高深的智慧。
以上個(gè)人淺見,歡迎批評(píng)指正。
認(rèn)同我的看法,請(qǐng)點(diǎn)個(gè)贊再走,感謝!
喜歡我的,請(qǐng)關(guān)注我,再次感謝!
電腦說,我TM哪知道啥是A啥是B。我只知道有人按了一個(gè)開關(guān),告訴我這是01010101之類的意思,至于顯示器那王八蛋顯示出來是A是B不是你們自己定義好的么。
我在打別人的時(shí)候,你怎么知道不是在打你?肯定是大腦沒有接收到疼痛的信號(hào)唄,按鍵這個(gè)同理。
我又不是電腦,我怎么知道它是怎么知道我按A鍵它就知道是A鍵的?
這個(gè)得寫內(nèi)存,CPU 內(nèi)部沒有A ,CPU 只負(fù)責(zé)運(yùn)算與搭橋!
我隨便定義一個(gè)鍵盤有100個(gè)摁鍵,在接100個(gè)電阻,這100個(gè)電阻分別為1歐,10歐,20歐,30歐直到1000歐也就是1K 歐姆。我們都知道電阻可以限制電流,排列好后,這時(shí)候整個(gè)鍵盤邏輯已經(jīng)搭配好!
但鍵盤上的摁鍵不知道那個(gè)是A ,所以我們要做一個(gè)小芯片用來識(shí)別這些鍵盤,那么我用數(shù)字1234567890用10到100歐的電阻來代表,然后采樣!如何采樣呢?就需要用到芯片來采樣,芯片內(nèi)部我們用100個(gè)放大電路,也要排列好阻值,當(dāng)我摁10歐姆摁鍵導(dǎo)通,那么這個(gè)放大電路接收信號(hào)最小5歐最大15歐可以通過,低于是無法接收到,記住是100個(gè)放大電路相當(dāng)于內(nèi)部擁有100個(gè)三極管,每個(gè)三極管接收信號(hào)阻值都不一樣,這樣我們才好采樣模擬。
當(dāng)放大電路接收到信號(hào)后,三極管導(dǎo)通,通電,這時(shí)候只是開關(guān),你們非常納悶難道要用到100個(gè)引腳嗎?當(dāng)然不用,2個(gè)引腳就可以,還要設(shè)計(jì)一個(gè)輸入電路與輸出電路,也是采用三極管放大電路,那100個(gè)三極管你把它看成一個(gè)占內(nèi)存或暫存器,當(dāng)我摁住10歐姆電阻觸發(fā)改變電流的速度?偣灿100不同的電流,100個(gè)不同信號(hào),100剩100不同的邏輯搭配。這是一個(gè)專用摁鍵芯片指令,只負(fù)責(zé)控制!
從鍵盤芯片指令進(jìn)入CPU 指令,CPU 要采樣鍵盤指令,就要進(jìn)入運(yùn)行內(nèi)存內(nèi)部找你寫好的程序是否相同符合。符合識(shí)別成功,在內(nèi)存內(nèi)部寫好端口采樣指令,畢竟有上百萬上千萬不同短波長(zhǎng)波,不能重復(fù),如果你寫的無線接收代碼波長(zhǎng)與鍵盤波長(zhǎng)一樣,CPU 可能選擇優(yōu)先級(jí)把無線當(dāng)做摁鍵波長(zhǎng)來用,所以不能重復(fù)同樣波長(zhǎng)。
波長(zhǎng)又叫波特率,是采用晶振震動(dòng)來采樣,比如我摁一秒調(diào)用0.5M 速率,那么0.5M 的速率為鍵盤,每50個(gè)波段為10歐,波段指的是高低電平,比如這樣說,我最低電平為0伏或1.2伏,最高3.3,那么就用1.2伏來做低電平,3.3做高電平,低高為1峰波,那么50個(gè)就是10歐姆,100個(gè)就是20歐姆,如果采樣過程30-70為標(biāo)準(zhǔn),如果超過70那么CPU 就會(huì)告訴內(nèi)存說,是20歐姆電阻,這些都要設(shè)定好,調(diào)試好,不能亂一步一步的來。
那么計(jì)算機(jī)你輸入A 轉(zhuǎn)換模擬一次波長(zhǎng),對(duì)比一下相同符合,就會(huì)顯示A ,一般學(xué)編程的用不到,畢竟這個(gè)別人寫好了,你們應(yīng)用就可以,每個(gè)編程語(yǔ)言都已經(jīng)定義好了,不需要你寫,已經(jīng)在編輯芯片指令時(shí)候已經(jīng)是固定好的。不是做芯片制造與設(shè)計(jì)是用不到。
中央處理器是個(gè)大號(hào),是多功能處理器,總共擁有幾十萬個(gè)放大電路,幾百個(gè)上千個(gè)計(jì)算模塊,幾千個(gè)暫存器,CPU 內(nèi)部晶體占用最多晶體數(shù)量就是暫存器,暫存器內(nèi)存越大緩沖越好,性能越穩(wěn)定,支持更高速率讀取,如果一個(gè)CPU 十億個(gè)晶體管,暫存器就要占5億左右甚至8億!計(jì)算模塊只是走線多非常復(fù)雜,也是整個(gè)計(jì)算機(jī)的核心技術(shù),這部分電路用于二到十六進(jìn)制不等計(jì)算,每增加一個(gè)進(jìn)制,線路就要增多2倍到10倍數(shù)量,所以至今為止只弄到十六進(jìn)制,如果達(dá)到64進(jìn)制,目前來說是用不到,除非量子計(jì)算,畢竟材料導(dǎo)電問題,沒有人敢用。
所以計(jì)算機(jī)碼表最大是16進(jìn)制,如果17進(jìn)制,F(xiàn)就多一個(gè)字母G了,別小看多了一個(gè)數(shù),接線接死你,光改圖紙就要你頭疼。你們以為是二進(jìn)制,那是不對(duì)的,是二到16進(jìn)制暫時(shí)這樣,我相信再過20年能用上64進(jìn)制碼表,到時(shí)候一個(gè)芯片只有指甲大就要入植幾萬億顆半導(dǎo)體,想想一下非常激動(dòng)
不是的,光按下去電腦是不知道的,電腦只能識(shí)別到有鍵盤被按了,如果你想讓電腦知道,必須大喊一聲你要輸?shù)臇|西,比如你要輸a,就要按的同時(shí)大喊一聲a!,才可以,至于為什么鍵盤還需要那么多按鍵而不是只有一個(gè),可能是因?yàn)樵戽I盤的廠家想多掙點(diǎn)吧,情況就是這么個(gè)情況。
臥槽我今天正在思考這個(gè)問題,放心里沒說出來呢,頭條怎么會(huì)感知得到?居然推送得這么及時(shí),太恐怖了
華裔女賭王就此沒落,生前讓所有 濃情端午粽飄香,青浦邀你“云體 上海:“云端”展現(xiàn)端午節(jié)文化內(nèi) “甜咸大戰(zhàn)”!明星藝人們喜歡什 如何做一個(gè)男人喜歡的情人(如何 當(dāng)你和你同時(shí)出現(xiàn)在同一個(gè)場(chǎng)景中 如何在昏暗的光線下設(shè)置快門速度 教育在生活中的價(jià)值是什么? 世上做壞事的人死后會(huì)面臨什么因 拜登就任總統(tǒng)后的第一步是什么? 同意/不同意:人生最重要的目標(biāo) 二戰(zhàn)后,德國(guó)在調(diào)和分歧方面做得 亞伯·林肯恨白人嗎? 一個(gè)編輯能把你的故事毀得有多嚴(yán) 現(xiàn)在的iPhone6還能堅(jiān)持再用一年 曹操為什么不殺司馬懿? 現(xiàn)在買房是不是最便宜的時(shí)候,現(xiàn) 我身邊的農(nóng)業(yè)銀行營(yíng)業(yè)廳關(guān)了,AT 歐洲媒體評(píng)選CBA最有實(shí)力球員, 榮耀play的6+128和榮耀8X的6+128 螞蟻集團(tuán)是科技公司還是金融公司 請(qǐng)問機(jī)友華為mate30P與華為mate3 聽說老詹修剪一次指甲需要5小時(shí) 為什么說寶寶“一月睡二月哭三月 戴笠人稱戴老板,這個(gè)是怎么叫出 沒有工作能一次性補(bǔ)繳社保么? 我想知道定向師范生和免費(fèi)師范生 肺癌引起的咳嗽是怎樣的呢? 5000mAh電池的5G手機(jī)推薦嗎?要 恒大亞冠表現(xiàn)“差強(qiáng)人意”,你覺