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

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

《嵌入式Linux設備驅動開發詳》是人民郵電出版社2008年出版的圖書,作者李俊。

基本信息

內容提要

該書詳細講解了嵌入式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

本章目標 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

相關詞條

相關搜尋

熱門詞條

聯絡我們