新聞中心

        EEPW首頁 > 嵌入式系統 > 設計應用 > 單片機實現數字化B超鍵盤設計

        單片機實現數字化B超鍵盤設計

        作者: 時間:2011-04-06 來源:網絡 收藏

        4.3 初始化及命令查詢處理
        初始化過程是過程中需要注意的。計算機啟動過程跟主板有關,因為主機在總線上有優先權,通信過程發生異常,將禁用設備,而且目前找不到介紹計算機啟動過程中對操作細節的描述,所以本部分的是難點。
        經過試驗發現,上電后,完成白檢即發送代碼0AAH給計算機,計算機在啟動過程中可以進行復位、讀ID、停止鍵掃、使能鍵掃、控制LED狀態等操作,而且有時計算機會拉低時鐘信號——抑制通訊,在整個過程中,只要主機認為設備異常,將抑制通訊導致無法使用而且不能進入操作系統。
        每個由計算機發送到鍵盤的數據都能從鍵盤獲得一個0FAH應答的回應,唯一例外的是鍵盤對Resend和Echo命令的回應。在發送下一個字節給鍵盤之前,主機要等待應答。鍵盤作為從設備,無法預先知道什么時候主機會發送控制命令,一旦主機發送命令給設備,設備沒有回應,主機即將該設備掛起,除非重新開機。
        針對命令集,了專門的應答子程序,根據設備收到的命令,作出相應的回答和處理。
        經邏輯分析儀測試、分析和反復驗證,發現在主程序中插入命令查詢處理程序,既能滿足初始化的要求,還可以保證鍵盤及時接收和處理來自主機的信息,維持鍵盤設備正常工作,命令查詢處理程序流程如圖4所示。這部分概括起來就是空出360μs的等待時間(15μsx20),作查詢,如果在這段時間內,數據線和時鐘線同時變為低電平,表示鍵盤有命令需發送,設備產生時鐘以接收命令,并根據收到的命令做相應的處理。

        本文引用地址:http://www.104case.com/article/172890.htm

        i.JPG


        4. 4 TGC數據處理
        TGC數據發送實質上是一個掃描碼的序列,如第一個TGC增益數據為80,依次向計算機發送0x14 0x16 0x3E0x45 0xF0 0x14,對應鍵“L Ctrl”按下、鍵“1”按下、鍵“8”按下、鍵“0”按下、鍵“L Ctrl”釋放的動作,超聲系統軟件解析。實踐證明,發送每個序列數據過程中兩個數據間至少應延時1.06 ms。
        上述組合不會引起計算機異常,此前嘗試過其他組合,在沒進入超聲軟件時調節TGC易引起誤操作。
        特別要注意的是:
        1)開機時ADC采樣使能標志清0,禁止采集TGC;
        2)鍵盤上電完成初始化后開啟定時器1,聯合應用定時器和計數器,定時5 s,時間到則ADC采樣使能標志置1,可以采集TGC數據,TGC數據有變化則發送給計算機;
        3)設立轉換通道標志碼,實時狀態每次鍵掃時根據標志碼只進行相對應的一個電位器的模數轉換,轉換后將轉換標志碼指向下一通道。
        采用上述措施旨在解決因開機過程中鍵盤發送TGC數據和正常工作時TGC數據頻繁發送導致鍵盤死機問題,頻繁發送數據以至主機認為鍵盤異常而禁用鍵盤。
        4.5 狀態同步處理
        標準鍵盤上有Num Lock,Caps Lock和Scroll Lock3個LED指示燈,為了主機與鍵盤的狀態同步,采用了如下解決方案:鍵盤只發送Num Lock、Caps Lock、Scroll Lock按下或者釋放的代碼;根據按鍵情況,主機發送專門用于指示鍵盤上Num Lock、Caps Lock和ScrollLo-ck3個LED狀態的指令;鍵盤處理器收到指令后刷新指示燈。
        設計中凍結鍵使用Scroll Lock以保持狀態同步。
        Depth、Zoom、Focus、I.P、A-Pwr與功能調節編碼器組合使用,5個按鍵中每次只有1個激活,激活時led指示燈亮,按鍵狀態則由鍵盤MCU寄存和切換控制,不同功能激活時調節編碼器產生不同的鍵碼,如:Depth激活時編碼器左旋產生“KP-”按下的代碼,右旋則產生“KP +”按下代碼;Zoom激活時編碼器左旋產生“Page Up”按下的代碼,右旋則產生“Page Down”按下代碼。該方法成功解決了狀態同步問題。

        5 結論
        對基于W78E052D設計的PS2鍵盤方案、硬件和軟件設計做了詳細闡述,命令查詢、TGC和狀態同步處理對自行設計非標PS2鍵盤有借鑒意義,在整個設計過程中,通過不斷改進硬件和調試軟件,得到了預期的效果。相對于采用多片MCU分別處理幾個模塊最終通過USB集線器同PC主機通訊的方案,接口更簡單,成本更低,而且不需要專門開發鍵盤驅動程序。在需要3個以上編碼器的應用中,編碼器處理方案有待于進一步改進。


        上一頁 1 2 3 4 下一頁

        評論


        相關推薦

        技術專區

        關閉
        主站蜘蛛池模板: 灵宝市| 卢湾区| 光山县| 双江| 剑阁县| 奉节县| 镇平县| 麟游县| 沅江市| 墨玉县| 肥东县| 聂拉木县| 柏乡县| 阳城县| 平陆县| 武邑县| 台安县| 运城市| 行唐县| 定兴县| 大同市| 临夏县| 桂平市| 团风县| 伊金霍洛旗| 冀州市| 深水埗区| 古丈县| 永济市| 云阳县| 大化| 叙永县| 张家口市| 晋宁县| 泰来县| 招远市| 岳阳市| 兴文县| 陇西县| 汪清县| 舟山市|