标题：嵌入式接口技术与Linux驱动开发
图书信息
书 名: 嵌入式接口技术与Linux驱 动开发
作　者：郑灵翔
出版社： 北京航空航天大学出版社
出版时间： 2010年4月1日
ISBN: 9787512400641
开本： 16开
定价: 32.00元
内容简介
第1、2章是全书的基础，主要介绍了嵌入式接口技术的软硬件基础知识，并深入介绍了嵌入式Linux驱动的基本原理；第3章在介绍嵌入式存储接口设计的基础上说明了最小系统设计、Bootloader移植以及嵌入式Linux的芯片级和板级移植；第4～6章以小键盘、实时时钟和触摸屏接口为例，在硬件方面介绍嵌入式系统中简单I/O接口的扩展技术以及GPIO的输入/输出和中断功能的使用，同时在软件上介绍这些设备接口的驱动与控制方法，如基于定时器的程序查询式I/O控制、阻塞型和非阻塞型I/O、异步I/O信号的支持方法和中断处理方法、Linux内核的实时时钟子系统和输入设备子系统的使用等；第7～9章介绍了一些软硬件都较为复杂的嵌入式接口，它们包括以太网接口与网络设备驱动原理、PCMCIA接口与PCMCIA驱动原理、AC97音频接口与基于ALSA架构的音频驱动设计。
图书目录
第1章 嵌入式系统接口技术概述1
1.1 嵌入式系统的架构与I/O接口的连接方式1
1.1.1 嵌入式系统的基本结构1
1.1.2 嵌入式SOC处理器与片上I/O接口2
1.1.3 嵌入式系统的I/O接口的扩展3
1.2 接口的基本功能4
1.3 I/O接口及其编址方式5
1.4 I/O接口扩展方法6
1.5 I/O设备的控制方法12
第2章 Linux内核设备驱动原理15
2.1 基本原理15
2.1.1 Linux操作系统的架构15
2.1.2 嵌入式系统的开发模式与嵌入式Linux设备驱动16
2.1.3 Linux设备的分类17
2.1.4 Linux设备的标识18
2.2 内核模块18
2.2.1 什么是内核模块18
2.2.2 内核模块的框架19
2.2.3 内核模块的编译21
2.3 Linux内核编程常见操作25
2.4 设备驱动程序的结构30
2.4.1 虚拟文件系统与硬件驱动的接口31
2.4.2 简单字符设备的驱动32
2.5 Linux2.6 内核的中断处理37
2.5.1 Linux中断处理流程37
2.5.2 外部中断的描述与处理41
2.5.3 中断处理程序的注册与释放45
2.5.4 中断处理程序的编写46
2.6 Linux2.6 内核的工作推后执行的机制46
2.6.1 软中断47
2.6.2 Tasklet47
2.6.3 工作队列49
2.7 Linux2.6 内核设备模型52
2.7.1 Linux2.6 设备模型概述52
2.7.2 内核设备驱动模型的组件54
2.7.3 sysfs文件系统、udev和Linux内核设备模型58
2.7.4 平台总线设备61
本章小结66
习题与思考题67
第3章 最小硬件系统设计与底层软件移植68
3.1 最小硬件系统设计68
3.1.1 系统存储器接口69
3.1.2 串行通信接口电路原理73
3.2 最小硬件系统的配置74
3.2.1 处理器的配置74
3.2.2 FLASH&SDRAM的配置76
3.2.3 GPIO和串口的配置79
3.3 最小硬件系统与Bootloader81
3.3.1 Uboot启动阶段1的处理过程82
3.3.2 Uboot启动阶段2的处理过程87
3.3.3 Uboot移植原理88
3.3.4 基于Uboot的硬件调试94
3.4 Linux2.6 内核移植原理96
3.4.1 外部中断初始化97
3.4.2 DMA接口101
3.4.3 系统时钟接口103
3.4.4 片上设备I/O地址空间的静态映射106
3.4.5 片上I/O设备的定义108
3.5 最小硬件系统与Linux2.6 内核移植109
3.5.1 建立开发板平台描述文件109
3.5.2 编写硬件include文件111
3.5.3 修改内核配置文件111
本章小结112
习题与思考题112
第4章 小键盘接口设计与Linux驱动开发113
4.1 硬件原理113
4.1.1 接口设计114
4.1.2 电路原理114
4.2 软件驱动原理116
4.2.1 内核模块的加载和卸载函数117
4.2.2 虚拟文件系统与硬件驱动的接口118
4.2.3 设备打开操作接口函数118
4.2.4 设备读取操作接口函数119
4.2.5 设备关闭操作接口函数119
4.2.6 攫取键值子函数120
4.2.7 读缓冲区子函数121
4.2.8 定时器在程序查询式I/O控制方式中的应用122
4.2.9 利用等待队列实现阻塞型I/O123
4.2.1 0poll()系统调用接口函数124
4.2.1 1信号驱动的异步I/O操作的支持126
4.3 键盘信息读取应用程序127
4.3.1 打开键盘设备127
4.3.2 读取键值128
4.3.3 关闭键盘设备129
本章小结129
习题与思考题129
第5章 实时时钟接口与Linux驱动开发130
5.1 实时时钟接口电路设计130
5.1.1 处理器与RTC4513接口设计130
5.1.2 RTC4513电路原理131
5.1.3 RTC4513操作参数134
5.1.4 RTC4513的串行操作流程136
5.2 RTC软件驱动原理140
5.2.1 内核模块的加载和卸载140
5.2.2 虚拟文件系统与硬件驱动的接口140
5.2.3 设备打开操作接口函数141
5.2.4 ioctl方法141
5.2.5 设备关闭操作接口函数145
5.2.6 读时钟寄存器子函数146
5.2.7 写时钟寄存器子函数146
5.3 RTC操作应用程序147
5.4 基于Linux内核实时时钟子系统的RTC驱动149
5.4.1 RTC设备驱动接口150
5.4.2 实时时钟子系统的rtcdev模块与上层API152
本章小结154
习题与思考题154
第6章 触摸屏接口设计与Linux驱动开发156
6.1 触摸屏的工作原理156
6.2 ADS7843触摸屏控制器简介157
6.3 处理器与ADS7843的接口设计160
6.3.1 接口电路设计160
6.3.2 Microwire数据帧结构161
6.4 软件驱动原理162
6.4.1 Linux输入设备子系统162
6.4.2 触摸屏硬件操控原理167
6.4.3 触摸屏驱动与输入设备子系统的接口169
6.4.4 中断处理173
6.5 基于触摸屏驱动的应用示例175
本章小结177
习题与思考题178
第7章 以太网电路设计与Linux驱动开发179
7.1 CS8900A以太网芯片简介179
7.1.1 功能介绍179
7.1.2 引脚定义180
7.2 处理器与以太网接口电路设计180
7.3 CS8900A片内寄存器介绍182
7.3.1 总线接口寄存器组182
7.3.2 状态与控制寄存器组183
7.3.3 发送初始化寄存器组191
7.3.4 地址过滤寄存器组192
7.4 CS8900A的操作方法193
7.4.1 CS8900的初始化193
7.4.2 CS8900A的I/O模式寄存器194
7.4.3 读写CS8900A的片内寄存器194
7.5 软件驱动原理195
7.5.1 Linux网络设备驱动框架195
7.5.2 Linux网络协议栈与驱动间的接口196
7.5.3 Linux网络设备接口201
7.5.4 CS8900A驱动中的网络设备操作接口实现203
7.5.5 数据接收与中断处理207
7.5.6 利用平台总线设备封装网络驱动212
本章小结217
习题与思考题217
第8章 PCMCIA外围电路设计和Linux驱动开发218
8.1 基于PXA2XX处理器的PCMCIA接口218
8.1.1 PCMCIA和CF接口简介218
8.1.2 PCMCIA存储器映射219
8.1.3 PCMCIA外部接口设计220
8.2 外围电路驱动原理220
8.2.1 双向收发器74LCX245的使用220
8.2.2 CF卡插入检测224
8.2.3 “卡读（写）使能”信号224
8.2.4 PCMCIA接口的SocketSelect224
8.2.5 PCMCIA接口的电源管理226
8.3 GPIO连接原理227
8.3.1 存储控制单元的GPIO连接原理227
8.3.2 与中断相关的GPIO连接原理228
8.4 PCMCIA软件驱动原理229
8.4.1 PCMCIA驱动程序体系229
8.4.2 PCMCIA工作流程230
8.4.3 插口驱动设计231
8.5 PCMCIACardServices软件包233
8.5.1 软件包的安装233
8.5.2 特定卡驱动234
8.5.3 CF存储卡的使用235
本章小结237
习题与思考题237
第9章 AC97音频处理电路设计与Linux驱动开发238
9.1 PXA2XXAC97硬件工作原理238
9.1.1 PXA2XXAC97音频处理电路设计238
9.1.2 PXA2XXAC97控制单元239
9.1.3 CS4299音频编解码器245
9.2 LinuxALSA音频设备驱动原理249
9.2.1 ALSA简介249
9.2.2 ALSA声卡驱动架构250
9.2.3 ALSA驱动中的声卡描述对象与音频设备组件管理251
9.2.4 ALSA驱动的PCM中间层254
9.2.5 ALSA驱动的AC97编解码器中间层256
9.3 PXA2XXAC97的ALSA驱动259
9.3.1 硬件初始化与声卡描述对象的创建和注册260
9.3.2 PCM接口及其底层硬件操作接口的实现262
9.3.3 AC97的底层硬件操作接口实现266
本章小结270
习题与思考题270
参考文献271