admin 管理员组

文章数量: 1184232


2024年4月12日发(作者:memcached与redis)

维普资讯

《农业网络信 g}2008年第5期 交流园地 

基于Linux智能手机的设备驱动的探讨 

周秋珍,徐秋红 

(北京林业大学信息学院,北京100083) 

摘要:基于Linux的智能手机软件平台项目是联想研究院的重点项目,其目的是为了统一联想高端智能手机软件平台。本 

文介绍了Linux智能手机系统的开发,通过研究手机内外屏键盘工作原理,完成了嵌入式智能手机的内外屏键盘驱动的设 

计与实现。文章所探讨的内外屏键盘驱动已经被用于联想的系列奥运产品中,并将在未来的联想高端智能手机中运用。 

关键词:Linux;键盘驱动;智能手机;设备驱动 

中图分类号:TP399 文献标识码:B 文章编码:1672—6251(2008)05—0158-03 

The study of the device drivers of smart phone based linux 

ZHOU Qiu—zhen,XU Qiu-hong 

(College of Information Science and Technology,Beijing Forestry University,Bering 100083) 

Abstract:the software plaftorm of smart phone based Linux is important projeat of lenovo institute,which aims to unify Lenovo 

High-tech smart phone software platform.The paper introduces the development of Linux smart phone system.by studying the 

keyboard S working principle,ultimately completes embedded smart phone,the internal and external screen of keyboard—driver of 

design and implementation.The internal and external screen of keyboard-driver process has been used in a series of Lenovo 

Olympic products,and will be used by high—tech smart phones in the future. 、 

Key words:Linux;Keyboard drivers;Smart phone;Device drivers 

Linux由于具有高效稳定、多用户环境、易裁减 行总线充电及数据传输等其它应用。 

与移植等特点,在嵌入式系统领域获得了飞速的发 

软件环境:基于Linux内核的操作系统,采用 

展;在智能手机领域,受到了广泛的关注。在国外, 

Qte/Qtopia(奇趣公司开发平台)来搭建系统。系统的 

Motorola和IBM等都采用了Qt/Embedded开发平台: 

主要软件层划分为操作系统、中间件和应用程序层, 

在中国,作为高端企业之一的联想,也采用了Qt/Em 

软件系统的层次关系和模块划分所如图1t ]所示: 

bedded作为开发基于Linux的智能手机的开发平台和 

图形用户界面。目前国内对基于Linux技术的智能手 

机的研究,还不成熟,并未形成一个完整的架构体系和 

设计方案.对LiBULK智能手机进行系统化的研究,统 

联想基于Linux智能手机设计流程是非常必要的【l1。 

键盘作为与图形用户界面的交互手段和重要的数据输 

入方式,在LiBUX智能手机项目中起着十分重要的作 

用。 

Mont ̄lst丑 

UBiJxi CEE 

3.1 for0H^P 

1系统开发环境 

16xx vdth 

GSM/GPRS 

硬件环境:本项目为研发出一款GSM(全球移动 

P3beard 

based On 

通信系统)与WiFi(无线局域网)、蓝牙共存的多模 

0M^P l62l 

块移动终端平台,支持频率GSM900/180O/1900,存储 

Solu tion

[ [ 蚤主 

卡可扩展到1GB.支持GSM/GPRS与无线局域网数据 

图1软件系统层次关系和模块划分 

应用,支持MP3播放、办公软件、闪联标准、通用串 在硬件设备上运行嵌入式Linux操作系统,中间 

收稿日期:2008—02—28;修回日期:2008—03—07 

作者简介:周秋珍(1982一),女,硕士研究生,研究方向:嵌入式操作系统。 

・-———

158---—— 

维普资讯

《农业网络信A)2oo8年第5期 交流园地 

件各模块(QT/Embedded、Qtopia核心以及其它功能 

模块)使用Linux内核和驱动程序提供的系统调用, 

实现供上层应用程序调用的各种基本功能,形成一个 

开发平台,Qtopia及其上运行的各种应用程序在此平 

台上开发和运行。最终完成提供给用户使用的各种功 

能。本系统采用QT/Embedded+Qtopia这套完备的基 

本软件架构,同时进行优化设计以提高系统的运行效 

率。 

2内外屏键盘驱动 

2.1硬件实现方案 

Linux智能手机的开发板项目包含内外屏两个键 

盘,这两个键盘芯片都采用MAX7359型号; 

MAX7359 I2C接口的外设为微处理器管理多达64个 

按键开关.多个按键可以按照不同顺序同时按下、保 

持、释放。按键按下、释放的输入操作可以被保存在 

FIFO寄存器内,用来存储press和release对应的键码, 

供驱动来读取。MAX7359以一个字节为单位采集按键 

的按下或释放输入,并通过简单的I2C接口读取。为 

了增强芯片的抗噪声能力,按键提供去抖检测。 

MAX7359具有自动休眠和自动唤醒功能,按键输入是 

静态监视而非动态扫描,以确保低EMI工作。中断输 

出fINT低电平有效1可配置为对按键事件或最大速率 

报警。任意列驱动器fCOL2/PORT2一COL7/POR1_7) 

或者低电平有效的INT如果未被使用,则可作为通用 

输出(GPO)。MAX7359提供小型24引脚TQFN 

(3.5mm X 3.5mm)封装,适合智能手机等电子产品。 

键盘驱动的功能1为完成对内外屏键盘按键和释 

放事件的检测,并发送键值给上层。功能2为完成对 

外键盘上power键f没有接在max7359上1按键和释 

放时间的检测,并发送键值f规定power键发送的键 

2V8 1 ̄

图2内屏键盘工作原理图 

O&001 

7359ETG 

值为100)给上层。当按下某键,对应行和列接口导 

通。初始状态时列接口都是输出高电平状态,行接口通 

过软件配置为低电平。当有按键按下,某个列接口电平 

被下拉从而产生下降沿,触发中断l 3i。内外屏键盘工作 

原理如图2和图3口】所示 

图3外屏键盘工作原理图 

Power键:Power键与AP的F19管脚相连,模式 

 

为UTM

LINESTATE0GPIO104。

—一

2.2硬件接口 

键盘控制器采用的是外置双24+64键I2C接口。 

内屏键盘:内键盘芯片的ADO管脚与GND连接, 

2.3软件描述 

2_3.1 应用内外键盘和Power键在按键和释放时. 

向其发送键值扫描码,负责发送按键和释放的状态。 

对于键盘事件,给上层应用提供标准的键值接口和按 

键、释放标志,为应用程序提供了丰富的底层驱动支 

持。 

则其I2C地址为:0x38内键盘芯片的INT管脚与AP 

的El3管脚相连,模式为KP_MKIN4

GPIO1 19。 

外屏键盘:外键盘芯片的ADO管脚与V+连接, 

则其I2C地址为:Cb(3A内键盘芯片的INT管脚与AP 

 

的V16管脚相连,模式为CIR

OUTGPIO16。

__

2_3.2 Max7359初始化在进行完I2C设备的一般的 

初始化过程后,函数keypad

init 0完成对max7359 

_

维普资讯

《农业网络信 g))2oo8年第5期 交流园地 

的初始化工作,清空FIFO,配置各种寄存器,并对寄 

ible(&max7359_keypadt_wait)唤醒该线程进行处理, 

存器的值进行检查。并要注册中断(Max7359的中断 读取FIFO中的值,并及时判断是按下还是释放。把 

是下降沿触发)。 

键值和状态通过input

_

report_key 0函数发送给上层。 

2.3.3 事件的中断处理 键盘驱动的核心就在于对键 

键码情况总结为如下四种:最新(1atest)按键press代 

值的扫描和处理。为了实现快速的响应速度,采取了 

码;最新(1atest)按键release代码;非最新按键press 

个独立的线程;当无按键事件时。该线程处于休眠 代码;非最新按键release代码。详细情况见表1和表 

状态:有键按下或者释放时,通过调用函数dis. 

2 

able irq(IRQ_MAIN_KEYPAD)和wake_up_interrupt- 

表1最新(1atest)按键press的代码 

表示多读~个字节。观察FIFO是否为空;保留Ox3F键码表示FIFO空;保留0x7F键码为FIFO溢出标志; 

保留Ox3E键码为按键重复标志,并且该键为最后一个FIFO数据;保留0x7E键码为按键重复标志。并且 

FIFO里还有更多数据。 

3结束语 

在Hnux中。系统调用是操作系统内核和应用程 

参考文献 

序之间的接口。而设备驱动程序就是操作系统内核和 

[1]孟彦.Linux智能手机phoneserver模块设计与优化[M].北京:联 

机器硬件之间的接口 联想研究院基于Hnux的智能 

想研究院。2007. 

手机平台的研发是联想集团目前的重点项目,此项目对 

[2j刘同.键盘驱动设计【MJ.北京:联想研究院,2007. 

后PC时代的智能手持设备提供前瞻性研究。本文基 

[3]李杰.基于嵌入武Linux的矩阵键盘设计与实现【J].现代电子 

于嵌入式Linux下的智能手机体系的开发。探讨智能 

技术,2006,(29):81~83. 

手机的内外屏键盘驱动的设计。 

160— 


本文标签: 键盘 按键 智能手机 提供 驱动