出版時(shí)間:2010-4 出版社:北京航空航天大學(xué)出版社 作者:鄭靈翔 頁數(shù):273
Tag標(biāo)簽:無
前言
隨著嵌入式技術(shù)的發(fā)展,各種各樣的嵌入式系統(tǒng)應(yīng)用已經(jīng)滲入到我們生活的各個(gè)角落。這些種類繁多的嵌入式系統(tǒng),其本質(zhì)上都是相同的,都是一種專用的計(jì)算機(jī)系統(tǒng),只不過它們的形態(tài)各異,接口的種類繁多。在嵌入式系統(tǒng)中,這些復(fù)雜多變的接口是嵌入式系統(tǒng)與外部世界聯(lián)系的橋梁與紐帶,有著重要的作用.這也就意味著嵌入式接口技術(shù)在嵌入式系統(tǒng)中有著重要的作用.嵌入式接口的設(shè)計(jì)是嵌入式系統(tǒng)設(shè)計(jì)中的一個(gè)重要部分。然而,嵌入式接口的設(shè)計(jì)并不僅僅是硬件設(shè)計(jì),嵌入式系統(tǒng)軟硬件緊密結(jié)合的特點(diǎn)在嵌入式接口的設(shè)計(jì)中體現(xiàn)得尤為突出。嵌入式接口的設(shè)計(jì)既要完成硬件接口的設(shè)計(jì)又要完成軟件接口的設(shè)計(jì),并使軟硬件能相互配合、協(xié)同工作,這使得嵌入式接口的設(shè)計(jì)成為嵌入式系統(tǒng)設(shè)計(jì)的一大難點(diǎn)。為此,本書以軟硬件相結(jié)合、底層驅(qū)動(dòng)與上層應(yīng)用相結(jié)合的方式介紹嵌入式接口的原理與設(shè)計(jì),以幫助有志于從事嵌入式系統(tǒng)設(shè)計(jì)的讀者,提高嵌入式系統(tǒng)軟硬件綜合設(shè)計(jì)的能力。本書源于《嵌入式系統(tǒng)設(shè)計(jì)與應(yīng)用開發(fā)》一書,原書中與嵌入式接口以及LinuX底層驅(qū)動(dòng)相關(guān)章節(jié)的內(nèi)容經(jīng)擴(kuò)充和改寫后形成本書(原書中對嵌入式系統(tǒng)基礎(chǔ)知識闡述部分,經(jīng)擴(kuò)充和改寫后形成了《嵌入式LinuX系統(tǒng)設(shè)計(jì)》一書,已于2008年在北京航空航天大學(xué)出版社出版)。本書主要面向已掌握嵌入式系統(tǒng)設(shè)計(jì)開發(fā)基礎(chǔ)識,希望進(jìn)一步了解嵌入式系統(tǒng)的接口設(shè)計(jì)與LinuX底層驅(qū)動(dòng)開發(fā)的讀者。書中LinuX內(nèi)核源碼版本以2.6.20版為基礎(chǔ)。
內(nèi)容概要
本書以軟硬件相結(jié)合、底層驅(qū)動(dòng)與上層應(yīng)用相結(jié)合的方法,介紹了嵌入式接口技術(shù)的基本原理及應(yīng)用設(shè)計(jì)技術(shù)。全書可分為4個(gè)部分:第1、2章是全書的基礎(chǔ),主要介紹了嵌入式接口技術(shù)的軟硬件基礎(chǔ)知識,并深入介紹了嵌入式Linux驅(qū)動(dòng)的基本原理;第3章在介紹嵌入式存儲接口設(shè)計(jì)的基礎(chǔ)上說明了最小系統(tǒng)設(shè)計(jì)、Bootloader移植以及嵌入式Linux的芯片級和板級移植;第4~6章以小鍵盤、實(shí)時(shí)時(shí)鐘和觸摸屏接口為例,在硬件方面介紹嵌入式系統(tǒng)中簡單I/O接口的擴(kuò)展技術(shù)以及GPIO的輸入/輸出和中斷功能的使用,同時(shí)在軟件上介紹這些設(shè)備接口的驅(qū)動(dòng)與控制方法,如基于定時(shí)器的程序查詢式I/O控制、阻塞型和非阻塞型I/O、異步I/O信號的支持方法和中斷處理方法、Linux內(nèi)核的實(shí)時(shí)時(shí)鐘子系統(tǒng)和輸入設(shè)備子系統(tǒng)的使用等;第7~9章介紹了一些軟硬件都較為復(fù)雜的嵌入式接口,它們包括以太網(wǎng)接口與網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)原理、PCMCIA接口與PCMCIA驅(qū)動(dòng)原理、AC97音頻接口與基于ALSA架構(gòu)的音頻驅(qū)動(dòng)設(shè)計(jì)。 本書可作為高等院校電類相關(guān)專業(yè)碩士研究生或高年級本科生的教材,也可以作為嵌入式系統(tǒng)工程師的實(shí)用參考書。
書籍目錄
第1章 嵌入式系統(tǒng)接口技術(shù)概述 1.1 嵌入式系統(tǒng)的架構(gòu)與I/O接口的連接方式 1.1.1 嵌入式系統(tǒng)的基本結(jié)構(gòu) 1.1.2 嵌入式SOC處理器與片上I/O接口 1.1.3 嵌入式系統(tǒng)的I/O接口的擴(kuò)展 1.2 接口的基本功能 1.3 I/O接口及其編址方式 1.4 I/O接口擴(kuò)展方法 1.5 I/O設(shè)備的控制方法第2章 Linux內(nèi)核設(shè)備驅(qū)動(dòng)原理 2.1 基本原理 2.1.1 Linux操作系統(tǒng)的架構(gòu) 2.1.2 嵌入式系統(tǒng)的開發(fā)模式與嵌入式Linux設(shè)備驅(qū)動(dòng) 2.1.3 Linux設(shè)備的分類 2.1.4 Linux設(shè)備的標(biāo)識 2.2 內(nèi)核模塊 2.2.1 什么是內(nèi)核模塊 2.2.2 內(nèi)核模塊的框架 2.2.3 內(nèi)核模塊的編譯 2.3 Linux內(nèi)核編程常見操作 2.4 設(shè)備驅(qū)動(dòng)程序的結(jié)構(gòu) 2.4.1 虛擬文件系統(tǒng)與硬件驅(qū)動(dòng)的接口 2.4.2 簡單字符設(shè)備的驅(qū)動(dòng) 2.5 Linux 2.6內(nèi)核的中斷處理 2.5.1 Linux中斷處理流程 2.5.2 外部中斷的描述與處理 2.5.3 中斷處理程序的注冊與釋放 2.5.4 中斷處理程序的編寫 2.6 Linux 2.6內(nèi)核的工作推后執(zhí)行的機(jī)制 2.6.1 軟中斷 2.6.2 Tasklet 2.6.3 工作隊(duì)列 2.7 Linux 2.6內(nèi)核設(shè)備模型 2.7.1 Linux 2.6設(shè)備模型概述 2.7.2 內(nèi)核設(shè)備驅(qū)動(dòng)模型的組件 2.7.3 sysfs文件系統(tǒng)、udev和Linux內(nèi)核設(shè)備模型 2.7.4 平臺總線設(shè)備 本章小結(jié) 習(xí)題與思考題第3章 最小硬件系統(tǒng)設(shè)計(jì)與底層軟件移植 3.1 最小硬件系統(tǒng)設(shè)計(jì) 3.1.1 系統(tǒng)存儲器接口 3.1.2 串行通信接口電路原理 3.2 最小硬件系統(tǒng)的配置 3.2.1 處理器的配置 3.2.2 FLASH & SDRAM的配置 3.2.3 GPIO和串口的配置 3.3 最小硬件系統(tǒng)與Bootloader 3.3.1 Uboot啟動(dòng)階段1的處理過程 3.3.2 Uboot啟動(dòng)階段2的處理過程 3.3.3 Uboot移植原理 3.3.4 基于Uboot的硬件調(diào)試 3.4 Linux 2.6內(nèi)核移植原理 3.4.1 外部中斷初始化 3.4.2 DMA接口 3.4.3 系統(tǒng)時(shí)鐘接口 3.4.4 片上設(shè)備I/O地址空間的靜態(tài)映射 3.4.5 片上I/O設(shè)備的定義 3.5 最小硬件系統(tǒng)與Linux 2.6內(nèi)核移植 3.5.1 建立開發(fā)板平臺描述文件 3.5.2 編寫硬件include文件 3.5.3 修改內(nèi)核配置文件 本章小結(jié) 習(xí)題與思考題第4章 小鍵盤接口設(shè)計(jì)與Linux驅(qū)動(dòng)開發(fā) 4.1 硬件原理 4.1.1 接口設(shè)計(jì) 4.1.2 電路原理 4.2 軟件驅(qū)動(dòng)原理 4.2.1 內(nèi)核模塊的加載和卸載函數(shù) 4.2.2 虛擬文件系統(tǒng)與硬件驅(qū)動(dòng)的接口 4.2.3 設(shè)備打開操作接口函數(shù) 4.2.4 設(shè)備讀取操作接口函數(shù) 4.2.5 設(shè)備關(guān)閉操作接口函數(shù) 4.2.6 攫取鍵值子函數(shù) 4.2.7 讀緩沖區(qū)子函數(shù) 4.2.8 定時(shí)器在程序查詢式I/O控制方式中的應(yīng)用 4.2.9 利用等待隊(duì)列實(shí)現(xiàn)阻塞型I/O 4.2.10 poll()系統(tǒng)調(diào)用接口函數(shù) 4.2.11 信號驅(qū)動(dòng)的異步I/O操作的支持 4.3 鍵盤信息讀取應(yīng)用程序 4.3.1 打開鍵盤設(shè)備 4.3.2 讀取鍵值 4.3.3 關(guān)閉鍵盤設(shè)備 本章小結(jié) 習(xí)題與思考題第5章 實(shí)時(shí)時(shí)鐘接口與Linux驅(qū)動(dòng)開發(fā) 5.1 實(shí)時(shí)時(shí)鐘接口電路設(shè)計(jì) 5.1.1 處理器與RTC4513接口設(shè)計(jì) 5.1.2 RTC4513電路原理 5.1.3 RTC4513操作參數(shù) 5.1.4 RTC4513的串行操作流程 5.2 RTC軟件驅(qū)動(dòng)原理 5.2.1 內(nèi)核模塊的加載和卸載 5.2.2 虛擬文件系統(tǒng)與硬件驅(qū)動(dòng)的接口 5.2.3 設(shè)備打開操作接口函數(shù) 5.2.4 ioctl方法 5.2.5 設(shè)備關(guān)閉操作接口函數(shù) 5.2.6 讀時(shí)鐘寄存器子函數(shù) 5.2.7 寫時(shí)鐘寄存器子函數(shù) 5.3 RTC操作應(yīng)用程序 5.4 基于Linux內(nèi)核實(shí)時(shí)時(shí)鐘子系統(tǒng)的RTC驅(qū)動(dòng) 5.4.1 RTC設(shè)備驅(qū)動(dòng)接口 5.4.2 實(shí)時(shí)時(shí)鐘子系統(tǒng)的rtcdev模塊與上層API 本章小結(jié) 習(xí)題與思考題第6章 觸摸屏接口設(shè)計(jì)與Linux驅(qū)動(dòng)開發(fā) 6.1 觸摸屏的工作原理 6.2 ADS7843觸摸屏控制器簡介 6.3 處理器與ADS7843的接口設(shè)計(jì) 6.3.1 接口電路設(shè)計(jì) 6.3.2 Microwire數(shù)據(jù)幀結(jié)構(gòu) 6.4 軟件驅(qū)動(dòng)原理 6.4.1 Linux輸入設(shè)備子系統(tǒng) 6.4.2 觸摸屏硬件操控原理 6.4.3 觸摸屏驅(qū)動(dòng)與輸入設(shè)備子系統(tǒng)的接口 6.4.4 中斷處理 6.5 基于觸摸屏驅(qū)動(dòng)的應(yīng)用示例 本章小結(jié) 習(xí)題與思考題第7章 以太網(wǎng)電路設(shè)計(jì)與Linux驅(qū)動(dòng)開發(fā) 7.1 CS8900A以太網(wǎng)芯片簡介 7.1.1 功能介紹 7.1.2 引腳定義 7.2 處理器與以太網(wǎng)接口電路設(shè)計(jì) 7.3 CS8900A片內(nèi)寄存器介紹 7.3.1 總線接口寄存器組 7.3.2 狀態(tài)與控制寄存器組 7.3.3 發(fā)送初始化寄存器組 7.3.4 地址過濾寄存器組 7.4 CS8900A的操作方法 7.4.1 CS8900的初始化 7.4.2 CS8900A的I/O模式寄存器 7.4.3 讀寫CS8900A的片內(nèi)寄存器 7.5 軟件驅(qū)動(dòng)原理 7.5.1 Linux網(wǎng)絡(luò)設(shè)備驅(qū)動(dòng)框架 7.5.2 Linux網(wǎng)絡(luò)協(xié)議棧與驅(qū)動(dòng)間的接口 7.5.3 Linux網(wǎng)絡(luò)設(shè)備接口 7.5.4 CS8900A驅(qū)動(dòng)中的網(wǎng)絡(luò)設(shè)備操作接口實(shí)現(xiàn) 7.5.5 數(shù)據(jù)接收與中斷處理 7.5.6 利用平臺總線設(shè)備封裝網(wǎng)絡(luò)驅(qū)動(dòng) 本章小結(jié) 習(xí)題與思考題第8章 PCMCIA外圍電路設(shè)計(jì)和Linux驅(qū)動(dòng)開發(fā) 8.1 基于PXA2XX處理器的PCMCIA接口 8.1.1 PCMCIA和CF接口簡介 8.1.2 PCMCIA存儲器映射 8.1.3 PCMCIA外部接口設(shè)計(jì) 8.2 外圍電路驅(qū)動(dòng)原理 8.2.1 雙向收發(fā)器74LCX245的使用 8.2.2 CF卡插入檢測 8.2.3“卡讀(寫)使能”信號 8.2.4 PCMCIA接口的Socket Select 8.2.5 PCMCIA接口的電源管理 8.3 GPIO連接原理 8.3.1 存儲控制單元的GPIO連接原理 8.3.2 與中斷相關(guān)的GPIO連接原理 8.4 PCMCIA軟件驅(qū)動(dòng)原理 8.4.1 PCMCIA驅(qū)動(dòng)程序體系 8.4.2 PCMCIA工作流程 8.4.3 插口驅(qū)動(dòng)設(shè)計(jì) 8.5 PCMCIA Card Services 軟件包 8.5.1 軟件包的安裝 8.5.2 特定卡驅(qū)動(dòng) 8.5.3 CF存儲卡的使用 本章小結(jié) 習(xí)題與思考題第9章 AC97音頻處理電路設(shè)計(jì)與Linux驅(qū)動(dòng)開發(fā) 9.1 PXA2XX AC97硬件工作原理 9.1.1 PXA2XX AC97音頻處理電路設(shè)計(jì) 9.1.2 PXA2XX AC97控制單元 9.1.3 CS4299音頻編解碼器 9.2 Linux ALSA音頻設(shè)備驅(qū)動(dòng)原理 9.2.1 ALSA簡介 9.2.2 ALSA聲卡驅(qū)動(dòng)架構(gòu) 9.2.3 ALSA驅(qū)動(dòng)中的聲卡描述對象與音頻設(shè)備組件管理 9.2.4 ALSA驅(qū)動(dòng)的PCM中間層 9.2.5 ALSA驅(qū)動(dòng)的AC97編解碼器中間層 9.3 PXA2XX AC97的ALSA驅(qū)動(dòng) 9.3.1硬件初始化與聲卡描述對象的創(chuàng)建和注冊 9.3.2 PCM接口及其底層硬件操作接口的實(shí)現(xiàn) 9.3.3 AC97的底層硬件操作接口實(shí)現(xiàn) 本章小結(jié) 習(xí)題與思考題參考文獻(xiàn)
章節(jié)摘錄
插圖:嵌入式系統(tǒng)是一種應(yīng)用于特定領(lǐng)域的專用計(jì)算機(jī)系統(tǒng),它的應(yīng)用場合多種多樣,所連接的外設(shè)種類繁多。這些設(shè)備不僅結(jié)構(gòu)和工作原理不同,它們的連接方式也可能完全不同。為了便于實(shí)現(xiàn)嵌入式系統(tǒng)的處理器與各種外設(shè)的連接,避免嵌入式處理器陷入與各種外設(shè)打交道的沉重負(fù)擔(dān)之中,通常需要使用I/O接口作為嵌入式處理器與外設(shè)之間信息交換的中間環(huán)節(jié)。這也意味著,I/O接口是嵌入式系統(tǒng)中必不可少的重要組成部分,是嵌入式處理器與外部世界進(jìn)行信息交換和傳輸?shù)募~帶與橋梁。嵌入式系統(tǒng)作為一種特殊形態(tài)的計(jì)算機(jī)系統(tǒng),盡管其形態(tài)各異,應(yīng)用場合也不盡相同。但各種嵌入式系統(tǒng)與其他的計(jì)算機(jī)系統(tǒng)有著相同的內(nèi)涵.從硬件系統(tǒng)結(jié)構(gòu)上看,嵌入式系統(tǒng)同普通的計(jì)算機(jī)系統(tǒng)一樣,由處理器、存儲器(RAM和ROM)和輸入/輸出設(shè)備組成。從邏輯上看,嵌入式系統(tǒng)和其他計(jì)算機(jī)系統(tǒng)一樣,都是采用總線連接方式將系統(tǒng)的各個(gè)部件連接在一起,也就是通過地址總線、數(shù)據(jù)總線和控制總線將計(jì)算機(jī)系統(tǒng)的處理器、存儲器和外部I/0設(shè)備等各個(gè)部件連接在一起,并以總線作為處理器與其他部件之間信息傳輸?shù)墓餐ǖ?。這種以總線連接方式構(gòu)成的計(jì)算機(jī)系統(tǒng)結(jié)構(gòu)如圖1-1所示。在計(jì)算機(jī)系統(tǒng)的這種結(jié)構(gòu)中,處理器是整個(gè)系統(tǒng)的核心,數(shù)據(jù)的存取和計(jì)算以及外部I/O設(shè)備的操作和控制工作都由處理器承擔(dān)。采用總線結(jié)構(gòu)能使計(jì)算機(jī)系統(tǒng)的構(gòu)造較為方便和靈活,但計(jì)算機(jī)系統(tǒng)中的各種外設(shè)千差萬別,它們的控制方式、處理速度和信息輸入/輸出的格式各不相同。
編輯推薦
《嵌入式接口技術(shù)與Linux驅(qū)動(dòng)開發(fā)》:“十一五”高等院校規(guī)劃教材
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載
嵌入式接口技術(shù)與Linux驅(qū)動(dòng)開發(fā) PDF格式下載