- Linux設備驅動開發詳解(第2版)
- 華清遠見嵌入式培訓中心 宋寶華編著
- 1477字
- 2018-12-27 10:06:05
第2章 驅動設計的硬件基礎
本章導讀
2.3節分析了常見的外設接口與總線的工作方式,包括串口、I2C、USB、以太網接口、ISA、PCI和cPCI等。
本章講述一個底層驅動工程師必備的硬件基礎,給出了嵌入式系統硬件原理及分析方法的一個完整而簡潔的全景視圖。
2.1節描述了微控制器、微處理器、數字信號處理器以及應用于特定領域的處理器各自的特點,分析了處理器的體系架構和指令集。
2.2節對嵌入式系統中所使用的各類存儲器與CPU的接口、應用領域及特點進行了歸納整理。
嵌入式系統硬件電路中經常會使用CPLD和FPGA,作為驅動工程師,我們不需要掌握CPLD和FPGA的開發方法,但是需要知道它們在電路中能完成什么工作,2.4節講解了這項內容。
2.5~2.7節給出了在實際項目開發過程中硬件分析的方法,包括如何進行原理圖分析、時序分析及如何快速地從芯片手冊獲取有效信息。
2.8節講解了調試過程中常用儀器儀表的使用方法,涉及萬用表、示波器和邏輯分析儀。
2.1 處理器
2.1.1 通用處理器
通用處理器(GPP)并不針對特定的應用領域進行體系結構和指令集的優化,它們具有一般化的通用體系結構和指令集,以求支持復雜的運算并易于添加新開發的功能。一般而言,在嵌入式微控制器(MCU)和微處理器(MPU)中會包含一個通用處理器核。
MPU通常代表一個CPU(中央處理器),而MCU則強調把中央處理器、存儲器和外圍電路集成在一個芯片中。早期,微控制器被稱為單片機,指把計算機集成在一個芯片內。嵌入式微控制器也常被稱作片上系統(SoC),含義是在一個芯片上設計了整個系統。芯片廠商在推出 MCU時,往往會有明確的市場定位,如定位于PDA、MP3、ADSL等。定位不同的產品可能包含共同的CPU核,但是集成的擴展電路則不一樣。圖2.1所示給出了一個典型的集成了外圍電路的MCU的結構。

圖2.1 典型的MCU內部結構
舉個例子,Intel的80386屬于微處理器,而內部集成了80386處理器、片選單元、中斷控制、定時器、看門狗定時器、串行I/O、DMA和總線仲裁、DRAM控制器等的386EX則是80386微處理器的微控制器版本。但是,要說明的是,GPP、MCU和MPU等概念其實非常含糊,許多地方并不加以區分,而明確區分這些概念在技術上本身也沒有太大的意義。
嵌入式微控制器一般由一個CPU核和多個外圍電路集成,目前主流的嵌入式CPU核有如下幾種。
● Advanced RISC Machines公司的ARM。
ARM內核的設計技術被授權給數百家半導體廠商,做成不同的SoC芯片。ARM的功耗很低,在當今最活躍的無線局域網、3G、手機終端、手持設備、有線網絡通信設備等中應用非常廣泛。本書所基于的LDD6410開發板上采用的就是S3C6410這個ARM SoC芯片。
● MIPS技術公司的MIPS。
兩個最重要的MIPS芯片廠商為PMC和IDT,PMC-Sierra公司的MIPS處理器被CISCO公司大量采用在高端路由器上。IDT公司在MIPS核上集成PCI接口,廣泛用于以太網交換,另外也嘗試增加了HDLC、Ethernet、串口、SDRAM控制器、片選、DMA控制器等外設接口,以用于低端通信產品。
● IBM和Motorola的PowerPC。
PowerPC處理器是通信和工控領域應用最廣泛的處理器,國內包括華為、中興在內的通信公司都大量使用PowerPC,MPC860和MPC8260是其最經典的兩款。
● Motorola公司獨有的內核68K/COLDFIRE。
68K內核是最早在嵌入式領域廣泛應用的內核,其最著名的代表芯片是68360。Coldfire則繼承了68K的特點并對其保持了兼容。Coldfire內核被用于DSP模塊、CAN總線模塊以及一般嵌入式處理器所集成的外設模塊,在工業控制、機器人研究、家電控制等領域被廣泛采用。
Motorola的半導體部已經獨立為飛思卡爾半導體公司(Freescale Semiconductor Inc.),因為歷史原因,上文仍然使用Motorola。
中央處理器的體系架構可以分為兩類,一類為馮·諾伊曼結構,一類為哈佛結構。
馮·諾伊曼結構也稱普林斯頓結構,是一種將程序指令存儲器和數據存儲器合并在一起的存儲器結構。程序指令存儲地址和數據存儲地址指向同一個存儲器的不同物理位置,因此程序指令和數據的寬度相同。而哈佛結構將程序指令和數據分開存儲,指令和數據可以有不同的數據寬度。此外,哈佛結構還采用了獨立的程序總線和數據總線,分別作為CPU與每個存儲器之間的專用通信路徑,具有較高的執行效率。圖2.2描述了馮·諾伊曼結構和哈佛結構的區別。

圖2.2 馮·諾伊曼結構與哈佛結構
從指令集的角度來講,中央處理器也可以分為兩類,即RISC(精簡指令集計算機)和CISC (復雜指令集計算機)。CSIC強調增強指令的能力、減少目標代碼的數量,但是指令復雜,指令周期長;而RISC強調盡可能減少指令集、指令單周期執行,但是目標代碼會更大。ARM、MIPS、PowerPC等CPU內核都采用了RISC指令集。目前,RISC和CSIC二者的融合非常明顯。
2.1.2 數字信號處理器
數字信號處理器(DSP)針對通信、圖像、語音和視頻處理等領域的算法而設計。它包含獨立的硬件乘法器。DSP 的乘法指令一般在單周期內完成,且優化了卷積、數字濾波、FFT(快速傅立葉變換)、相關、矩陣運算等算法中的大量重復乘法。
DSP一般采用如圖2.3所示的改進的哈佛架構,它具有獨立的地址總線和數據總線,兩條總線由程序存儲器和數據存儲器分時共用。

圖2.3 改進的哈佛結構
DSP分為兩類,一類是定點DSP,一類是浮點DSP。浮點DSP的浮點運算用硬件來實現,可以在單周期內完成,因而其浮點運算處理速度高于定點 DSP。而定點 DSP 只能用定點運算模擬浮點運算。
德州儀器(TI)、美國模擬器件公司(ADI)是全球DSP的兩大主要廠商。
TI的TMS320?DSP平臺包含了功能不同的多個系列如2000系列、3000系列、4000系列、5000系列、6000系列,工程師也習慣稱其為2X、3X、4X、5X、6X。2010年5月,TI已經宣布為其 C64x 系列數字信號處理器與多核片上系統提供 Linux 內核支持,以充分滿足通信與關鍵任務基礎設施、醫療診斷以及高性能測量測試等應用需求。TI 對 C64x Linux 內核的產品支持TMS320C6474、TMS320C6455和TMS320C6457,將于2010年第3季度開始提供。
ADI主要有16位定點的21xx系列、32位浮點的SHARC系列、從SHARC系列發展而來的TigerSHARC系列及高性能16位DSP信號處理能力與通用微控制器方便性相結合的blackfin系列等。ADI的blackfin不含MMU,完整支持Linux,是MMU-less情況下Linux的典型案例,其官方網站為http://blackfin.uclinux.org/gf/,目前blackfin的Linux開發保持了Linux mainline的同步。
通用處理器和數字信號處理器也有相互融合以取長補短的趨勢,如數字信號控制器(DSC)即為MCU+DSP,ADI的blackfin系列就屬于DSC。目前,芯片廠商也推出了許多ARM+DSP的雙核以及多核的處理器,如TI公司的OMAP4平臺就包括4個主要處理引擎:ARM Cortex-A9 MPCore、PowerVR SGX 540 GPU(Graphic Processing Unit)、C64x DSP 和ISP(Image Signal Processor)。
除了上面講述的通用微控制器和數字信號處理器外,還有一些針對特定領域而設計的專用處理器(ASP),它們都是針對一些特定應用而設計的,如用于HDTV、ADSL、Cable Modem等的專用處理器。
網絡處理器是一種可編程器件,它應用于電信領域的各種任務,如包處理、協議分析、路由查找、聲音/數據的匯聚、防火墻、QoS等。網絡處理器器件內部通常由若干個微碼處理器和若干硬件協處理器組成,多個微碼處理器在網絡處理器內部并行處理,通過預先編制的微碼來控制處理流程。而對于一些復雜的標準操作(如內存操作、路由表查找算法、QoS的擁塞控制算法、流量調度算法等)則采用硬件協處理器來進一步提高處理性能,從而實現了業務靈活性和高性能的有機結合。
對于某些應用場合,使用ASIC(專用集成電路)往往是低成本且高性能的方案。ASIC專門針對特定應用而設計,不具備也不需要靈活的編程能力。使用 ASIC 完成同樣的功能往往比直接使用CPU資源或CPLD(復雜可編程邏輯器件)/FPGA(現場可編程門陣列)來得更廉價且高效。
在實際項目的硬件方案中,往往會根據應用的需求選擇通用處理器、數字信號處理器、特定領域處理器、CPLD/FPGA或ASIC之一的解決方案,在復雜的系統中,這些芯片可能會同時存在,協同合作,各自發揮自己的長處。如在一款智能手機中,可使用 MCU 處理圖形用戶界面和用戶的按鍵輸入并運行多任務操作系統,使用DSP進行音視頻編解碼,而在射頻方面則采用ASIC。
綜合2.1節的內容,我們可得出如圖2.4所示的處理器分類。

圖2.4 處理器分類
2.2 存儲器
存儲器主要可分類為只讀儲存器(ROM)、閃存(Flash)、隨機存取存儲器(RAM)、光、磁介質儲存器。
ROM還可再細分為不可編程ROM、可編程ROM(PROM)、可擦除可編程ROM(EPROM)和電可擦除可編程ROM(EEPROM),EEPROM完全可以用軟件來擦寫,已經非常方便了。
目前ROM有被Flash替代的趨勢,NOR(或非)和NAND(與非)是市場上兩種主要的Flash閃存技術。Intel于1988年首先開發出NOR Flash技術,徹底改變了原先由EPROM和EEPROM一統天下的局面。緊接著,1989年,東芝公司發表了NAND Flash結構,每比特的成本被大大降低。
NOR Flash和CPU的接口屬于典型的類SRAM接口(如圖2.5所示),不需要增加額外的控制電路。NOR Flash的特點是可芯片內執行(XIP,eXecute In Place),程序可以直接在NOR內運行。而NAND Flash和CPU的接口必須由相應的控制電路進行轉換,當然也可以通過地址線或GPIO產生NAND Flash接口的信號。NAND FLASH以塊方式進行訪問,不支持芯片內執行。

圖2.5 典型的類SRAM接口
公共閃存接口(Common Flash Interface,簡稱CFI)是一個公開的、標準的從NOR Flash器件中讀取數據的接口。它可以使系統軟件查詢已安裝的Flash 器件的各種參數,包括器件陣列結構參數、電氣和時間參數以及器件支持的功能等。利用 CFI,在不修改系統軟件的情況下,就可以用新型的和改進的產品代替舊版本的產品。
一個NAND Flash的接口主要包含如下信號。
● I/O總線:地址、指令和數據通過這組總線傳輸,一般為8位或16位。
● 芯片啟動(Chip Enable,CE#):如果沒有檢測到CE信號,那么,NAND器件就保持待機模式,不對任何控制信號做出響應。
● 寫使能(Write Enable,WE#):WE#負責將數據、地址或指令寫入NAND之中。
● 讀使能(Read Enable,RE#):RE#允許數據輸出。
● 指令鎖存使能(Command Latch Enable,CLE):當CLE為高時,在WE#信號的上升沿,指令將被鎖存到NAND指令寄存器中。
● 地址鎖存使能(Address Latch Enable,ALE):當ALE為高時,在WE#信號的上升沿,地址將被鎖存到NAND地址寄存器中。
● 就緒/忙(Ready/Busy,R/B#):如果NAND器件忙,R/B#信號將變低。該信號是漏極開路,需要采用上拉電阻。
NAND Flash較NOR Flash容量大,價格低;NAND Flash中每個塊的最大擦寫次數是一百萬次,而NOR的擦寫次數是十萬次;NAND Flash的擦除、編程速度遠超過NOR Flash。
由于Flash固有的電器特性,在讀寫數據過程中,偶然會產生1位或幾位數據錯誤,即位反轉,NAND Flash發生位反轉的幾率要遠大于NOR Flash。位反轉無法避免,因此,使用NAND Flash的同時,應采用錯誤探測/錯誤更正(EDC/ECC)算法。
Flash的編程原理都是只能將1寫為0,而不能將0寫為1。所以在Flash編程之前,必須將對應的塊擦除,而擦除的過程就是把所有位都寫為1的過程,塊內的所有字節變為0xFF。
許多嵌入式系統都提供了IDE(Integrated Drive Electronics)接口,以供連接硬盤控制器或光驅,IDE 接口的信號與 SRAM 類似。人們通常也把 IDE 接口稱為 ATA(Advanced Technology Attachment)接口,技術角度而言并不準確。其實,ATA接口發展至今,已經經歷了ATA-1(IDE)、ATA-2(EIDE Enhanced IDE/Fast ATA)、ATA-3(FastATA-2)、Ultra ATA、Ultra ATA/33、Ultra ATA/66、Ultra ATA/100及Serial ATA的發展過程。
以上所述的各種ROM、Flash和磁介質存儲器都屬于非易失性存儲器(NVM)的范疇,掉電信息不會丟失,而RAM則與此相反。
RAM也可再分為靜態RAM(SRAM)和動態RAM(DRAM)。DRAM以電荷形式進行存儲,數據存儲在電容器中。由于電容器會由于漏電而導致電荷丟失,因而DRAM器件需要定期被刷新。SRAM是靜態的,只要供電它就會保持一個值,SRAM沒有刷新周期。每個SRAM存儲單元由6個晶體管組成,而DRAM存儲單元由1個晶體管和1個電容器組成。
通常所說的SDRAM、DDR SDRAM皆屬于DRAM的范疇,它們采用與CPU外存控制器同步的時鐘工作(注意不是與CPU的工作頻率一致)。與SDRAM相比,DDR SDRAM同時利用了時鐘脈沖的上升沿和下降沿傳輸數據,因此在時鐘頻率不變的情況下,數據傳輸頻率被加倍。此外,還存在使用RSL(Rambus發信電平)技術的RDRAM(Rambus DRAM)和Direct RDRAM。
針對許多特定場合的應用,嵌入式系統中往往還使用了一些特定類型的RAM。
1.NVRAM:非易失性RAM
既然是RAM,就是易失性的,為什么會有一類非易失性的RAM呢?
實際上,NVRAM借助帶有備用電源的SRAM或借助NVM(如EEPROM)存儲SRAM的信息并恢復來實現。NVRAM的特點是完全像 SRAM一樣讀寫,而且寫入的信息掉電不丟失,不需要 EEPROM和Flash 的特定擦除和編程操作。NVRAM 多用于存放系統中的參數信息。
2.DPRAM:雙端口RAM
DPRAM的特點是可以通過2個端口同時訪問,具有2套完全獨立的數據總線、地址總線線和讀寫控制線,通常用于2個處理器之間交互數據,如圖2.6所示。當一端被寫入數據后,另一端可以通過輪詢或中斷獲知,并讀取其寫入的數據。由于雙CPU同時訪問DPRAM時的仲裁邏輯電路集成在DPRAM內部,因而硬件工程師設計電路的原理比較簡單。

圖2.6 雙端口RAM
DPRAM的優點是通信速度快、實時性強、接口簡單,而且兩邊CPU都可主動進行數據傳輸。除了雙端口RAM以外,目前IDT等芯片廠商還推出了多端口RAM,可以供3個以上的CPU互通數據。
3.CAM:內容尋址RAM
CAM是以內容進行尋址的存儲器,是一種特殊的存儲陣列RAM,它的主要工作機制就是將一個輸入數據項與存儲在CAM中的所有數據項自動同時進行比較,判別該輸入數據項與CAM中存儲的數據項是否相匹配,并輸出該數據項對應的匹配信息。
如圖2.7所示,在 CAM 中,輸入的是所要查詢的數據,輸出的是數據地址和匹配標志。若匹配(即搜尋到數據),則輸出數據地址。CAM用于數據檢索的優勢是軟件無法比擬的,可以極大地提高系統性能。

圖2.7 CAM的輸入與輸出
● FIFO:先進先出隊列
FIFO存儲器的特點是先進先出,進出有序,FIFO多用于數據緩沖。FIFO和DPRAM類似,具有兩個訪問端口,但是 FIFO 兩邊的端口并不對等,某一時刻只能被設置為一邊作為輸入,一邊作為輸出。
如果FIFO的區域共為n個字節,我們只能通過循環n次讀取同一個地址才能將該片區域讀出,不能指定偏移地址。對于有n個數據的FIFO,當循環讀取m次,下一次讀會自動讀取到第m +1個數據,這是由FIFO本身的特性決定的。
總結2.2節的內容,我們可得出如圖2.8所示的存儲器分類。

圖2.8 存儲器分類
2.3 接口與總線
2.3.1 串口
RS-232、RS-422與 RS-485 都是串行數據接口標準,最初都是由電子工業協會(EIA)制訂并發布的。
RS-232在1962年發布,命名為EIA-232-E。之后發布的RS-422定義了一種平衡通信接口,它是一種單機發送、多機接收的單向、平衡傳輸規范,被命名為TIA/EIA-422-A標準。RS-422改進了RS-232通信距離短、速率低的缺點。為進一步擴展應用范圍,EIA 又于1983 年在 RS-422的基礎上制定了RS-485標準,增加了多點、雙向通信能力,即允許多個發送器連接到同一條總線上,同時增加了發送器的驅動能力和沖突保護特性,并擴展了總線共模范圍,被命名為TIA/EIA-485-A標準。
1969年發布的RS-232修改版RS-232C是嵌入式系統應用最廣泛的串行接口,它為連接DTE (數據終端設備)與DCE(數據通信設備)而制定。RS-232C規標準接口有25條線(4條數據線、11條控制線、3條定時線、7條備用和未定義線),常用的只有9根,它們是RTS/CTS(請求發送/清除發送流控制)、RxD/TxD(數據收發)、DSR/DTR(數據終端就緒/數據設置就緒流控制)、DCD (數據載波檢測,也稱RLSD,即接收線信號檢出)、Ringing-RI(振鈴指示)、SG(信號地)信號。RTS/CTS、TxD/RxD、DRS/DTR等信號的定義如下。
● RTS:用來表示DTE請求DCE發送數據,當終端要發送數據時,使該信號有效。
● CTS:用來表示DCE準備好接收DTE發來的數據,是對RTS的響應信號。
● TxD:DTE通過TxD將串行數據發送到DCE。
● RxD:DTE通過RxD接收從DCE發來的串行數據。
● DSR:有效(ON狀態)表明DCE可以使用。
● DTR:有效(ON狀態)表明DTE可以使用。
● DCD:當本地DCE設備收到對方DCE設備送來的載波信號時,使DCD有效,通知DTE準備接收,并且由DCE將接收到的載波信號解調為數字信號,經RXD線送給DTE。
● Ringing-RI:當MODEM收到交換臺送來的振鈴呼叫信號時,使該信號有效(ON狀態),通知終端,已被呼叫。
在嵌入式系統中,并不太注重DTE和DCE的概念,而RS-232C也很少用來連接modem,多使用RS-232C進行對等通信,如Windows超級終端、Linux minicom用來連接電路板控制臺等。最簡單的RS-232C串口只需要連接RxD、TxD、SG這3個信號,使用XON/XOFF軟件流控。
組成一個RS-232C串口的硬件原理如圖2.9所示,從CPU到連接器依次為:CPU、UART(通用異步接收器發送器,作用是完成并/串轉換)、CMOS/TTL電平與RS-232C電平轉換、DB9/DB25或自定義連接器。

圖2.9 RS-232C串口電路原理
2.3.2 I2C
I2C(內置集成電路)總線是由Philips公司開發的兩線式串行總線,產生于20世紀80年代,用于連接微控制器及其外圍設備。I2C總線簡單而有效,占用很少的PCB(印刷電路板)空間,芯片管腳數量少,設計成本低。I2C總線支持多主控(multi-mastering)模式,任何能夠進行發送和接收的設備都可以成為主設備。主控能夠控制數據的傳輸和時鐘頻率,在任意時刻只能有一個主控。
組成I2C總線的兩個信號為數據線SDA和時鐘SCL。為了避免總線信號的混亂,要求各設備連接到總線的輸出端必須是開漏輸出或集電極開路輸出的結構。總線空閑時,上拉電阻使 SDA和SCL線都保持高電平。根據開漏輸出或集電極開路輸出信號的“線與”邏輯,I2C總線上任意器件輸出低電平都會使相應總線上的信號線變低。
“線與”邏輯指的是兩個或兩個以上的輸出直接互連就可以實現“AND”的邏輯功能,只有輸出端是開漏(對于CMOS器件)輸出或集電極開路(對于TTL器件)輸出時才滿足此條件。工程師一般以“OC門”簡稱開漏或集電極開路。
I2C設備上的串行數據線SDA接口電路是雙向的,輸出電路用于向總線上發送數據,輸入電路用于接收總線上的數據。同樣地,串行時鐘線SCL也是雙向的,作為控制總線數據傳送的主機要通過SCL輸出電路發送時鐘信號,并檢測總線上SCL上的電平以決定什么時候發下一個時鐘脈沖電平;作為接收主機命令的從設備需按總線上SCL的信號發送或接收SDA上的信號,它也可以向SCL線發出低電平信號以延長總線時鐘信號周期。
當 SCL 穩定在高電平時,SDA 由高到低的變化將產生一個開始位,而由低到高的變化則產生一個停止位,如圖2.10所示。

圖2.10 I2C總線開始位和停止位
開始位和停止位都由I2C主設備產生。在選擇從設備時,如果從設備采用7位地址,則主設備在發起傳輸過程前,需先發送1字節的地址信息,前7位為設備地址,最后1位為讀寫標志。之后,每次傳輸的數據也是1個字節,從MSB位開始傳輸。每個字節傳完后,在SCL的第9個上升沿到來之前,接收方應該發出1個ACK位。SCL上的時鐘脈沖由I2C主控方發出,在第8個時鐘周期之后,主控方應該釋放SDA,I2C總線的時序如圖2.11所示。

圖2.11 I2C總線時序
2.3.3 USB
USB(通用串行總線)是Intel、Microsoft等廠商為解決計算機外設種類的日益增加與有限的主板插槽和端口之間的矛盾而于1995年提出的,它具有數據傳輸率高、易擴展、支持即插即用和熱插拔的優點,目前已得到廣泛應用?
USB1.1包含全速和低速兩種模式,低速方式的速率為1.5Mbit/s,支持一些不需要很大數據吞吐量和很高實時性的設備,如鼠標等。全速模式為12Mbit/s,可以外接速率更高的外設?在USB2.0中,增加了一種高速方式,數據傳輸率達到480Mbit/s,可以滿足更高速外設的需要?
USB的物理拓撲結構如圖2.12所示,在USB2.0中,高速方式下Hub使全速和低速方式的信令環境獨立出來,圖2.13所示高速方式下Hub的作用?

圖2.12 USB的物理拓撲

圖2.13 USB 2.0連接高速、全/低速設備
在嵌入式系統中,電路板若需要掛接USB設備(device),則需提供USB主機(host)控制器和連接器;若電路板需要作為USB設備,則需提供USB設備適配器和連接器。有的MCU集成了USB主機控制器和設備適配器。
USB 總線的機械連接非常簡單,采用4 芯的屏蔽線,一對差分線(D+,D-)傳送信號,另一對(VBUS,電源地)傳送+5V的直流電。一個USB主控制器端口最多可連接127個器件,各器件之間的距離不超過5米?
USB提供了4種傳輸方式以適應各種設備的需要,說明如下。
(1)控制(Control)傳輸方式。
控制傳輸是雙向傳輸,數據量通常較小,主要用來進行查詢、配置和給USB設備發送通用的命令?
(2)同步(Synchronization)傳輸方式。
同步傳輸提供了確定的帶寬和間隔時間,它被用于時間嚴格并具有較強容錯性的流數據傳輸,或者用于要求恒定的數據傳送率的即時應用。例如進行語音業務傳輸時,使用同步傳輸方式是很好的選擇?
(3)中斷(Interrupt)傳輸方式。
中斷方式傳送是單向的,對于USB主機而言,只有輸入。中斷傳輸方式主要用于定時查詢設備是否有中斷數據要傳送,該傳輸方式應用在少量的、分散的、不可預測的數據傳輸場合,鍵盤、游戲桿和鼠標屬于這一類型?
(4)批量(Bulk)傳輸方式。
批量傳輸主要應用在沒有帶寬和間隔時間要求的批量數據的傳送和接收,它要求保證傳輸?打印機和掃描儀屬于這種類型?
2.3.4 以太網接口
以太網接口由MAC(以太網媒體接入控制器)和PHY(物理接口收發器)組成。以太網MAC由IEEE-802.3以太網標準定義,實現了數據鏈路層。常用的MAC支持10Mbit/s或100Mbit/s兩種速率。PHY則實現物理層功能,IEEE-802.3標準定義了以太網PHY,它符合IEEE-802.3k中用于10BaseT(第14條)和100BaseTX(第24條和第25條)的規范。10BaseT和100BaseTX PHY兩種實現的幀格式是一樣的,但信令機制不同,而且10BaseT采用曼徹斯特編碼,100BaseTX采用4B/5B編碼。
MAC和PHY之間采用MII(媒體獨立接口)連接,它是IEEE-802.3定義的以太網行業標準,包括1個數據接口和1個MAC和PHY之間的管理接口。數據接口包括分別用于發送和接收的兩條獨立信道,每條信道都有自己的數據、時鐘和控制信號,MII數據接口總共需要16個信號。MII管理接口包含兩個信號,一個是時鐘信號,另一個是數據信號。通過管理接口,上層能監視和控制PHY。
組成一個以太網接口的硬件原理如圖2.14所示,從CPU到最終接口依次為:CPU、MAC、PHY、以太網隔離變壓器、RJ45插座。以太網隔離變壓器是以太網收發芯片與連接器之間的磁性組件,在其兩者之間起著信號傳輸、阻抗匹配、波形修復、信號雜波抑制和高電壓隔離作用。

圖2.14 以太網接口電路原理
許多處理器內部集成了MAC或同時集成了MAC和PHY,另有許多以太網控制芯片也集成了MAC和PHY。
2.3.5 ISA
ISA(工業標準結構總線)總線起源于1981年IBM生產的以Intel 8088為CPU的IBM-PC微計算機,開始時總線寬度為8位。1984年推出的IBM-PC/AT系統將ISA總線擴充為16位數據總線寬度,同時地址總線寬度也由20 位擴充到了24位。其后推出的EISA(擴展的ISA)采用32位地址線,數據總線也擴展為32位,但仍保持了與ISA的兼容。
圖2.15所示為ISA總線的信號,這些信號可分為3組。
● 總線基本信號:ISA總線工作所需要的最基本信號,含復位、時鐘、電源、地等。
● 總線訪問信號:用于訪問ISA總線設備的地址線、數據線以及相應的應答信號。
● 總線控制信號:中斷和DMA請求。

圖2.15 ISA總線信號
圖2.15中各信號的詳細定義如下。
● RESET、BCLK:復位及總線基本時鐘,BLCK為8MHz。
● SA19~SA0:存儲器及I/O空間20位地址,帶鎖存。
● LA23~LA17:存儲器及I/O空間20位地址,不帶鎖存。
● BALE:總線地址鎖存,外部鎖存器的選通。
● AEN:地址允許,表明CPU讓出總線,DMA開始。
● SMEMR#、SMEMW#:8位ISA存儲器讀寫控制。
● MEMR#、MEMW#:16位ISA存儲器讀寫控制。
● SD15~SD0:數據總線,訪問8位ISA卡時高8位自動傳送到SD7~SD0。
● SBHE#:高字節允許,打開SD15~SD8數據通路。
● MEMCS16#、IOCS16#:ISA卡發出此信號確認可以進行16位傳送。
● I/OCHRDY:ISA卡準備信號,可控制插入等待周期。
● NOWS#:有效則暗示不用插入等待周期。
● I/OCHCK#:ISA卡奇偶校驗錯。
● IRQ15、IRQ14、IRQ12~IRQ9、IRQ7~IRQ3:中斷請求。
● DRQ7~DRQ5、DRQ3~DRQ0:ISA卡DMA請求。
● DACK7#~DACK5#、DACK3#~DACK0#:DMA請求響應。
● MASTER#:ISA主模塊確立信號,ISA發出此信號,與主機內DMAC(DMA控制器)配合使ISA卡成為主模塊。
2.3.6 PCI和cPCI
PCI(外圍部件互連)是由Intel于1991年推出的一種局部總線,作為一種通用的總線接口標準,它在目前的計算機系統中得到了非常廣泛的應用。PCI 提供了一組完整的總線接口規范,其目的是描述如何將計算機系統中的外圍設備以一種結構化和可控化的方式連接在一起,給出了外圍設備在連接時的電氣特性和行為規約,并且詳細定義了計算機系統中的各個不同部件之間應該如何正確地進行交互。PCI總線具有如下特點。
● 數據總線32位,可擴充到64位。
● 可進行突發(burst)模式傳輸。
突發方式傳輸是指取得總線控制權后連續進行多個數據的傳輸。突發傳輸時,只需要給出目的地的首地址,訪問第1個數據后,第2~n個數據會在首地址基礎上按一定規則自動被尋址和傳輸。與突發方式對應的是單周期方式,它在1個總線周期只傳送1個數據。
● 總線操作與處理器-存儲器子系統操作并行。
● 總線時鐘頻率為33MHz或66MHz,最高傳輸率可達528MB/s。
● 采用中央集中式總線仲裁。
● 支持全自動配置、資源分配,PCI 卡內有設備信息寄存器組為系統提供卡的信息,可實現即插即用。
● PCI總線規范獨立于微處理器,通用性好。
● PCI設備可以完全作為主控設備控制總線。
圖2.16給出了一個典型的基于PCI總線的計算機系統邏輯示意圖,系統的各個部分通過PCI總線和PCI-PCI橋連接在一起。CPU和RAM通過PCI橋連接到PCI總線0(即主PCI總線),而具有PCI接口的顯卡則可以直接連接到主PCI總線上。PCI-PCI橋是一個特殊的PCI設備,它負責將PCI總線0和PCI總線1(即從PCI主線)連接在一起,通常PCI總線1稱為PCI-PCI橋的下游(downstream),而PCI總線0則稱為PCI-PCI橋的上游(upstream)。為了兼容舊的ISA總線標準,PCI總線還可以通過PCI-ISA橋來連接ISA總線,從而支持以前的ISA設備。

圖2.16 基于PCI總線的計算機系統
當PCI卡剛加電時,卡上只有配置空間是可被訪問的,因而PCI卡開始不能由驅動或用戶程序訪問,這與ISA卡有本質的區別(CPU可直接讀取ISA卡在存儲空間或I/O空間映射的地址)。PCI 配置空間保存著該卡工作所需的所有信息,如廠家、卡功能、資源要求、處理能力、功能模塊數量、主控卡能力等。通過對這個空間信息的讀取與編程,可完成對 PCI 卡的配置。如圖2.17所示,PCI配置空間共為256字節,主要包括如下信息。
● 制造商標識(Vendor ID):由PCI組織分配給廠家。
● 設備標識(Device ID):按產品分類給本卡的編號。
● 分類碼(Class Code):本卡功能的分類碼,如圖卡、顯示卡、解壓卡等。
● 申請存儲器空間:PCI 卡內有存儲器或以存儲器編址的寄存器和 I/O 空間,為使驅動程序和應用程序能訪問它們,需申請CPU的一段存儲區域以進行定位。配置空間的基地址寄存器用于此目的。
● 申請I/O空間:配置空間的基地址寄存器也用來進行系統I/O空間的申請。
● 中斷資源申請:配置空間中的中斷引腳和中斷線用來向系統申請中斷資源。中斷資源的申請通過中斷引腳(interrupt pin)和中斷線(interrupt line)來完成的。偏移3Dh處為中斷引腳寄存器,其值表明 PCI 設備使用了哪一個中斷引腳,對應關系為:1-INTA#、2-INTB#、3-INTC#、4-INTD#。
PCI總線上的信號大體可分為如下幾組。
● 系統接口信號。
● 地址與數據接口信號。
● 接口控制信號。
● 仲裁信號。
● 錯誤報告信號。
● 中斷接口信號。
● 其他接口信號。

圖2.17 PCI配置空間
如圖2.18所示,這些信號的詳細定義如下。
● CLK:系統時鐘。
● AD31~AD0:地址和數據復用信號線信號。
● C/BE3~C/BE:總線命令和地址使能信號。
● PAR:奇偶校驗信號。
● FRAM E#:幀周期信號,指示總線操作起始和終止。
● IRDY#:主設備準備好信號。
● TRDY#:目標設備準備好信號。
● STOP#:目標設備要求終止當前數據傳輸信號。
● DEVSEL #:目標設備選中信號。
● IDSEL:配置空間讀寫時的片選信號。
● LOCK#:總線鎖定信號。
● RST#:復位信號。
● INTA#、INTB#、INTC#和INTD#:中斷請求。
● REQ#、GNT#:PCI總線請求與仲裁后的授權。
● AD63-AD32、C/BE7-4等:作用于64位擴展的PCI總線。

圖2.18 PCI總線信號
cPCI(Compact PCI,緊湊型 PCI)是以 PCI 電氣規范為標準的高性能工業用總線,結合了VME(Visa Module Eurocard,維薩信用卡模塊歐洲卡)的高性能、可擴展性和可靠性與PCI標準的經濟有效和靈活性。cPCI的CPU及外設與標準PCI是相同的,使用與傳統PCI相同的芯片和軟件,操作系統、驅動和應用程序都感覺不到兩者的區別。圖2.19展示了與cPCI總線相關的板卡、背板和機箱,基本上都是“大塊頭”,應用于工業控制和大型通信設備。

圖2.19 cPCI板卡、背板與機箱
2.4 CPLD和FPGA
CPLD(復雜可編程邏輯器件)由完全可編程的與或門陣列以及宏單元構成。
CPLD中基本邏輯單元是宏單元,宏單元由一些“與或”陣列加上觸發器構成,其中“與或”陣列完成組合邏輯功能,觸發器完成時序邏輯。宏單元中與陣列的輸出稱為乘積項,其數量標志了CPLD的容量。乘積項陣列實際上就是一個“與或”陣列,每一個交叉點都是一個可編程熔絲,如果導通就是實現“與”邏輯。在“與”陣列后一般還有一個“或”陣列,用以完成最小邏輯表達式中的“或”關系。圖2.20所示為非常典型的CPLD的單個宏單元的結構。

圖2.20 典型的CPLD宏單元
圖2.21給出了一個典型CPLD的整體結構。這個CPLD由LAB(邏輯陣列模塊,由多個宏單元組成)通過 PIA(可編程互連陣列)互連組成,而CPLD與外部的接口則由I/O控制模塊提供。

圖2.21 典型CPLD的結構
圖中宏單元的輸出會經 I/O 控制塊送至I/O引腳,I/O控制塊控制每一個I/O引腳的工作模式,決定其為輸入、輸出還是雙向引腳,并決定其三態輸出的使能端控制。
與 CPLD 不同,FPGA(現場可編程門陣列)基于LUT(查找表)工藝。查找表本質上是一片RAM,當用戶通過原理圖或HDL(硬件描述語言)語言描述了一個邏輯電路以后, FPGA 開發軟件會自動計算邏輯電路的所有可能的結果,并把結果事先寫入 RAM。這樣,輸入一組信號進行邏輯運算就等于輸入一個地址進行查表輸出對應地址的內容。
圖2.22所示為一個典型的FPGA的內部結構。這個FPGA由IOC(輸入/輸出控制模塊)、EAB (嵌入式陣列塊)、LAB和FAST TRACK(快速通道互連)構成。

圖2.22 典型FPGA的結構
IOC是內部信號到I/O引腳的接口,它位于FAST TRACK的行和列的末端,每個IOC包含一個雙向I/O緩沖器和一個既可做輸入寄存器也可做輸出寄存器的觸發器。
EAB(嵌入式存儲塊)是一種輸入輸出端帶有寄存器的非常靈活的RAM。EAB 不僅可以用作存儲器,也可以事先被寫入查表值來以用來構成如乘法器、糾錯邏輯等電路。當用于RAM時, EAB可配制成8位、4位、2位和1位長度的數據格式。
LAB主要用于邏輯電路設計,一個LAB包括多個LE(邏輯單元),每個LE包括組合邏輯及一個可編程觸發器。一系列LAB構成的邏輯陣列用來實現普通邏輯功能,如計數器、加法器、狀態機等。
器件內部信號的互連和器件引出端之間的信號互連由FAST TRACK連線提供,FAST TRACK遍布于整個FPGA器件,是一系列水平和垂直走向的連續式布線通道。
表2.1所示為一個4輸入LUT的實際邏輯電路與LUT實現方式的對應關系。
表2.1 實際邏輯電路與查找表的實現
續表

CPLD和FPGA的主要廠商有Altera、Xilinx和Lattice等,采用專門的開發流程,在設計階段使用HDL語言(如VHDL、Verilog HDL)編程。它們可以實現許多復雜的功能,如實現UART、I2C等I/O控制芯片、通信算法、音視頻編解碼算法等,甚至還可以直接集成ARM等CPU核和外圍電路。
對于驅動工程師而言,我們只需要這樣看待 CPLD和FPGA:如果它完成的是特定的接口和控制功能,我們就直接把它當成由很多邏輯門(與、非、或、D觸發器)組成的完成一系列時序邏輯和組合邏輯的ASIC;如果它完成的是CPU的功能,我們就直接把它當成CPU。驅動工程師眼里的硬件比IC設計師要宏觀。
2.5 原理圖分析
2.5.1 原理圖分析的內容
原理圖分析的含義是指通過閱讀電路板的原理圖獲得各種存儲器、外設所使用的硬件資源,主要包括存儲器和外設控制芯片所使用的片選、中斷和DMA資源。通過分析片選得出芯片的內存、I/O基地址,通過分析中斷、DMA信號獲得芯片使用的中斷號和DMA 通道,并歸納出如表2.2所示的表格。
表2.2 存儲器、外設控制器資源占用表

上述表格對驅動開發的意義很重大,實際上,在大多數情況下,硬件工程師已經給驅動工程師提供了這個表格。
2.5.2 原理圖的分析方法
原理圖的分析方法是以CPU為中心向存儲器和外設輻射,步驟如下。
(1)閱讀CPU部分,獲知CPU的哪些片選、中斷和集成的外設控制器被使用,列出這些元素a、b、c…。
CPU引腳比較多的時候,芯片可能會被分成幾個模塊單獨被畫在原理圖的不同頁上,這時候應該把相應的部分都分析到位。
(2)對第一步中列出的元素從原理圖中對應的外設和存儲器電路中分析出實際的使用情況。
硬件原理圖中包含如下元素。
● 符號(symbol)。
symbol描述芯片的外圍引腳以及引腳的信號,對于復雜的芯片,可能被分割為幾個symbol。在symbol中,一般把屬于同一個信號群的引腳排列在一起。圖2.23所示為NOR Flash AM29LV160DB和NAND Flash K9F2G08的symbol。

圖2.23 原理圖中的symbol
● 網絡(net)。
描述芯片、接插件和分離元器件引腳之間的互連關系,每個網絡需要根據信號的定義賦予一個合適的名字,如果沒有給網絡取名字,EDA 軟件會自動添加一個默認的網絡名。添加網絡后的AM29LV160DB如圖2.24所示。

圖2.24 原理圖中的net
● 描述
原理圖中會添加一些文字來輔助描述原理圖(類似源代碼中的注釋),如每頁頁腳會有該頁的功能描述,對重要的信號,在原理圖的相應symbol和net也會附帶文字說明。圖2.25中給出了原理圖中描述的例子。
LDD6410 Evaluation Board Schematics

圖2.25 原理圖中的描述
2.6 硬件時序分析
2.6.1 時序分析的概念
驅動工程師一般不需要分析硬件的時序,但是鑒于許多企業內驅動工程師還需要承擔電路板調試的任務,因此,掌握時序分析的方法也就比較必要了。
對驅動工程師或硬件工程師而言,時序分析的意思是讓芯片之間的訪問滿足芯片手冊中時序圖信號有效的先后順序、采樣建立時間(setup time)和保持時間(hold time)的要求,在電路板工作不正常的時候,準確地定位時序方面的問題。
建立時間是指在觸發器的時鐘信號邊沿到來以前,數據已經保持穩定不變的時間,如果建立時間不夠,數據將不能在這個時鐘邊沿被打入觸發器;保持時間是指在觸發器的時鐘信號邊沿到來以后,數據還需穩定不變的時間,如果保持時間不夠,數據同樣不能被打入觸發器。如圖2.26所示,數據穩定傳輸必須滿足建立和保持時間的要求,當然在一些情況下,建立時間和保持時間的值可以為零。

圖2.26 建立時間和保持時間
在工具方面,SynaptiCAD公司的Timing Diagrammer Pro是一種非常好的數字/模擬時序圖編輯器及分析引擎。
2.6.2 典型硬件時序
最典型的硬件時序是SRAM的讀寫時序,在讀/寫過程中涉及的信號包括地址、數據、片選、讀/寫、字節使能和就緒/忙。對于一個16位、32位(甚至64位)的SRAM,字節使能表明哪些字節被讀寫。
圖2.27給出了 SRAM的一個讀時序,寫時序與此相似。首先是地址總線上輸出要讀寫的地址,然后SRAM片選被發出,接著讀/寫信號被輸出,之后讀寫信號要經歷數個等待周期。當SRAM讀寫速度比較慢時,等待周期可以由MCU的相應寄存器設置,也可以通過設備就緒/忙(如圖2.27中的nWait)向CPU報告,這樣,讀寫過程中會自動添加等待周期。

圖2.27 SRAM讀時序圖
NOR Flash和許多外設控制芯片都使用了類似SRAM的訪問時序,因此,牢固掌握這個時序意義重大。一般,在芯片數據手冊給出的時序圖中,會給出圖中各段時間的含義和要求,真實的電路板必須滿足芯片手冊上描述的建立時間和保持時間的最小要求。
2.7 芯片手冊閱讀方法
芯片手冊往往長達數百頁甚至上千頁,而且全部是英文,從頭到尾不加區分地閱讀需要花費非常長的時間,而且不一定能獲取對設計設備驅動有幫助的信息。芯片手冊的正確閱讀方法是快速而準確地定位有用信息,重點閱讀這些信息,忽略無關內容。下面以 S3C6410A的datasheet為例來分析閱讀方法,為了直觀地反映閱讀過程,本節的圖都直接從手冊中抓屏而得。
打開S3C6410 A的datasheet,發現頁數為1378頁,閱讀這樣的數據手冊所花費的時間足夠完成整個驅動的設計工作了。
S3C6410A datasheet的第1章“PRODUCT OVERVIEW”即“產品綜述”是必讀的,通過閱讀這一部分可以獲知整個芯片的組成。這一章往往會給出一個芯片的整體結構圖,并對芯片內的主要模塊進行一個簡潔的描述。如圖2.28所示,S3C6410A的整體結構圖在第61頁出現。

圖2.28 S3C6410A datasheet中芯片結構圖
第2~43章每一章都對應S3C6410A整體結構圖中的一個模塊,圖2.29為從Adobe Acrobat中直接抓出的S3C6410A datasheet目錄結構圖。

圖2.29 S3C6410A datasheet目錄結構
第2章“MemoryMap”即“內存映射”比較關鍵,對于定位存儲器和外設所對應的基地址有直接指導意義,這一部分應該細看。
第3~34章對應于CPU內部集成的外設或總線控制器,當具體編寫某一接口的驅動時,應該詳細閱讀,主要是要分析數據、控制、地址寄存器(datasheet 中一般會以表格列出)的訪問控制和具體設備的操作流程(datasheet 中會給出步驟,有的還會給出流程圖)。譬如為了編寫S3C6410A的I2C控制器驅動,我們需要詳細閱讀類似圖2.30的寄存器定義表格和圖2.31的操作流程圖。

圖2.30 芯片手冊中以表格形式列出寄存器定義
第44章“ELECTRICAL DATA”即“電氣數據”,描述芯片的電氣特性,如電壓、電流和各種工作模式下的時序及建立時間和保持時間的要求。所有的datasheet都會包含類似章節,這一章對于硬件工程師比較關鍵,但是,一般來說,驅動工程師并不需閱讀。
第45章“MECHANICAL DATA”即“機械數據”,描述芯片的物理特性、尺寸和封裝,硬件工程師會依據這一章繪制芯片的封裝(footprint),但是,驅動工程師無需閱讀。

圖2.31 芯片手冊中給出外設控制器的操作流程
2.8 儀器儀表使用
2.8.1 萬用表
在電路板調試過程中我們主要使用萬用表的兩個功能。
● 測量電平。
● 使用二極管 測量電路板上網絡的連通性,當示波器被設置在二極管 ,測量連通的網絡會發出“ ”的叫,否則,沒有連通。
2.8.2 示波器
示波器是利用電子示波管的特性,將人眼無法直接觀測的交變電信號轉換成圖像,顯示在
光屏上以便測量的電子儀器。它是觀察數字電路實驗現象、分析實驗中的問題、測量實驗結果必不可少的重要儀器。
使用示波器主要應注意調節垂直偏轉因數選擇(VOLTS/DIV)和微調、時基選擇(TIME/DIV)和微調以及觸發方式。
如果VOLTS/DIV設置不合理,則可能造成電壓幅度超出整個屏幕或在屏幕上變動太過微小無法觀測的現象。圖2.32所示為同一個波形在 VOLTS/DIV 設置由大到小變化過程中的示意圖。
如果TIME/DIV設置不合適,則可能造成波形混迭。混迭意味著屏幕上顯示的波形頻率低于信號的實際頻率。這時候,可以通過慢慢改變掃速TIME/DIV到較快的時基 ,如果波形的頻率參數急 改變或者 動的波形在某個較快的時基 穩定下來,說明之前發生了波形混迭。根據
斯特定理,采樣速率至少高于信號高頻成分的2倍才不會發生混迭,如一個500MHz的信號,至少需要1GS/s的采樣速率。圖2.33所示為同一個波形在TIME/DIV設置由小到大變化過程中的示意圖。

圖2.32 示波器的VOLTS/DIV設置與波形
奈奎斯特定理即為采樣定理,指當采樣頻率fsmax大于信號中最高頻率fmax的2倍時,即fsmax≥2fmax時,采樣之后的數字信號可完整地保留了原始信息。這條定理在信號處理領域的地位相當之高,大致相當于物理學領域的牛頓定律。
示波器的觸發能使信號在正確的位置點同步水平掃描,使信號特性清晰。觸發控制按鈕可以穩定重復的波形并捕獲單次波形。大多數用示波器的用戶只采用邊沿觸發方式,如果擁有其他觸發能力在某些應用上是非常有用的,特別是對新設計產品的故障查詢,先進的觸發方式可將所關心的事件分離出來,找出用戶關心的非正常問題,從而最有效地利用采樣速率和存儲深度。觸發能力的提高可以較大提高測試過程的靈活性。

圖2.33 示波器的TIME/DIV設置與波形
2.8.3 邏輯分析儀
邏輯分析儀是利用時鐘從測試設備上采集數字信號并進行顯示的儀器,其最主要的作用是用于時序的判定。與示波器不同,邏輯分析儀并不具備許多電壓等級,通常只顯示兩個電壓(邏輯1和0)。在設定了參考電壓之后,邏輯分析儀對待測試信號通過比較器來進行判定,高于參考電壓者為High,低于參考電壓者為Low。
例如,如果以n MHz采樣率測量一個信號,邏輯分析儀會以1000/n ns為周期采樣信號,當參考電壓設定為1.5V時,超過1.5V則判定為1,低于1.5V則為0,將邏輯1和0連接成連續的波形,工程師依據此連續波形可尋找時序問題。
高端的邏輯分析儀會安裝有Windows XP操作系統并提供非常友善的邏輯分析應用軟件,在其中可方便地編輯探針、信號并察看波形,如圖2.34所示。
邏輯分析儀的波形可以顯示地址、數據、控制信號及任意外部探 信號的變化軌 ,在使用之前應先編輯每個探鉤的信號名。

圖2.34 邏輯分析儀及配套軟件
邏輯分析儀具有超強的邏輯跟蹤分析功能,它可以捕獲并記錄嵌入式處理器的總線周期,也可以捕獲如實時跟蹤用的ETM 接口的程序執行信息,并對這些記錄進行分析、譯碼并還原出應用程序的執行過程。因此,可使用邏輯分析儀通過觸發接口與ICD(在線調試器)協調工作以補充ICD在跟蹤功能方面的不足。邏輯分析儀與ICD協作可為工程師提供斷點、觸發和跟蹤調試手段,如圖2.35所示。
ICD是一個容易與ICE(在線仿真器)混淆的概念,ICE本身需要完全仿真CPU的行為,可以從物理上完全替代CPU,而ICD則只是與芯片內部提供的嵌入式ICE單元通過JTAG等接口互通。因此,對ICD的硬件性能要求遠低于ICE。目前市面上出現的很多號稱為ICE的產品實際上是ICD,如ARM公司的Multi-ICE、WindRiver公司的visionICE和visionProbe等。

圖2.35 邏輯分析儀與ICD協作
2.9 總結
本章簡單地講解了驅動軟件工程師必備的硬件基礎知識,描述了處理器、存儲器的分類以及各種處理器、存儲器的原理與用途,并分析了常見的外圍設備接口與總線的工作方式。
此外,本章還講述了對驅動工程師進行實際項目開發有幫助作用的原理圖、硬件時序分析方法,數據手冊閱讀方法以及萬用表、示波器和邏輯分析儀的使用方法。
- Windows Server 2012網絡操作系統企業應用案例詳解
- Learning Bootstrap
- 深入淺出Node.js
- 計算機系統:基于x86+Linux平臺
- Social Data Visualization with HTML5 and JavaScript
- Linux網絡配置與安全管理
- OpenVZ Essentials
- 嵌入式微系統
- Office 365 User Guide
- Azure Resource Manager Templates Quick Start Guide
- 電腦辦公(Windows 7+Office 2016)入門與提高
- 微軟360度
- Getting Started with Raspberry Pi Zero
- Windows PE權威指南
- HarmonyOS應用開發:快速入門與項目實戰