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