當前位置:編程學習大全網 - 源碼下載 - 嵌入式Linux設備驅動開發詳解的目錄

嵌入式Linux設備驅動開發詳解的目錄

第1章 嵌入式系統與驅動程序 1

本章目標 1

1.1 嵌入式系統概述 1

1.1.1 嵌入式系統的概念 1

1.1.2 嵌入式系統的特點 2

1.1.3 嵌入式系統的體系結構 2

1.2 嵌入式處理器介紹 4

1.2.1 嵌入式處理器分類 4

1.2.2 ARM概述 5

1.2.3 ARM系列芯片簡介 5

1.3 嵌入式操作系統介紹 7

1.3.1 主流嵌入式操作系統 7

1.3.2 嵌入式系統的發展狀況 8

1.3.3 嵌入式Linux介紹 8

1.3.4 嵌入式系統開發環境的建立 9

1.3.5 嵌入式軟件開發 10

1.4 嵌入式Linux驅動程序 12

1.4.1 嵌入式Linux的內核空間和用戶空間 12

1.4.2 嵌入式Linux的文件系統 12

1.4.3 嵌入式Linux的設備管理 14

1.4.4 嵌入式Linux的驅動程序 16

1.5 知識索引 20

1.6 思考與練習 21

第2章 簡單的字符設備驅動程序 23

本章目標 23

2.1 嵌入式Linux字符設備的驅動程序結構 23

2.1.1 嵌入式Linux驅動程序常用的頭文件 24

2.1.2 File_operations結構體 24

2.1.3 字符設備驅動程序的入口 25

2.1.4 驅動程序的設備註冊 26

2.2 設備驅動程序中的具體問題 27

2.2.1 I/O端口 28

2.2.2 內存操作 29

2.2.3 中斷處理 29

2.3 LED的驅動程序實例及測試 30

2.3.1 LED I/O端口設置 30

2.3.2 LED硬件電路設計 32

2.3.3 LED驅動程序設計 33

2.3.4 LED測試程序設計 36

2.4 嵌入式Linux中斷處理驅動程序及測試 37

2.4.1 中斷處理過程 37

2.4.2 中斷向量表 39

2.4.3 中斷的處理模式 39

2.4.4 中斷的優先級 40

2.4.5 中斷的嵌套 40

2.4.6 中斷源的擴展 40

2.4.7 中斷控制寄存器的設置 41

2.5 按鍵中斷的驅動程序實例 45

2.5.1 按鍵中斷的電路設計 45

2.5.2 按鍵中斷的驅動程序設計 45

2.6 知識索引 48

2.7 思考與練習 49

第3章 數字顯示驅動程序 50

本章目標 50

3.1 數字顯示器 50

3.1.1 數碼管簡介 50

3.1.2 數碼管的分類 51

3.1.3 數碼管顯示原理 51

3.2 數碼管顯示電路的硬件設計 52

3.2.1 譯碼器的使用 52

3.2.2 數碼管的驅動方式 53

3.2.3 串/並變換的譯碼設計 55

3.3 數碼管驅動程序實例 56

3.3.1 驅動程序的初始化和卸載模塊 56

3.3.2 文件操作結構模塊 57

3.3.3 數碼管的打開模塊 57

3.3.4 數碼管的讀寫模塊 58

3.3.5 數碼管的I/O控制模塊 58

3.3.6 數碼管的退出模塊 58

3.3.7 驅動程序的模塊加載和卸載 59

3.4 數碼管顯示電路測試程序設計 60

3.4.1 數碼管測試設計 60

3.4.2 數碼管測試程序 60

3.4.3 數碼管測試效果 61

3.5 知識索引 61

3.6 思考與練習 62

第4章 鍵盤驅動程序 63

本章目標 63

4.1 鍵盤接口概述 63

4.1.1 鍵盤的分類 63

4.1.2 鍵盤的防抖 65

4.1.3 鍵盤的掃描 65

4.1.4 鍵盤的緩沖算法 67

4.2 鍵盤的驅動設計實例 67

4.2.1 鎖存器和緩沖器擴展鍵盤 67

4.2.2 鎖存器和緩沖器的接口 68

4.2.3 鎖存器和緩沖器擴展鍵盤驅動程序設計 69

4.2.4 鎖存器和緩沖器擴展鍵盤測試程序設計 71

4.3 智能控制芯片HD7279擴展鍵盤 72

4.3.1 HD7279的電路設計 72

4.3.2 HD7279的指令介紹 73

4.3.3 HD7279的串行接口 74

4.3.4 HD7279的驅動程序設計 75

4.3.5 HD7279的測試程序設計 84

4.4 知識索引 85

4.5 思考與練習 85

第5章 A/D驅動程序 86

本章目標 86

5.1 A/D轉換的過程 86

5.1.1 采樣和保持 86

5.1.2 量化和編碼 88

5.1.3 ADC的分類 89

5.2 A/D轉換器的基本原理 89

5.2.1 逐次逼近型A/D轉換器 89

5.2.2 雙積分型A/D轉換器 90

5.2.3 V/F和F/V型轉換器 93

5.2.4 其他A/D轉換器 95

5.3 A/D轉換器接口技術 97

5.3.1 ADC的主要參數及意義 97

5.3.2 ADC的電路選擇方法 98

5.3.3 ADC實際應用中的問題 99

5.4 S3C2410 A/D轉換驅動設計實例 99

5.4.1 S3C2410的A/D轉換電路 99

5.4.2 S3C2410X的A/D轉換控制寄存器 100

5.4.3 S3C2410X的A/D轉換數據寄存器 101

5.4.4 S3C2410X中A/D轉換驅動程序的設計 102

5.4.5 S3C2410X中A/D轉換測試程序的設計 105

5.5 知識索引 106

5.6 思考與練習 107

第6章 D/A驅動程序 108

本章目標 108

6.1 D/A的原理介紹 108

6.1.1 D/A轉換的概念及基本原理 108

6.1.2 電子模擬開關 109

6.1.3 D/A轉換器的基本結構 110

6.1.4 D/A轉換的靜態參數 114

6.1.5 D/A轉換的動態參數 115

6.2 D/A轉換的硬件電路設計 116

6.2.1 D/A轉換的接口技術 116

6.2.2 D/A轉換芯片介紹 117

6.2.3 D/A轉換的電路設計 118

6.3 D/A轉換器的驅動程序實例 118

6.3.1 D/A驅動程序中的宏定義 118

6.3.2 D/A的模塊加載 118

6.3.3 D/A轉換器的文件操作模塊 119

6.3.4 D/A轉換器的讀寫控制模塊 120

6.3.5 D/A轉換器的打開、退出模塊 120

6.4 測試程序的設計 120

6.4.1 D/A測試程序中的宏定義 121

6.4.2 D/A測試程序的主函數 121

6.4.3 D/A測試程序中的功能函數 122

6.4.4 D/A測試程序中的功能打印函數 123

6.4.5 D/A測試程序中的波形生成函數 123

6.4.6 D/A測試程序的效果 124

6.5 知識索引 125

6.6 思考與練習 125

第7章 LCD驅動程序 126

本章目標 126

7.1 LCD顯示器概述 126

7.1.1 液晶 126

7.1.2 LCD顯示屏的背光 127

7.1.3 LCD顯示器的分類 127

7.1.4 LCD的顯示原理 127

7.1.5 LCD的驅動方式 130

7.1.6 LCD的常用指標 131

7.2 LCD的顯示接口 131

7.2.1 灰度STN的時序 132

7.2.2 彩色STN的時序 133

7.2.3 TFT的時序 134

7.3 嵌入式處理器的LCD控制器 136

7.3.1 LCD控制器 136

7.3.2 LCD控制器的設置 137

7.3.3 LCD的字符顯示緩存 139

7.4 LCD的驅動程序設計 140

7.4.1 LCD驅動程序相關的宏定義 140

7.4.2 LCD驅動程序的底層操作函數 142

7.4.3 LCD驅動程序提供的API 145

7.4.4 LCD驅動程序的模塊化加載 151

7.4.5 LCD的測試程序 152

7.5 基於Framebuffer的LCD驅動程序實例 155

7.5.1 Framebuffer概述 155

7.5.2 LCD的電路連接 155

7.5.3 Framebuffer設備驅動程序的結構 156

7.5.4 Framebuffer設備驅動程序的設計 159

7.5.5 Framebuffer設備測試程序的設計 164

7.5.6 嵌入式Linux常用的GUI 166

7.6 知識索引 166

7.7 思考與練習 167

第8章 觸摸屏驅動程序 168

本章目標 168

8.1 觸摸屏概述 168

8.2 觸摸屏的分類 168

8.2.1 電阻技術觸摸屏 168

8.2.2 表面聲波技術觸摸屏 169

8.2.3 電容電感技術觸摸屏 170

8.2.4 紅外線技術觸摸屏 170

8.3 觸摸屏的特性 171

8.3.1 透明度和色彩失真 171

8.3.2 反光性 171

8.3.3 清晰度 171

8.3.4 漂移 172

8.3.5 檢測和定位 172

8.4 觸摸屏的硬件電路設計 172

8.4.1 電阻式觸摸屏的電路原理 172

8.4.2 電阻式觸摸屏原點的定位 173

8.4.3 電阻式觸摸屏的電路連接 174

8.5 觸摸屏的驅動程序實例 176

8.5.1 觸摸屏接口的模式 176

8.5.2 A/D轉換和觸摸屏寄存器的設置 177

8.5.3 觸摸屏的坐標 179

8.5.4 觸摸屏的電路連接 180

8.5.5 觸摸屏的驅動程序接口 181

8.6 測試程序的設計 182

8.6.1 觸摸屏的數據定義 183

8.6.2 觸摸屏的數據處理 183

8.6.3 觸摸屏的運行測試 185

8.7 知識索引 186

8.8 思考與練習 187

第9章 CAN總線驅動程序 188

本章目標 188

9.1 CAN總線接口設計 188

9.1.1 CAN總線概述 188

9.1.2 CAN的工作特點及主要優點 189

9.1.3 CAN總線的電氣特征和MAC幀結構 189

9.2 嵌入式處理器上CAN總線接口的擴展 190

9.2.1 SJA1000簡介 190

9.2.2 SJA1000擴展 191

9.3 SJA1000擴展CAN總線接口的設計 192

9.3.1 CAN 控制器SJA1000的操作模式 192

9.3.2 CAN控制器SJA1000的特征功能 193

9.3.3 CAN 控制器SJA1000的Basic CAN模式設置 194

9.4 SJA1000擴展CAN總線接口的通信 196

9.4.1 通過CAN總線建立通信的步驟 196

9.4.2 SJA1000的初始化 196

9.4.3 驅動程序的結構設計 198

9.4.4 驅動程序init、exit、open、close函數的實現 200

9.4.5 驅動程序read、write函數的實現 201

9.4.6 驅動程序interrupt、ioctl函數實現 202

9.4.7 測試程序的編寫 202

9.5 驅動程序的加載 204

9.6 知識索引 204

9.7 思考與練習 205

第10章 IIC總線驅動程序 206

本章目標 206

10.1 IIC總線概述 206

10.1.1 IIC總線介紹 206

10.1.2 IIC總線引入的原因 206

10.1.3 IIC總線的特點 206

10.1.4 IIC總線的基本結構 207

10.1.5 IIC總線的術語 207

10.1.6 IIC總線的工作 208

10.1.7 IIC總線的競爭仲裁 209

10.1.8 IIC總線的工作流程 210

10.2 嵌入式處理器的IIC接口 211

10.2.1 IIC總線控制寄存器 212

10.2.2 IIC總線控制/狀態寄存器 213

10.2.3 IIC總線地址寄存器 214

10.2.4 IIC總線移位數據寄存器 214

10.2.5 S3C2410中與IIC對應的I/O端口 215

10.3 基於IIC的鍵盤芯片應用 216

10.3.1 ZLG7290的功能 217

10.3.2 ZLG7290的控制方式 218

10.3.3 ZLG7290的寄存器 218

10.3.4 ZLG7290的通信接口 219

10.3.5 ZLG7290的指令介紹 219

10.4 IIC總線驅動程序實例 221

10.4.1 ZLG7290的電路連接 221

10.4.2 ZLG7290的通信流程 223

10.4.3 ZLG7290驅動中變量的定義 225

10.4.4 ZLG7290驅動中實時時鐘的改變 226

10.4.5 ZLG7290和IIC寄存器的初始化 227

10.4.6 ZLG7290驅動程序的模塊化 228

10.4.7 ZLG7290的文件操作結構 228

10.5 IIC總線的測試程序 230

10.6 知識索引 231

10.7 思考與練習 231

第11章 音頻總線驅動程序 232

本章目標 232

11.1 音頻總線接口概述 232

11.1.1 音頻的采樣精度 233

11.1.2 音頻編碼 233

11.2 IIS音頻總線接口 233

11.2.1 IIS總線的物理連接 233

11.2.2 IIS的總線協議 234

11.2.3 IIS總線的硬件設計 235

11.2.4 IIS總線的寄存器 236

11.3 AC97音頻總線接口 239

11.4 IIS總線的驅動程序設計 240

11.4.1 音頻設備基礎知識 240

11.4.2 音頻設備文件 241

11.4.3 WAV聲音文件 243

11.4.4 音頻設備和驅動程序的通信 243

11.4.5 設備的初始化和加載 244

11.4.6 DMA的操作和宏定義 246

11.4.7 audio設備文件的操作 248

11.4.8 mixer設備文件的操作 260

11.5 音頻驅動程序的測試 262

11.6 知識索引 262

11.7 思考與練習 263

第12章 IDE接口驅動程序 264

本章目標 264

12.1 IDE接口概述 264

12.1.1 硬盤知識介紹 264

12.1.2 IDE接口標準 267

12.1.3 IDE接口的傳輸模式 269

12.1.4 IDE接口寄存器 269

12.2 IDE接口驅動程序的移植 271

12.2.1 嵌入式Linux下IDE驅動程序接口 271

12.2.2 嵌入式Linux下IDE驅動程序 272

12.2.3 IDE硬盤的讀/寫操作 274

12.3 IDE驅動程序測試 282

12.3.1 磁盤文件系統簡介 283

12.3.2 IDE分區測試 283

12.4 知識索引 285

12.5 思考與練習 285

第13章 閃存芯片的驅動程序 286

本章目標 286

13.1 閃存芯片概述 286

13.1.1 閃存芯片的物理特性 286

13.1.2 嵌入式文件系統概述 289

13.1.3 MTD體系介紹 289

13.1.4 Flash專有名詞 291

13.2 NAND Flash 291

13.2.1 NAND Flash的結構 291

13.2.2 NAND Flash的操作 292

13.2.3 NAND Flash控制器 294

13.2.4 NAND Flash的時序 296

13.2.5 NAND Flash的驅動程序實例 297

13.3 NOR Flash 301

13.3.1 NOR Flash的結構 301

13.3.2 NOR Flash的操作 302

13.3.3 NOR Flash的驅動程序實例 303

13.4 基於閃存的文件系統 307

13.5 知識索引 309

13.6 思考與練習 310

第14章 USB 設備驅動程序 311

本章目標 311

14.1 USB接口概述 311

14.1.1 USB系統 311

14.1.2 USB的電氣特性 312

14.1.3 USB總線的拓撲結構 313

14.1.4 USB的通信協議 313

14.2 嵌入式系統中USB的使用 315

14.2.1 OHCI概述 315

14.2.2 Host接口硬件設計 316

14.3 嵌入式系統中USB設備的驅動程序設計 316

14.3.1

  • 上一篇:a股市場為何跳水?
  • 下一篇:魔獸防禦高地安全源代碼
  • copyright 2024編程學習大全網