內容簡介
《嵌入式接口技術與Linux驅動開發》以軟硬體相結合、底層驅動與上層套用相結合的方法,介紹了嵌入式接口技術的基本原理及套用設計技術。全書可分為4個部分。 《嵌入式接口技術與Linux驅動開發》可作為高等院校電類相關專業碩士研究生或高年級本科生的教材,也可以作為嵌入式系統工程師的實用參考書。
第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