国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

小梅哥和你一起深入學習FPGA之PS2鍵盤驅動

發布時間:2016-1-28 10:01    發布者:designapp
關鍵詞: FPGA , PS2
  在我們的電子系統中,當需要用到大量的按鍵輸入時,普通的獨立按鍵和矩陣鍵盤已經無法滿足我們的輸入需求,這個時候,我們需要使用一種功能更加強大的鍵盤,來幫助我們輸入更多的信息。在pc機上,我們經常使用104鍵的鍵盤,這種鍵盤與pc機的接口,可分為USB接口和PS2接口,我們FPGA要實現USB接口比較困難,因為USB的接口線路,不是標準的TTL電平,而PS2接口,則使用標準的TTL電平,那么我們今天就使用FPGA來解碼驅動一個采用PS2接口的pc機鍵盤,用這個鍵盤來擴展我們FPGA的輸入系統,以使我們能夠方便的輸入更多的信息。
  一、 實驗目的
  實現采用PS2協議的PC機鍵盤的解碼,最終將PS2鍵盤作為FPGA系統的一個標準輸入設備。
  二、 實驗原理
  PS2鍵盤的內部結構我們不需要過多的去關注,我們只需要關心其接口協議,正確的解碼其發送過來的按鍵信息即可,至于解碼到的按鍵信息該怎么處理,不同的應用有不同的處理方式,這里就不做過多的介紹。PS2協議的簡單描述如下:
  PS2協議總共由兩根線組成,一根時鐘線和一根數據線。這里我們將采用PS2協議的鍵盤稱為從機,將控制和解碼PS2協議的一方成為主機,生活中最常見的主機便是我們的PC機。PS2總線協議的兩根線中,時鐘線傳輸時鐘信號,該時鐘信號始終由從機,即鍵盤產生。PS2協議發送一個字節的數據總共有11位,分別為
  1位起始位
  8位數據位
  1位校驗位
  1位停止位
  PS2從機發送一個完整數據包的時序圖如下所示:
  


  圖2-1 PS2從機發送數據時序圖
  相信熟悉UART協議的同學一眼就能看出來,PS2協議和我們最熟悉的UART通信協議非常相似,那么我們的工作就簡單了,既然鍵盤按照這個協議發送數據,我們FPGA作為主機,只需要正確的實現該協議的解碼,將其中的8位數據位讀取出來即可。由圖可知,數據在時鐘的下降沿處是穩定的,因此我們只需要去捕獲時鐘信號的下降沿,并在檢測到這個下降沿時去讀取數據線上的電平,就能夠正確的讀到數據。
  以上是PS2協議中從機到主機的一個通訊過程,實際在PS2協議中,包含了從機到主機和主機到從機的通信時序,只是在我們進行PS2鍵盤的解碼時,可以不需要進行主機到從機的通信,因此這部分內容小梅哥就不在這里講解了,如果大家以后要解碼PS2鼠標的話,就會用到主機到從機的通信了。
  上面只是簡單的介紹了PS2從機到主機的通信協議,我們知道了鍵盤是一個字節一個字節的往主機發送數據的,但是,每個字節代表了什么內容呢,我們還需要對照鍵盤編碼對照表來查看。
  


  鍵盤掃描碼分為第一套掃描碼、第二套掃描碼和第三套掃描碼,我們日常生活中常見的掃描碼絕大多數采用第二套掃描碼,因此這里小梅哥就只附上第二套掃描碼的內容。
  實際一個按鍵由按下到釋放時鍵盤將按照如下的規定往主機發送數據:
  只要一個鍵被按下,這個鍵的通碼(MAKE)就被發送到計算機。通碼只表示鍵盤上的一個按鍵,它不表示印刷在按鍵上的那個字符。 這就意味著在通碼和ASCII碼之間沒有已定義好的關聯, 直到主機把掃描碼翻譯成一個字符或命令。
  雖然多數第二套通碼都只有一個字節寬,但也有少數“ 擴展按鍵”的通碼是兩字節或四字節寬,這類的通碼第一個字節總是為E0H(如“END”、“HOME”……)。正如鍵按下通碼就被發往計算機一樣, 只要鍵一釋放, 斷碼就會被發送。每個鍵都有它自己唯一的通碼,它們也都有唯一的斷碼。 幸運的是,你不用總是通過查表來找出按鍵的斷碼―― 在通碼和斷碼之間存在著必然的聯系。 多數第二套斷碼有兩字節長,它們的第一個字節是F0H, 第二個字節是這個鍵的通碼。
  例如,當我們按下鍵盤上的“A”鍵時,鍵盤就會往主機發送”A”鍵對應的通碼(MAKE)”1C”,如果你一直按下這個按鍵不釋放,那么在一個短暫的延時之后,鍵盤會再次開始,以一定的速率持續向主機發送”1C“,直到該按鍵被釋放。在該按鍵被釋放后,鍵盤將會向主機發送“A ”的斷碼(Break),即首先發送“F0”,然后下一個字節再馬上發送“1C”。
  如果我們按下的是“END”、“PAGE UP”等擴展按鍵時,會怎么樣呢?這里,以”END”鍵舉例。當”END“鍵被按下后,鍵盤會首先向主機發送“E0”,發送完成后,又會接著發送下一個字節“69”,釋放時也與前面的普通按鍵類似,先發送“E0”,然后發送“F0”,最后再發送“69”。
  由上述分析可知,我們FPGA在解碼到一次數據后,還需要對這個數據進行分析判斷,判斷該數據是否為斷碼標志“F0”以及擴展碼標志”E0“。
  三、 硬件設計
  PS2電路結構簡單,因此這里就略去。
  四、 架構設計
  本實驗我們進行PS2鍵盤的解碼實驗,并將解碼到的結果顯示在數碼管上,同時,為了使我們更加直觀的感受到按鍵被按下和釋放,小梅哥在這里增加了一個蜂鳴器,當有按鍵按下或釋放(包括長按時每接收到一個通碼)時,蜂鳴器發出一個短暫的響聲,來反饋給操作者,讓我們知道我們的解碼模塊解碼到了按鍵信息。設計結構如下圖所示:
  


  圖4-1 led實驗模塊組織結構圖
  詳細端口名及其意義如下
  


  表4-1 獨立按鍵檢測實驗端口說明
  因為存在模塊間的連接,因此有部分內部信號,下表為內部信號的名稱和功能說明
  


  表4-2 獨立按鍵檢測實驗內部信號說明
                               
                  五、 代碼分析
  這里,解碼的關鍵是PS2接口的時鐘信號,該時鐘為異步時鐘,我們需要通過邊沿檢測的方式來檢測其下降沿,以便根據下降沿的個數來確定每個時鐘我們因該做什么,邊沿檢測的電路,前面幾個實驗已經講過很多次了,這里便不再做過多的解釋,貼上代碼即可:
  以下是代碼片段:
  reg PS2_Clk_Tmp0,PS2_Clk_Tmp1,PS2_Clk_Tmp2,PS2_Clk_Tmp3;
  wire nedge_PS2_Clk; /*PS2從機時鐘下降沿檢測標志信號*/
  always @ (posedge Clk or negedge Rst_n)
  if(!Rst_n) begin
  PS2_Clk_Tmp0


  七、 下板驗證
  這里,小梅哥在至芯科技ZX2的板子上驗證通過,如下圖:
  其中,第三個數碼管,為0表示普通按鍵通碼,為2表示普通按鍵斷碼,為1表示擴展按鍵通碼,為3表示擴展按鍵斷碼。
  


  


  

                               
               
本文地址:http://m.qingdxww.cn/thread-160464-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • 使用SAM-IoT Wx v2開發板演示AWS IoT Core應用程序
  • 使用Harmony3加速TCP/IP應用的開發培訓教程
  • 集成高級模擬外設的PIC18F-Q71家族介紹培訓教程
  • 探索PIC16F13145 MCU系列——快速概覽
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 午夜熟女插插XX免费视频| 欧美一区二区三区四区在线观看| 日韩国产精品99久久久久久| 视频在线观看一区二区三区| 青青草国产精品久久| 日日夜夜摸| 色天天综合色天天碰| 亚洲码和乱人伦中文一区| 综合在线播放| 护士一级片| 欧美区一区二| 久久综合丁香激情久久| 无码天堂亚洲国产AV久久| 沈芯语麻豆0076 视频| 桃花在线视频观看免费| 亚洲国产午夜精品乱码| 一级欧美视频| 亚洲日韩中文字幕在线播放| 四虎影视国产精品亚洲精品hd | 爽死你个放荡粗暴小淫货漫画| 三男一女做a视频| 日韩在线不卡| 亚洲品质自拍视频网站| 四虎网址在线观看| 探花在线| 四虎影院永久免费| 四虎永久| 在线国产资源| 狠狠色在在线视频观看| 无止侵犯高H1V3无止侵犯| 一本色道久久88| 人人揉人人添人人捏人人看| 日本 亚洲 欧美| 亚洲视频免费在线| 亚洲无线一二三区2021| 亚洲一级特黄| 国产3级在线观看| 欧美视频精品一区二区三区| 自拍区偷拍亚洲视频| 特黄特色一级aa毛片免费观看| 亚洲草逼视频|