亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于SEP5010 WinCE 5.0的矩陣鍵盤驅動的設計與實現

        2008-04-12 00:00:00時建龍黃少珉
        現代電子技術 2008年24期

        摘 要:在嵌入式系統(tǒng)中,鍵盤是重要的人機交互設備。對基于東南大學自主研發(fā)的SEP5010芯片和WinCE5.0操作系統(tǒng)的矩陣鍵盤驅動的研究與設計,正是為了解決基于此平臺的手持導航設備的鍵盤驅動問題。根據平臺上鍵盤布局的特殊性(非標準矩陣鍵盤),從驅動的工作原理、鍵盤中斷處理程序的設計及鍵盤鍵值掃描算法的實現等方面,對WinCE5.0操作系統(tǒng)下的矩陣鍵盤驅動進行研究與設計,用戶可根據需要決定各鍵的掃描碼。目前該鍵盤驅動方案已經成功應用于該款手持導航設備。

        關鍵詞:SEP5010;WinCE 5.0;鍵盤驅動;矩陣鍵盤;中斷處理;掃描算法

        中圖分類號:TP3342+3文獻標識碼:B

        文章編號:1004-373X(2008)24-037-03

        Design and Implement of Matrix Keyboard Driver Based on

        SEP5010 Chip Embedded WinCE5.0

        SHI Jianlong,BAO Dan,HUANG Shaomin

        (National ASIC System Engineering Research Center,Southeast University,Nanjing,210096,China)

        Abstract:The keyboard is an important interactive device in embedded system.All the researches and designs described in this paper is to solve the problem of a handled navigation device′s keyboard,based on the platform composed of SEP5010 microchip,which is independently researched and developed by the Southeast University,and WinCE5.0 operating system.The following mainly describes the working principle of the driver,keyboard interrupt handling procedures and scanning algorithm to obtain the key values according to the special layout of the keyboard (non-standard matrix keyboard) on handled navigation device.Users may decide scan codes of the keys according to what they need.Presently,this keyboard driver has been applied to the handheld navigation device.

        Keywords:SEP5010;WinCE5.0;keyboard driver;matrix keyboard;interrupt handling;scanning algorithm

        1 引 言

        嵌入式系統(tǒng)無疑是當今最熱門的概念之一。作為一種和圖形用戶界面的交互手段,同時,作為一種重要的數據輸入方式,嵌入式鍵盤也起著舉足輕重的作用。由于嵌入式設備的功能互異性,為其提供一種通用性鍵盤是不可行的,一般都需要根據嵌入式系統(tǒng)的實際功能來設計所需的特殊鍵盤,并實現相應的驅動程序。

        提出的鍵盤驅動方案就是在以嵌入式WinCE 5.0和東南大學自主研發(fā)的SEP5010處理器為軟硬件平臺上,采用了7個鍵的鍵盤布局,分為兩組。一組是單獨的一個鍵,另一組是3×2(3行2列)的矩陣鍵盤。根據其鍵盤布局的特殊性,設計特定的鍵盤中斷處理程序和鍵盤鍵值掃描算法,從而實現的本鍵盤驅動。

        2 設計背景

        2.1 硬件平臺

        硬件平臺東南大學自主研發(fā)的SEP5010芯片,內部集成ARM公司的ARM926EJ-S微處理器,它是32位高性能RISC處理器。最高主頻達300 MHz,擴展了64 MB的SDRAM,2MB 32 b的Nor FLASH和64 MB×8 b的NAND FLASH,外圍資源豐富。本文所采用的開發(fā)

        平臺為基于SEP5010芯片的手持導航系統(tǒng)平臺,本開發(fā)平臺的系統(tǒng)框圖如圖1所示。基于本開發(fā)平臺的鍵盤布局如圖2所示。

        由于SEP5010芯片沒有專用的鍵盤控制芯片,故采用GPIO口作為鍵盤掃描端口。如圖2所示,該鍵盤硬件電路總共有7個鍵,分為2組。一組是單獨的1個鍵SW7,這個鍵單獨占用了1個GPIO中斷口(下降沿觸發(fā)中斷),它的一端接地,另一端接在SEP5010的PA4_INT12;另一組是3×2(3行2列)的鍵盤陣列,行占用了3個中斷GPIO口(下降沿觸發(fā)中斷),3條行線KEYR1,KEYR2,KEYR3分別接在SEP5010的PB1_INT1,PB2_INT2,PB3_INT3;列占用了2個普通GPIO口,2條列線KEYC1,KEYC2分別接在了SEP5010的PC0,PC1。

        2.2 軟件平臺

        平臺軟件采用WinCE 5.0作為系統(tǒng)的操作系統(tǒng),它是一個功能強大的實時嵌入式操作系統(tǒng)。它具有內核強大、開源、易擴展和裁減以及豐富的硬件支持等諸多優(yōu)點,在嵌入式系統(tǒng)領域得到相當廣泛的應用。

        WinCE 5.0鍵盤驅動的整體框架如圖3所示。

        當鍵盤產生按鍵動作之后,觸發(fā)中斷,鍵盤驅動啟動掃描程序,獲得鍵盤的掃描碼。鍵盤驅動負責把硬件掃描碼轉換為虛擬鍵值,并以事件的形式通知上層的GWES。最后GWES將該事件封裝成消息發(fā)送給合適的應用程序。

        3 本鍵盤驅動的設計與實現

        3.1 本鍵盤驅動工作原理詳細分析

        WinCE 5.0中的設備驅動程序運行在內核態(tài)。內核態(tài)處于硬件層之上的系統(tǒng)層,系統(tǒng)層之上則是應用層。本段主要討論鍵盤驅動的實現。本文選擇將鍵盤驅動以動態(tài)模式加載到內核中。系統(tǒng)啟動后,首先啟動GWES,GWES調用鍵盤驅動MDD層(MODE Device Driver)的初始化接口函數KeybdDriverInitializeEx(),同時創(chuàng)建事件處理線程ET(Event Thread,對應函數入口為:KeybdEventThreadProc());然后進入鍵盤驅動PDD層(Platform Dependent Driver)的入口函數:Matrix_Entry(),對硬件平臺進行相關初始化,首先對I/O端口進行初始化,然后啟動中斷服務線程IST(Interrupt Service Thread,對應的函數入口為:IsrThreadProc()),其專門用于處理鍵盤事件,其實也就是向系統(tǒng)申請了軟硬件資源,如圖4所示。

        初始化完畢后,當無鍵盤事件時,IST線程阻塞。一旦有按鍵被按下,某列GPIO口則會產生下降沿觸發(fā)的中斷,進入中斷服務例程:OEMInterruptHandler。中斷服務例程返回邏輯中斷號,由內核進行邏輯中斷號與相關中斷事件的關聯(lián),從而喚醒阻塞的IST線程。而鍵盤矩陣掃描和讀取鍵值等對鍵盤按下事件的處理均通過IST線程來實現。

        3.2 本鍵盤驅動的中斷處理過程

        本鍵盤驅動的中斷處理過程如圖5所示。由于在SEP5010處理器中沒有專用的鍵盤控制芯片,所以按鍵是通過GPIO來控制的,根據本鍵盤布局的設計,共申請了4個IRQ中斷:分別為EINT1,EINT2,EINT3,EINT12,而每個邏輯中斷號只能惟一關聯(lián)1個物理中斷號,所以針對本硬件平臺的特殊性,要將該4個硬件中斷關聯(lián)為一個系統(tǒng)中斷號IRQ_KEYBD(定義為32號中斷),無論4個中斷中的哪個被觸發(fā)都被關聯(lián)為這個32號中斷,由這個惟一的鍵盤中斷號去關聯(lián)鍵盤的邏輯中斷號,從而觸發(fā)事件。

        進入中斷服務例程后會用內核鎖機制將此中斷線上產生的其他中斷屏蔽,直到退出中斷例程,防止其他GPIO口上的中斷對此次中斷處理產生干擾。因此不難想到如果某個中斷服務例程處理的時間太長就可能導致其他中斷無法響應,從而產生丟中斷的嚴重后果。在本方案中使用IST線程來處理,就避免了在中斷服務例程中耽擱較長時間,影響其他外部中斷請求。由于WinCE 5.0系統(tǒng)中內核態(tài)都是一些線程在運行,用以處理相應的中斷事件。IST線程的使用不會影響其他程序運行且能保證較好對鍵盤事件進行實時響應。

        3.3 本鍵盤鍵值掃描算法的實現

        本段分析了線程喚醒后掃描鍵盤矩陣得到鍵值和鍵盤狀態(tài)的過程。如圖6所示。

        如圖6所示,當線程喚醒后,先進行按鍵防抖,延遲2 ms,然后進入矩陣鍵盤掃描程序。本開發(fā)板的鍵盤設計為:一共7個鍵,分為2組。一組是單獨的1個功能鍵,另一組是3×2(3行2列)的鍵盤陣列。本設計采用的鍵值掃描方案為:把這7個鍵看成是一個2×4(2行4列)的矩陣鍵盤,判斷哪些鍵按下時,首先將兩行都置高,然后將第一行置低,先讀取第一列的值,若為低,則說明是按鍵7(SW7)被按下,第二列的值若為高,則直接讀取第二列的值,若為低,則說明是按鍵1(SW1)被按下,不然,則再讀取第三列的值依次類推。若均為高電平,則反過來,將第一行置為高,將第二行置為低,從第二列開始掃描,若為低,則說明是按鍵4(SW4)被按下,不然,則再讀取第三列的值依次類推。最后會周期性的激活IST(由定時器線程保證)來確保按鍵已經抬起,抬起后返回TURE通知上層,否則若一直未抬起,則返回FALSE通知上層。

        4 結 語

        嵌入式系統(tǒng)需要針對不同的用戶需求定制開發(fā),因此在基于WinCE 5.0嵌入式系統(tǒng)開發(fā)過程中,需要從硬件電路及驅動程序兩方面著手開發(fā)基礎平臺。WinCE 5.0驅動程序的開發(fā)是系統(tǒng)實現過程中的一個關鍵因素。本文介紹了基于SEP5010平臺和嵌入式WinCE 5.0的一種矩陣鍵盤驅動的設計與實現,目前,此設計已經成功用于多款嵌入式手持設備。

        參考文獻

        [1]國家專用集成電路工程技術研究中心.SEP5010用戶手冊,2002.

        [2]張冬泉.Windows CE實用開發(fā)技術.北京:電子工業(yè)出版社,2006.

        [3]時龍興.嵌入式系統(tǒng)基于SEP3203微處理器的應用開發(fā).北京:電子工業(yè)出版社,2006.

        [4]周疏林,寧楊.Windows CE.NET內核定制及應用開發(fā)[M].北京:電子工業(yè)出版社,2005.

        [5]周立功.ARM嵌入式系統(tǒng)基礎教程[M].北京:北京航空航天大學出版社,2005.

        [6]董延.UCDOS鍵盤驅動模塊的分析與改進.山東工程學院學報,1995,9(3):59-63.

        [7]吳旭,屈萬里.S3C44B0X按鍵鍵盤的μClinux驅動程序設計.電子工程師,2006,32(5):50-51.

        [8]吳金華,李駒光,韋安.基于ARM9的多行列鍵盤設計及其驅動實現.微計算機信息,2008,24(2):123-124.

        [9]朱昊,張侃諭,由守明.嵌入式Linux下一種新的鍵盤設計和驅動程序開發(fā).微型電腦應用,2005,21(3):44-47.

        [10]鄭志國,趙萬春.基于嵌入式Linux系統(tǒng)鍵盤驅動的原理及實現.計算機系統(tǒng)應用,2007(11):120-122.

        [11]林樹新,吳朝暉.Linux鍵盤驅動的移植分析及實現.計算機工程,2005,31(2):211-213.

        作者簡介

        時建龍 男,1981年出生,碩士研究生。研究方向為嵌入式系統(tǒng)設計。

        鮑 丹 女,1981年出生,碩士研究生,研究方向為嵌入式系統(tǒng)。

        黃少珉 男,1980年出生,講師。研究方向為SoC系統(tǒng)設計,嵌入式系統(tǒng)低功耗設計。

        精品国内在视频线2019| 麻豆成人久久精品二区三区91| 国产精品性色av麻豆| 少妇伦子伦精品无吗| a在线观看免费网站大全| 中文字幕人妻少妇引诱隔壁| 色先锋av影音先锋在线| 亚洲精品国产v片在线观看| 欧美综合区自拍亚洲综合| 东京热加勒比国产精品| 亚洲夜夜性无码| 国产无套护士在线观看| 精品国产91久久久久久久a| 成人大片在线观看视频| 亚洲av综合色区| 精品无码国产污污污免费网站| 欧美丝袜秘书在线一区 | 无码一区二区三区在线在看| 最全精品自拍视频在线| 亚洲熟妇无码久久精品| 野花社区www高清视频| 欧美黑人xxxx性高清版| 成人一区二区三区激情视频| 亚洲av无码精品国产成人| 国产女人成人精品视频| 日韩高清av一区二区| 一区二区三区字幕中文| 日本aⅴ大伊香蕉精品视频| 日本一区二区三区激情视频| 亚洲av熟女少妇一区二区三区| 亚洲av无码无限在线观看| 丰满多毛少妇做爰视频| 久久精品中文字幕亚洲| 亚洲免费国产中文字幕久久久 | 99这里只有精品| 在线免费观看国产视频不卡| 日韩精品亚洲一区二区| 日本又黄又爽gif动态图| 欧美一级视频在线| 开心久久婷婷综合中文字幕| 成年无码av片在线|