日常生活離不開各類電子產(chǎn)品,我們常見的電子產(chǎn)品通常以電路板作為載體,包含信息采集,信息處理,存儲,執(zhí)行等功能。
對于工程師來說,比起電路板,說開發(fā)板可能更親切一些。由于工程師在研發(fā)初期,大都在開發(fā)板上驗(yàn)證功能,可以說開發(fā)板是所有電子設(shè)備最原始的狀態(tài)。開發(fā)板與存儲之間有什么樣的關(guān)聯(lián)呢?
開發(fā)板:MCU類VS Linux類 不同的存儲方式
根據(jù)處理器類型,開發(fā)板一般分為兩類:MCU類和 Linux 類。它們二者的存儲方式還是有很大的差異的。
首先是MCU類開發(fā)板,MCU就是工程師口中的單片機(jī),采用MCU的系統(tǒng)一般僅需要簡單的操作或者控制,比如接收按鈕或按鍵的輸入信號,按照事先編好的程序,指揮馬達(dá)和LCD的外圍功能電路動作。
下圖就是一個MCU系統(tǒng)的主要組成部分:
可以很明顯的看出來MCU類的開發(fā)板它的存儲功能靠內(nèi)部存儲就足夠了。
內(nèi)部存儲分為ROM和RAM兩大類,存儲空間大小在幾十到幾百KB不等。如果不運(yùn)行操作系統(tǒng)和圖形系統(tǒng),MCU控制指令和代碼就會相對簡單,內(nèi)部ROM和RAM可以滿足大多數(shù)應(yīng)用的系統(tǒng)存儲要求。
另外一類是Linux類開發(fā)板,這類開發(fā)板的處理器我們最常見的有Arm Cortex A系列。
目前主流Linux開發(fā)板運(yùn)行的是Linux系統(tǒng),采用的多是Arm Cortex A系列的處理器。同Windows操作系統(tǒng)一樣,Linux是一種開放源代碼,功能強(qiáng)大、可靠、穩(wěn)定性強(qiáng)、靈活而且具有極大的伸縮性的操作系統(tǒng)。
從下圖可以看出,Arm Cortex A處理器的內(nèi)部存儲有96KB的ROM和128KB的RAM。
如果不跑操作系統(tǒng),做一些簡單的輸入輸出控制,代碼量不多的話,自帶的內(nèi)部存儲ROM和RAM是夠用的。但是Arm Cortex A處理器的運(yùn)算資源很強(qiáng)大,通常是使用在嵌入式產(chǎn)品上,嵌入式產(chǎn)品的軟件是需要跑Linux操作系統(tǒng)的。
它的軟件方面主要分為兩大塊:Linux內(nèi)核和用戶應(yīng)用程序。如果Linux使用比較輕量級的busybox來做文件系統(tǒng),使用版本比較低的內(nèi)核kernel 3.2最終編譯完后,Linux內(nèi)核鏡像大小在4-10M,最精簡的文件系統(tǒng)就在16M左右,除此之外,用戶另外用戶肯定會在這個系統(tǒng)之上搭建自己的復(fù)雜的業(yè)務(wù)邏輯,要想支撐起比較復(fù)雜的用戶應(yīng)用程序,僅靠處理器的內(nèi)部存儲空間顯然是不夠的。
大家看看手邊的Linux開發(fā)板,不難發(fā)現(xiàn)他們都額外增加了獨(dú)立的存儲芯片:SDARM和FLASH。
Linux開發(fā)板上的外部存儲芯片
典型的Linux開發(fā)板,比如大家都很熟悉的樹莓派4,使用的外部存儲芯片就是美光的8GB LPDDR4 SDRAM。
或許有人就疑惑了:為什么是外接存儲芯片,而不是直接在處理器芯片內(nèi)置大容量Flash和RAM?
原因有很多,比如成本問題。如果單純的加大RAM會占用很多硅片面積,這也會直接導(dǎo)致芯片價格的增加。在同樣的硅片上,占用硅片面積大會使得切割出來的芯片晶圓數(shù)量減少。再者,RAM的工藝繁雜,RAM所占硅片的面積大,就會容易產(chǎn)生缺陷,導(dǎo)致芯片的整體良品率下降。
外部存儲芯片如何與處理器進(jìn)行工作的呢?
把Linux開發(fā)板看成一個大工廠,處理器是加工車間,外部的存儲芯片則相當(dāng)于倉庫。為了提升工廠的產(chǎn)能,一是提高處理器的性能,這樣可以提升加工車間的效率;二是縮短原材料從倉庫到加工車間的時間,中間的臨時小倉庫,堆放目前專門生產(chǎn)的產(chǎn)品的原材料,可以大大縮短制造時間。小倉庫相當(dāng)于存儲芯片中的DDR SDRAM,大倉庫則相當(dāng)于存儲芯片中的Flash。
開發(fā)板上的DDR SDRAM用來保存用戶程序在運(yùn)行時使用到的數(shù)據(jù)。而Flash,負(fù)責(zé)存儲應(yīng)用程序等,就如電腦中的硬盤作用。
處理器,DDR SDRAM和Flash之間是如何進(jìn)行數(shù)據(jù)傳輸?shù)模?/strong>
以運(yùn)行用戶程序?yàn)槔绦驎远M(jìn)制碼的形式存在Flash中。當(dāng)想要運(yùn)行某個用戶程序時,處理器會先從Flash中讀取待運(yùn)行的程序放入DDR中。處理器與DDR實(shí)時進(jìn)行數(shù)據(jù)傳輸,保證運(yùn)行的速度。
開發(fā)板上的DDR SDRAM用來保存用戶程序在運(yùn)行時使用到的數(shù)據(jù)。
以美光的MT41K128M16JT-125 芯片(DDR3芯片)為例,速度可達(dá)800MHz的2GB DDR3 SDRAM。DDR3芯片的管腳較為復(fù)雜,不過大體上可以分成5類:電源線,時鐘線地址線,數(shù)據(jù)線,控制線(在不同的容量芯片當(dāng)中地址線和數(shù)據(jù)線的數(shù)目是變化的)。
下圖的DRAM_ADDR[0:15],這是16根地址線,讓處理器可以準(zhǔn)確的訪問DDR3芯片。然后是DRAM_DATA[0:15],我們可以看到16位的并行數(shù)據(jù)線,用于DDR3和處理器之間的數(shù)據(jù)傳輸。
開發(fā)板上的Flash,負(fù)責(zé)存儲應(yīng)用程序等,就如電腦中的硬盤作用,直接與處理器相連。
以美光的MT29F2G08ABAEAWP芯片為例,這是一顆Nand Flash芯片雖然有48個管腳,但是實(shí)際上使用到的管腳也就十多個,比如有:
復(fù)用的數(shù)據(jù)管腳,用于數(shù)據(jù)、地址、命令等信息;CLE:命令鎖存使能,在輸入命令之前,先要拉高CLE;ALE:地址鎖存使能,在輸入地址之前,先要拉高ALE;CE#:芯片使能,在操作Nand Flash之前,先要拉低CE#;RE#:讀使能,在讀取數(shù)據(jù)之前,先要拉低RE#;WE#:寫使能,在寫取數(shù)據(jù)之前,先要拉低WE#;WP#:寫保護(hù),拉低WP之后,將無法對芯片進(jìn)行寫操作;R/B#:Ready/Busy Output,平時R/B為高電平狀態(tài),但當(dāng)NAND進(jìn)行編程、隨機(jī)讀或擦除操作時變?yōu)榈碗娖綘顟B(tài),操作完成后又變?yōu)楦唠娖綘顟B(tài)。
處理器與Nand Flash芯片通過8 bit的并行總線進(jìn)行連接,操作CLE和ALE,可以實(shí)現(xiàn)對8個IO管腳的數(shù)據(jù)類型復(fù)用。這樣做有一個好處,就是可以大大簡化的硬件電路的設(shè)計,避免了繁瑣的硬件連線。同時,為了加強(qiáng)處理器對Nand Flash讀寫操作的穩(wěn)定性,圖中CE,R/B和WP三個控制管腳被電阻上拉到高電平。
NAND Flash的操作通過一系列的命令來完成。命令一共分成9大類,包括復(fù)位操作、識別操作、配置操作、狀態(tài)操作、地址操作、讀操作、寫(編程)操作、擦除操作以及寫回操作。
最先進(jìn)的DDR5時代已來
工程師們執(zhí)著于增加電子產(chǎn)品的運(yùn)行速度及存儲空間,使得開發(fā)板上的存儲芯片容量正不斷增加。決定電子設(shè)備性能的核心除了處理器之外,存儲芯片的讀取速度也成為一個非常重要的因素。
迄今為止技術(shù)上最為先進(jìn)的 DDR5 ,比上一代DDR4提升至少 85%,已經(jīng)出現(xiàn)在工程師的手中了。
審核編輯:湯梓紅
-
處理器
+關(guān)注
關(guān)注
68文章
19889瀏覽量
235098 -
mcu
+關(guān)注
關(guān)注
146文章
17974瀏覽量
366634 -
Linux
+關(guān)注
關(guān)注
87文章
11509瀏覽量
213729 -
開發(fā)板
+關(guān)注
關(guān)注
25文章
5677瀏覽量
104597
發(fā)布評論請先 登錄
高速SDRAM存儲器接口電路設(shè)計(Altera FPGA開發(fā)板)

異步SRAM存儲器接口電路設(shè)計(Altera FPGA開發(fā)板)

嵌入式開發(fā)板_iTOP-4412開發(fā)板linux系統(tǒng)存儲空間
fpga開發(fā)板用途,fpga開發(fā)板價格
開發(fā)板是什么_開發(fā)板有什么用_開發(fā)板怎么用(使用步驟教程)
ALIENTEK開發(fā)板的簡介

評論