嵌入式驅動開發(fā)必備硬件知識
在嵌入式領域,可分為硬件開發(fā)和軟件開發(fā)。對于軟件開發(fā)又可分為底層開發(fā)(模塊驅動編寫,uboot,內核),上層開發(fā)(應用,QT)。 作為一名軟件驅動開發(fā)的工程師,我們不需要去設計硬件的原理圖,PCB。我們只需看懂硬件開發(fā)人員提供的硬件模塊時序就行了,但是我們應該也需了解如下硬件知識。
一)處理器
1,可分為通用處理器(單片機,ARM),數(shù)字處理器(DSP),其他專用處理器(FPGA)
在通用處理器領域中,采用的內核有51,AVR,PIC,ARM。在當今通用處理器芯片大多數(shù)采用ARM架構并且多采用SOC的芯片設計方法,集成了各種功能模塊(圖形處理器,視頻解碼器,浮點協(xié)處理器,GPS,WIFI等),每一種功能都是由硬件描述語言設計程序,然后在Soc內由電路連接實現(xiàn)。
主流的ARM移動處理芯片供應商有:高通,三星,英偉達,美滿,聯(lián)發(fā)科,海思(哪個國家的?尷尬了)。
中央處理器的體系結構:馮.諾依曼結構(程序指令存儲器和數(shù)據(jù)存儲器合并在一起的存儲結構),哈佛結構(程序指令存儲器和數(shù)據(jù)存儲器分開的存儲結構)。
指令集:RISC(精簡指令集計算機)和CISC(復雜指令集計算機)。CISC強調增強指令的能力,減少目標代碼數(shù)量,但指令復雜,指令周期長。RISC強調盡量減少指令集,指令單周期執(zhí)行,但是目標代碼會更大。ARM,MIPS等內核CPU都采用了RISC指令集。
2,數(shù)字信號處理器:針對通信,圖像,語音,視頻處理等領域的算法設計。它包含的硬件乘法器,DSP的乘法指令一般在單周期內完成,且優(yōu)化了卷積,數(shù)字濾波,F(xiàn)FT,相關矩陣運算等算法中的大量重復乘法。
德州儀器(TI),美國模擬器件公司(ADI)是全球DSP的兩大主廠商。
3,其他專用處理器:為某種應用的特定設計。采用ASIC,CPLD/FPGA等實現(xiàn)。 在實際項目的硬件方案中,往往會根據(jù)應用的需求方案選擇通用處理器,數(shù)字處理器,特定領域處理器,CPLD/FPGA或ASIC之一的解決方案,在復雜系統(tǒng)中,這些芯片可同時存在,協(xié)同合作,各自發(fā)揮自己的長處。(ARM+DSP+FPGA)。
二 存儲器
存儲器主要可分為只讀存儲器(ROM),閃存(Flash),隨機存取存儲器(RAM)。
1,ROM在可細分為:不可編程ROM ,可編程ROM,電可擦除可編程ROM(E2PROM),它可完全用軟件來擦寫。
2,F(xiàn)LASH可分為NOR(或非),NAND(與非)兩種,Intel于1988年首先開發(fā)出Nor flash 技術,緊接著1989年,東芝發(fā)表了NAND flash結構,徹底改變了原先的EPROM,EEPROM壟斷的地位。
Nor Flash:程序可直接在nor中執(zhí)行,支持位擦寫,支持SPI接口,存儲量小。
Nand Flash:儲存量大,頁擦除,占用的I/O多。
3,RAM可分為靜態(tài)RAM和動態(tài)RAM。動態(tài)RAM儲存在電容中,擦寫速度快,由于電容器有漏電現(xiàn)象,因此需要定期刷新。靜態(tài)RAM不需要定期刷新電路,儲存速度慢。(好壞,快慢都是相比較而言的)
4,其他 嵌入式系統(tǒng)中往往還有些特定類型的RAM
雙端口RAM:具有兩套完全獨立的地址,數(shù)據(jù)總線,用于兩個處理器之間的數(shù)據(jù)交互,具有同時讀寫的的功能。
內容尋址RAM(CAM):以內容進行尋址的存儲器,是一種特殊的存儲陣列RAM,它的主要工作機制就是同時將一個輸入的數(shù)據(jù)與存儲在CAM中的所有數(shù)據(jù)自動進行比較,判斷該輸入數(shù)據(jù)項與CAM中存儲單元的數(shù)據(jù)項是否相匹配,并輸出該數(shù)據(jù)項對應的匹配信息。
FIFO:先進先出隊列:特點是先進先出,進出有序,FIFO多用于數(shù)據(jù)緩沖。
三 接口與總線
1,串口:RS-232是一種單機發(fā)送,多機接收的單向,平衡傳輸規(guī)范,后來發(fā)展的RS-422改進了RS232通信距離短,通信速度慢的特點,在RS-485中,又增加了多點,雙向通信能力,即允許多個發(fā)送器連接在一條總線上。串口電路組成部分:CPU---UART--RS-232芯片---連接器(接口芯片)。
2,I2C
I2C總線是由Philips公司開發(fā)的兩線式串行總線,產生于20世紀80年代,用于連接微控制器及外圍設備。I2C總線支持多主控,但需要注意的是在任意時刻只能有一個主控。
相應時序:當SCL穩(wěn)定在高電平時,SDA由高向低的變化將產生一個開始位,而且由低到高變化,則產生一個停止位。(都有注主設備產生)
在選擇設別時:主設備需要首先發(fā)送一個字節(jié)的地址信息,前7位代表地址信息,最后一位代表讀寫信息。
數(shù)據(jù)通信:在第9個上升沿來到之前,從設備應該發(fā)出一個ACK位。結束時,SCL穩(wěn)定保持在高電平期間,SDA從低向高,產生停止信號。
3 SPI
SPI總線系統(tǒng)是一種同步串行外設接口,它可以使CPU與各種外圍設別以串行的方式進行通信。SPI接口一般使用4條線,串行時鐘線,主機輸入/從機輸出數(shù)據(jù)線(MOSI),主機輸出/叢機輸入線(MOSI),和低電平有效的數(shù)據(jù)選擇線(SS)。
4 USB
USB:具有數(shù)據(jù)傳輸高,易擴展,支持熱插拔等特點。在USB1.1中傳輸速度有12Mbit/s,在USB2.0中,傳輸速率達到480Mbit/s。在USB3.0中,傳輸速率甚至高達5.0Gbit/s。在USB2.0總線的機械連接非常簡單,采用4芯的屏蔽線,一對差分線(D+,D-)傳輸信號,另一對(VBUS,電源地)傳送+5v的直流電。
5 以太網(wǎng)接口
以太網(wǎng)接口由MAC(以太網(wǎng)媒體接入控制器)和PHY(物理接口收發(fā)器)組成。以太網(wǎng)MAC由IEEE802.3以太網(wǎng)標準定義,實現(xiàn)數(shù)據(jù)鏈路層。常用的MAC支持10Mbit/s和100Mbit/s兩種速率。吉比特網(wǎng)是快速以太網(wǎng)的下一代,速度將高達1000Mbit/s.
6 PCI和PCI-E
PCI是一種局部總線,作為一種通用的總線接口標準,它目前在計算機系統(tǒng)中得到了非常廣泛的應用。
7 SD和SDIO
SD是一種關于FLASH的儲存卡的標準,也就是一般常見的SD記憶卡,在設計上與MMC保持兼容。
SDIO在SD標準的基礎上,定義了儲存卡以外的外設接口。
四 CPLD和FPGA
CPLD由完全可編程的與或門陣列以及宏單元構成。 與CPLD不同,F(xiàn)PGA(現(xiàn)場可編程門陣列)基于LUT(查找表)工藝。CPLD和FPGA的主要廠商有Altera,Xilinx和Lattice等,它們專門的開發(fā)流程,在設計階段使用HDL編程。它們可實現(xiàn)許多復雜功能,如實現(xiàn)USART,I2C等I/O控制芯片,通信算法,音視頻解碼算法等。甚至還可以直接集成ARM等CPU內核和外圍電路。對于驅動工程師而言,我們就直接把它看成由很多邏輯門(與 或 非)組成的可完成一系列功能的芯片。如果完成的功能是CPU,我們就直接把它看成是CPU。驅動工程師眼里的硬件要比IC設計師要宏觀。
編輯:admin 最后修改時間:2018-05-18