第12章 Linux字符设备驱动综合实例
本章将分析5个典型的字符设备驱动,在这些驱动中,将灵活地运用到前面各章所讲解的内容。
12.1节讲解按键的设备驱动,加深读者对字符设备驱动架构、阻塞与非阻塞、中断、定时器等相关知识的理解。
12.2节讲解触摸屏的设备驱动,触摸屏的设备驱动比按键的设备驱动稍微复杂一些,但是很类似。
12.3节讲解TI的DSP提供给通用CPU的HPI(主机并行接口)的设备驱动,硬件结构为ARM+DSP,ARM的总线连接DSP的HPI接口。
12.4节讲解通用NVRAM的设备驱动,并会引入一个新的概念,即miscdevice(混杂设备)。
12.5节讲解看门狗的设备驱动,它也被归入miscdevice,这一节还会引入两个新的概念,即platform_device(平台设备)和platform_driver(平台驱动)。
NVRAM和看门狗的设备驱动与普通字符设备驱动有细微的差别。
12.1按键的设备驱动
12.1.1 按键的硬件原理
在嵌入式系统中,按键的硬件原理比较简单,通过一个上拉电阻将处理器的外部中断(或GPIO)引脚拉高,电阻的另一端连接按钮并接地即可实现。如图12.1所示,当按钮被按下时,EINT10、EIN13、EINT14、EINT15上将产生低电平,这个低电平将中断CPU(图中的CPU为S3C2410),CPU可以依据中断判断按键被按下。
但是,仅仅依据中断被产生就认定有一次按键行为是很不准确的,所有按键、触摸屏等机械设备都存在一个固有的问题,那就是“抖动”,按键从最初接通到稳定接通要经过数毫秒,其间可能发生多次“接通―断开”的过程。如果不消除“抖动”的影响,一次按键可能被理解为多次按键。
消除按键抖动影响的方法是:在判断有键按下后,进行软件延时(如20ms,在延时过程中要屏蔽对应中断),再判断键盘状态,如果仍处于按键按下状态,则可以断定该按键被按下,流程如图12.2(a)所示。如果按键对应的引脚本身不具备中断输入功能,则可以改为完全查询方式,流程如图12.2(b)所示。
![]() |
| 图12.1 按键的硬件原理 |
![]() |
| 图12.2 确认按键的流程 |
| 回书目 上一节 下一节 |
|
||||
| · 国际文档格式标准开战 · 华为员工自杀频频拷问.. · CISSP认证成长之路 · 珊瑚虫QQ作者侵权案开庭 · 微软出价446亿美元收购.. · Windows Server 2008专.. · 隐私保护技术探讨 · 贝恩资本携手华为22亿.. |
· 802.11n:下一代的无线.. · 体验Visual Studio 200.. · 运营商封堵非法ADSL共享 · ADSL应用面面俱到 · 龙芯要做中国的“奔腾” · 华为七千人主动辞职规.. · 华为路由器配置 · 2007盘点专题:有多少.. |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · SQL Server 2008/2005.. · 中间件应用技术专题 · 深入了解PGP加密技术 · MySQL数据库备份 |
· 病毒查杀专题 · VPN技术 · Solaris 10 配置管理 · Linux 基础 · SSL VPN详细知识 · Linux防火墙 · Linux 集群技术专题 · 打造安全服务器 |
|||
|
||||
| · VPN技术 · SQL Server 2008/2005.. · 中间件应用技术专题 · SQL Server 2008/2005.. · SOA 面向服务架构 · 子网掩码教程 · MySQL数据库备份 · 身份认证技术 |
· 病毒查杀专题 · 清除流氓软件——51CTO.. · SSL VPN详细知识 · Sniffer安全技术从入门.. · Linux 集群技术专题 · VPN技术 · Linux 基础 · SOA 面向服务架构 |
|||