嵌入式Linux设备驱动开发详解


嵌入式Linux设备驱动开发详解

文章插图
嵌入式Linux设备驱动开发详解【嵌入式Linux设备驱动开发详解】《嵌入式Linux设备驱动开发详》是人民邮电出版社2008年出版的图书 , 作者李俊 。
基本介绍书名:嵌入式Linux设备驱动开发详解
作者:李俊
ISBN:10位[7115173427] 13位[9787115173423]
定价:¥49.00 元
出版社:人民邮电出版社
出版时间:2008-3-1
内容提要该书详细讲解了嵌入式Linux的各种设备驱动 。嵌入式Linux设备驱动是嵌入式系统中十分重要的组成部分 。本书详细讲解了嵌入式Linux的各种设备驱动 , 包括字元设备驱动、数字显示驱动、键盘驱动、A/D驱动、D/A驱动、LCD驱动、触控萤幕驱动、CAN汇流排驱动、IIC汇流排驱动、音频汇流排驱动、IDE接口驱动、快闪记忆体晶片驱动、USB驱动、串口驱动、网路设备驱动等 , 并结合大量实例进行讲解 , 读者可以快速熟悉和掌握相关知识 。编辑推荐本书特色:本书系统地介绍了嵌入式Linux设备驱动开发的相关知识和实例 , 主要包括:数码管驱动程式;键盘驱动程式;A/D、D/A驱动程式;LCD驱动程式;触控萤幕驱动程式;CAN汇流排驱动程式;I2C汇流排驱动程式;音频汇流排驱动程式;IDE驱动程式;NAND Flash和NOR Flash驱动程式;USB设备驱动程式;串口驱动程式;网路设备驱动程式 。实例丰富、讲解细緻、代码分析详尽 , 嵌入式Linux设备驱动开发的理想参考用书 。目录第1章 嵌入式系统与驱动程式 1本章目标 11.1 嵌入式系统概述 11.1.1 嵌入式系统的概念 11.1.2 嵌入式系统的特点 21.1.3 嵌入式系统的体系结构 21.2 嵌入式处理器介绍 41.2.1 嵌入式处理器分类 41.2.2 ARM概述 51.2.3 ARM系列晶片简介 51.3 嵌入式作业系统介绍 71.3.1 主流嵌入式作业系统 71.3.2 嵌入式系统的发展状况 81.3.3 嵌入式Linux介绍 81.3.4 嵌入式系统开发环境的建立 91.3.5 嵌入式软体开发 101.4 嵌入式Linux驱动程式 121.4.1 嵌入式Linux的核心空间和用户空间 121.4.2 嵌入式Linux的档案系统 121.4.3 嵌入式Linux的设备管理 141.4.4 嵌入式Linux的驱动程式 161.5 知识索引 201.6 思考与练习 21第2章 简单的字元设备驱动程式 23本章目标 232.1 嵌入式Linux字元设备的驱动程式结构 232.1.1 嵌入式Linux驱动程式常用的头档案 242.1.2 File_operations结构体 242.1.3 字元设备驱动程式的入口 252.1.4 驱动程式的设备注册 262.2 设备驱动程式中的具体问题 272.2.1 I/O连线埠 282.2.2 记忆体操作 292.2.3 中断处理 292.3 LED的驱动程式实例及测试 302.3.1 LED I/O连线埠设定 302.3.2 LED硬体电路设计 322.3.3 LED驱动程式设计 332.3.4 LED测试程式设计 362.4 嵌入式Linux中断处理驱动程式及测试 372.4.1 中断处理过程 372.4.2 中断向量表 392.4.3 中断的处理模式 392.4.4 中断的优先权 402.4.5 中断的嵌套 402.4.6 中断源的扩展 402.4.7 中断控制暂存器的设定 412.5 按键中断的驱动程式实例 452.5.1 按键中断的电路设计 452.5.2 按键中断的驱动程式设计 452.6 知识索引 482.7 思考与练习 49第3章 数字显示驱动程式 50本章目标 503.1 数字显示器 503.1.1 数码管简介 503.1.2 数码管的分类 513.1.3 数码管显示原理 513.2 数码管显示电路的硬体设计 523.2.1 解码器的使用 523.2.2 数码管的驱动方式 533.2.3 串/并变换的解码设计 553.3 数码管驱动程式实例 563.3.1 驱动程式的初始化和卸载模组 563.3.2 档案操作结构模组 573.3.3 数码管的打开模组 573.3.4 数码管的读写模组 583.3.5 数码管的I/O控制模组 583.3.6 数码管的退出模组 583.3.7 驱动程式的模组载入和卸载 593.4 数码管显示电路测试程式设计 603.4.1 数码管测试设计 603.4.2 数码管测试程式 603.4.3 数码管测试效果 613.5 知识索引 613.6 思考与练习 62第4章 键盘驱动程式 63本章目标 634.1 键盘接口概述 634.1.1 键盘的分类 634.1.2 键盘的防抖 654.1.3 键盘的扫描 654.1.4 键盘的缓冲算法 674.2 键盘的驱动设计实例 674.2.1 锁存器和缓冲器扩展键盘 674.2.2 锁存器和缓冲器的接口 684.2.3 锁存器和缓冲器扩展键盘驱动程式设计 694.2.4 锁存器和缓冲器扩展键盘测试程式设计 714.3 智慧型控制晶片HD7279扩展键盘 724.3.1 HD7279的电路设计 724.3.2 HD7279的指令介绍 734.3.3 HD7279的串列接口 744.3.4 HD7279的驱动程式设计 754.3.5 HD7279的测试程式设计 844.4 知识索引 854.5 思考与练习 85第5章 A/D驱动程式 86 本章目标 865.1 A/D转换的过程 865.1.1 採样和保持 865.1.2 量化和编码 885.1.3 ADC的分类 895.2 A/D转换器的基本原理 895.2.1 逐次逼近型A/D转换器 895.2.2 双积分型A/D转换器 905.2.3 V/F和F/V型转换器 935.2.4 其他A/D转换器 955.3 A/D转换器接口技术 975.3.1 ADC的主要参数及意义 975.3.2 ADC的电路选择方法 985.3.3 ADC实际套用中的问题 995.4 S3C2410 A/D转换驱动设计实例 995.4.1 S3C2410的A/D转换电路 995.4.2 S3C2410X的A/D转换控制暂存器 1005.4.3 S3C2410X的A/D转换数据暂存器 1015.4.4 S3C2410X中A/D转换驱动程式的设计 1025.4.5 S3C2410X中A/D转换测试程式的设计 1055.5 知识索引 1065.6 思考与练习 107第6章 D/A驱动程式 108本章目标 1086.1 D/A的原理介绍 1086.1.1 D/A转换的概念及基本原理 1086.1.2 电子模拟开关 1096.1.3 D/A转换器的基本结构 1106.1.4 D/A转换的静态参数 1146.1.5 D/A转换的动态参数 1156.2 D/A转换的硬体电路设计 1166.2.1 D/A转换的接口技术 1166.2.2 D/A转换晶片介绍 1176.2.3 D/A转换的电路设计 1186.3 D/A转换器的驱动程式实例 1186.3.1 D/A驱动程式中的宏定义 1186.3.2 D/A的模组载入 1186.3.3 D/A转换器的档案操作模组 1196.3.4 D/A转换器的读写控制模组 1206.3.5 D/A转换器的打开、退出模组 1206.4 测试程式的设计 1206.4.1 D/A测试程式中的宏定义 1216.4.2 D/A测试程式的主函式 1216.4.3 D/A测试程式中的功能函式 1226.4.4 D/A测试程式中的功能列印函式 1236.4.5 D/A测试程式中的波形生成函式 1236.4.6 D/A测试程式的效果 1246.5 知识索引 1256.6 思考与练习 125 第7章 LCD驱动程式 126本章目标 1267.1 LCD显示器概述 1267.1.1 液晶 1267.1.2 LCD显示屏的背光 1277.1.3 LCD显示器的分类 1277.1.4 LCD的显示原理 1277.1.5 LCD的驱动方式 1307.1.6 LCD的常用指标 1317.2 LCD的显示接口 1317.2.1 灰度STN的时序 1327.2.2 彩色STN的时序 1337.2.3 TFT的时序 1347.3 嵌入式处理器的LCD控制器 1367.3.1 LCD控制器 1367.3.2 LCD控制器的设定 1377.3.3 LCD的字元显示快取 1397.4 LCD的驱动程式设计 1407.4.1 LCD驱动程式相关的宏定义 1407.4.2 LCD驱动程式的底层操作函式 1427.4.3 LCD驱动程式提供的API 1457.4.4 LCD驱动程式的模组化载入 1517.4.5 LCD的测试程式 1527.5 基于Framebuffer的LCD驱动程式实例 1557.5.1 Framebuffer概述 1557.5.2 LCD的电路连线 1557.5.3 Framebuffer设备驱动程式的结构 1567.5.4 Framebuffer设备驱动程式的设计 1597.5.5 Framebuffer设备测试程式的设计 1647.5.6 嵌入式Linux常用的GUI 1667.6 知识索引 1667.7 思考与练习 167第8章 触控萤幕驱动程式 168本章目标 1688.1 触控萤幕概述 1688.2 触控萤幕的分类 1688.2.1 电阻技术触控萤幕 1688.2.2 表面声波技术触控萤幕 1698.2.3 电容电感技术触控萤幕 1708.2.4 红外线技术触控萤幕 1708.3 触控萤幕的特性 1718.3.1 透明度和色彩失真 1718.3.2 反光性 1718.3.3 清晰度 1718.3.4 漂移 1728.3.5 检测和定位 1728.4 触控萤幕的硬体电路设计 1728.4.1 电阻式触控萤幕的电路原理 1728.4.2 电阻式触控萤幕原点的定位 1738.4.3 电阻式触控萤幕的电路连线 1748.5 触控萤幕的驱动程式实例 1768.5.1 触控萤幕接口的模式 1768.5.2 A/D转换和触控萤幕暂存器的设定 1778.5.3 触控萤幕的坐标 1798.5.4 触控萤幕的电路连线 1808.5.5 触控萤幕的驱动程式接口 1818.6 测试程式的设计 1828.6.1 触控萤幕的数据定义 183 8.6.2 触控萤幕的数据处理 1838.6.3 触控萤幕的运行测试 1858.7 知识索引 1868.8 思考与练习 187第9章 CAN汇流排驱动程式 188本章目标 1889.1 CAN汇流排接口设计 1889.1.1 CAN汇流排概述 1889.1.2 CAN的工作特点及主要优点 1899.1.3 CAN汇流排的电气特徵和MAC帧结构 1899.2 嵌入式处理器上CAN汇流排接口的扩展 1909.2.1 SJA1000简介 1909.2.2 SJA1000扩展 1919.3 SJA1000扩展CAN汇流排接口的设计 1929.3.1 CAN 控制器SJA1000的操作模式 1929.3.2 CAN控制器SJA1000的特徵功能 1939.3.3 CAN 控制器SJA1000的Basic CAN模式设定 1949.4 SJA1000扩展CAN汇流排接口的通信 1969.4.1 通过CAN汇流排建立通信的步骤 1969.4.2 SJA1000的初始化 1969.4.3 驱动程式的结构设计 1989.4.4 驱动程式init、exit、open、close函式的实现 2009.4.5 驱动程式read、write函式的实现 2019.4.6 驱动程式interrupt、ioctl函式实现 2029.4.7 测试程式的编写 2029.5 驱动程式的载入 2049.6 知识索引 2049.7 思考与练习 205第10章 IIC汇流排驱动程式 206本章目标 20610.1 IIC汇流排概述 20610.1.1 IIC汇流排介绍 20610.1.2 IIC汇流排引入的原因 20610.1.3 IIC汇流排的特点 20610.1.4 IIC汇流排的基本结构 20710.1.5 IIC汇流排的术语 20710.1.6 IIC汇流排的工作 20810.1.7 IIC汇流排的竞争仲裁 20910.1.8 IIC汇流排的工作流程 21010.2 嵌入式处理器的IIC接口 21110.2.1 IIC汇流排控制暂存器 21210.2.2 IIC汇流排控制/状态暂存器 21310.2.3 IIC汇流排地址暂存器 21410.2.4 IIC汇流排移位数据暂存器 21410.2.5 S3C2410中与IIC对应的I/O连线埠 21510.3 基于IIC的键盘晶片套用 21610.3.1 ZLG7290的功能 217 10.3.2 ZLG7290的控制方式 21810.3.3 ZLG7290的暂存器 21810.3.4 ZLG7290的通信接口 21910.3.5 ZLG7290的指令介绍 21910.4 IIC汇流排驱动程式实例 22110.4.1 ZLG7290的电路连线 22110.4.2 ZLG7290的通信流程 22310.4.3 ZLG7290驱动中变数的定义 22510.4.4 ZLG7290驱动中实时时钟的改变 22610.4.5 ZLG7290和IIC暂存器的初始化 22710.4.6 ZLG7290驱动程式的模组化 22810.4.7 ZLG7290的档案操作结构 22810.5 IIC汇流排的测试程式 23010.6 知识索引 23110.7 思考与练习 231第11章 音频汇流排驱动程式 232本章目标 23211.1 音频汇流排接口概述 23211.1.1 音频的採样精度 23311.1.2 音频编码 23311.2 IIS音频汇流排接口 23311.2.1 IIS汇流排的物理连线 23311.2.2 IIS的汇流排协定 23411.2.3 IIS汇流排的硬体设计 23511.2.4 IIS汇流排的暂存器 23611.3 AC97音频汇流排接口 23911.4 IIS汇流排的驱动程式设计 24011.4.1 音频设备基础知识 24011.4.2 音频设备档案 24111.4.3 WAV声音档案 24311.4.4 音频设备和驱动程式的通信 24311.4.5 设备的初始化和载入 24411.4.6 DMA的操作和宏定义 24611.4.7 audio设备档案的操作 24811.4.8 mixer设备档案的操作 26011.5 音频驱动程式的测试 26211.6 知识索引 26211.7 思考与练习 263第12章 IDE接口驱动程式 264本章目标 26412.1 IDE接口概述 26412.1.1 硬碟知识介绍 26412.1.2 IDE接口标準 26712.1.3 IDE接口的传输模式 26912.1.4 IDE接口暂存器 26912.2 IDE接口驱动程式的移植 27112.2.1 嵌入式Linux下IDE驱动程式接口 27112.2.2 嵌入式Linux下IDE驱动程式 27212.2.3 IDE硬碟的读/写操作 274 12.3 IDE驱动程式测试 28212.3.1 磁碟档案系统简介 28312.3.2 IDE分区测试 28312.4 知识索引 28512.5 思考与练习 285第13章 快闪记忆体晶片的驱动程式 286本章目标 28613.1 快闪记忆体晶片概述 28613.1.1 快闪记忆体晶片的物理特性 28613.1.2 嵌入式档案系统概述 28913.1.3 MTD体系介绍 28913.1.4 Flash专有名词 29113.2 NAND Flash 29113.2.1 NAND Flash的结构 29113.2.2 NAND Flash的操作 29213.2.3 NAND Flash控制器 29413.2.4 NAND Flash的时序 29613.2.5 NAND Flash的驱动程式实例 29713.3 NOR Flash 30113.3.1 NOR Flash的结构 30113.3.2 NOR Flash的操作 30213.3.3 NOR Flash的驱动程式实例 30313.4 基于快闪记忆体的档案系统 30713.5 知识索引 30913.6 思考与练习 310第14章 USB 设备驱动程式 311本章目标 31114.1 USB接口概述 31114.1.1 USB系统 31114.1.2 USB的电气特性 31214.1.3 USB汇流排的拓扑结构 31314.1.4 USB的通信协定 31314.2 嵌入式系统中USB的使用 31514.2.1 OHCI概述 31514.2.2 Host接口硬体设计 31614.3 嵌入式系统中USB设备的驱动程式设计 31614.3.1