A. 內存怎麼向硬碟讀取數據
計算機對硬碟的讀寫,處於效率的考慮,是以扇區為基本單位的。即使計算機只需要硬碟上存儲的某個位元組,也必須一次把這個位元組所在的扇區中的512位元組全部讀入內存,再使用所需的那個位元組。不過,在上文中我們也提到,硬碟上面、磁軌、扇區的劃分表面上是看不到任何痕跡的,雖然磁頭可以根據某個磁軌的應有半徑來對准這個磁軌,但怎樣才能在首尾相連的一圈扇區中找出所需要的某一扇區呢?原來,每個扇區並不僅僅由512個位元組組成的,在這些由計算機存取的數據的前、後兩端,都另有一些特定的數據,這些數據構成了扇區的界限標志,標志中含有扇區的編號和其他信息。計算機就憑借著這些標志來識別扇區
硬碟的數據結構
在上文中,我們談了數據在硬碟中的存儲的一般原理。為了能更深入地了解硬碟,我們還必須對硬碟的數據結構有個簡單的了解。硬碟上的數據按照其不同的特點和作用大致可分為5部分:MBR區、DBR區、FAT區、DIR區和DATA區。我們來分別介紹一下:
1.MBR區
MBR(Main Boot Record 主引導記錄區)�位於整個硬碟的0磁軌0柱面1扇區。不過,在總共512位元組的主引導扇區中,MBR只佔用了其中的446個位元組,另外的64個位元組交給了DPT(Disk Partition Table硬碟分區表)(見表),最後兩個位元組「55,AA」是分區的結束標志。這個整體構成了硬碟的主引導扇區。(圖)
主引導記錄中包含了硬碟的一系列參數和一段引導程序。其中的硬碟引導程序的主要作用是檢查分區表是否正確並且在系統硬體完成自檢以後引導具有激活標志的分區上的操作系統,並將控制權交給啟動程序。MBR是由分區程序(如Fdisk.exe)所產生的,它不依賴任何操作系統,而且硬碟引導程序也是可以改變的,從而實現多系統共存。
下面,我們以一個實例讓大家更直觀地來了解主引導記錄:
例:80 01 01 00 0B FE BF FC 3F 00 00 00 7E 86 BB 00
在這里我們可以看到,最前面的「80」是一個分區的激活標志,表示系統可引導;「01 01 00」表示分區開始的磁頭號為01,開始的扇區號為01,開始的柱面號為00;「0B」表示分區的系統類型是FAT32,其他比較常用的有04(FAT16)、07(NTFS);「FE BF FC」表示分區結束的磁頭號為254,分區結束的扇區號為63、分區結束的柱面號為764;「3F 00 00 00」表示首扇區的相對扇區號為63;「7E 86 BB 00」表示總扇區數為12289622。
2.DBR區
DBR(Dos Boot Record)是操作系統引導記錄區的意思。它通常位於硬碟的0磁軌1柱面1扇區,是操作系統可以直接訪問的第一個扇區,它包括一個引導程序和一個被稱為BPB(Bios Parameter Block)的本分區參數記錄表。引導程序的主要任務是當MBR將系統控制權交給它時,判斷本分區跟目錄前兩個文件是不是操作系統的引導文件(以DOS為例,即是Io.sys和Msdos.sys)。如果確定存在,就把它讀入內存,並把控制權 交給該文件。BPB參數塊記錄著本分區的起始扇區、結束扇區、文件存儲格式、硬碟介質描述符、根目錄大小、FAT個數,分配單元的大小等重要參數。DBR是由高級格式化程序(即Format.com等程序)所產生的。
3.FAT區
在DBR之後的是我們比較熟悉的FAT(File Allocation Table文件分配表)區。在解釋文件分配表的概念之前,我們先來談談簇(Cluster)的概念。文件佔用磁碟空間時,基本單位不是位元組而是簇。一般情況下,軟盤每簇是1個扇區,硬碟每簇的扇區數與硬碟的總容量大小有關,可能是4、8、16、32、64……
同一個文件的數據並不一定完整地存放在磁碟的一個連續的區域內,而往往會分成若干段,像一條鏈子一樣存放。這種存儲方式稱為文件的鏈式存儲。由於硬碟上保存著段與段之間的連接信息(即FAT),操作系統在讀取文件時,總是能夠准確地找到各段的位置並正確讀出。
為了實現文件的鏈式存儲,硬碟上必須准確地記錄哪些簇已經被文件佔用,還必須為每個已經佔用的簇指明存儲後繼內容的下一個簇的簇號。對一個文件的最後一簇,則要指明本簇無後繼簇。這些都是由FAT表來保存的,表中有很多表項,每項記錄一個簇的信息。由於FAT對於文件管理的重要性,所以FAT有一個備份,即在原FAT的後面再建一個同樣的FAT。初形成的FAT中所有項都標明為「未佔用」,但如果磁碟有局部損壞,那麼格式化程序會檢測出損壞的簇,在相應的項中標為「壞簇」,以後存文件時就不會再使用這個簇了。FAT的項數與硬碟上的總簇數相當,每一項佔用的位元組數也要與總簇數相適應,因為其中需要存放簇號。FAT的格式有多種,最為常見的是FAT16和FAT32。
4.DIR區
DIR(Directory)是根目錄區,緊接著第二FAT表(即備份的FAT表)之後,記錄著根目錄下每個文件(目錄)的起始單元,文件的屬性等。定位文件位置時,操作系統根據DIR中的起始單元,結合FAT表就可以知道文件在硬碟中的具體位置和大小了。
5.數據(DATA)區
數據區是真正意義上的數據存儲的地方,位於DIR區之後,占據硬碟上的大部分數據空間。
磁碟的文件系統
經常聽高手們說到FAT16、FAT32、NTFS等名詞,朋友們可能隱約知道這是文件系統的意思。可是,究竟這么多文件系統分別代表什麼含義呢?今天,我們就一起來學習學習:
1.什麼是文件系統?
所謂文件系統,它是操作系統中藉以組織、存儲和命名文件的結構。磁碟或分區和它所包括的文件系統的不同是很重要的,大部分應用程序都基於文件系統進行操作,在不同種文件系統上是不能工作的。
2.文件系統大家族
常用的文件系統有很多,MS-DOS和Windows 3.x使用FAT16文件系統,默認情況下Windows 98也使用FAT16,Windows 98和Me可以同時支持FAT16、FAT32兩種文件系統,Windows NT則支持FAT16、NTFS兩種文件系統,Windows 2000可以支持FAT16、FAT32、NTFS三種文件系統,Linux則可以支持多種文件系統,如FAT16、FAT32、NTFS、Minix、ext、ext2、xiafs、HPFS、VFAT等,不過Linux一般都使用ext2文件系統。下面,筆者就簡要介紹這些文件系統的有關情況:
(1)FAT16
FAT的全稱是「File Allocation Table(文件分配表系統)」,最早於1982年開始應用於MS-DOS中。FAT文件系統主要的優點就是它可以允許多種操作系統訪問,如MS-DOS、Windows 3.x、Windows 9x、Windows NT和OS/2等。這一文件系統在使用時遵循8.3命名規則(即文件名最多為8個字元,擴展名為3個字元)。
(2)VFAT
VFAT是「擴展文件分配表系統」的意思,主要應用於在Windows 95中。它對FAT16文件系統進行擴展,並提供支持長文件名,文件名可長達255個字元,VFAT仍保留有擴展名,而且支持文件日期和時間屬性,為每個文件保留了文件創建日期/時間、文件最近被修改的日期/時間和文件最近被打開的日期/時間這三個日期/時間。
(3)FAT32
FAT32主要應用於Windows 98系統,它可以增強磁碟性能並增加可用磁碟空間。因為與FAT16相比,它的一個簇的大小要比FAT16小很多,所以可以節省磁碟空間。而且它支持2G以上的分區大小。朋友們從附表中可以看出FAT16與FAT32的一不同。
(4)HPFS
高性能文件系統。OS/2的高性能文件系統(HPFS)主要克服了FAT文件系統不適合於高檔操作系統這一缺點,HPFS支持長文件名,比FAT文件系統有更強的糾錯能力。Windows NT也支持HPFS,使得從OS/2到Windows NT的過渡更為容易。HPFS和NTFS有包括長文件名在內的許多相同特性,但使用可靠性較差。
(5)NTFS
NTFS是專用於Windows NT/2000操作系統的高級文件系統,它支持文件系統故障恢復,尤其是大存儲媒體、長文件名。NTFS的主要弱點是它只能被Windows NT/2000所識別,雖然它可以讀取FAT文件系統和HPFS文件系統的文件,但其文件卻不能被FAT文件系統和HPFS文件系統所存取,因此兼容性方面比較成問題。
ext2
這是Linux中使用最多的一種文件系統,因為它是專門為Linux設計,擁有最快的速度和最小的CPU佔用率。ext2既可以用於標準的塊設備(如硬碟),也被應用在軟盤等移動存儲設備上。現在已經有新一代的Linux文件系統如SGI公司的XFS、ReiserFS、ext3文件系統等出現。
小結:雖然上面筆者介紹了6種文件系統,但占統治地位的卻是FAT16/32、NTFS等少數幾種,使用最多的當然就是FAT32啦。只要在「我的電腦」中右擊某個驅動器的屬性,就可以在「常規」選項中(圖)看到所使用的文件系統。
明明白白識別硬碟編號
目前,電子市場上硬碟品牌最讓大家熟悉的無非是IBM、昆騰(Quantum)、希捷(Seagate),邁拓(Maxtor)等「老字型大小」。而這些硬碟型號的編號則各不相同,令人眼花繚亂。其實,這些編號均有一定的規律,表示一些特定?的含義。一般來說,我們可以從其編號來了解硬碟的性能指標,包括介面?類型、轉速、容量等。作為DIY朋友來說,只有自己真正掌握正確識別硬碟編號,在選購硬碟時,就方便得多(以致不被「黑」),至少不會被賣的人說啥是啥。以下舉例說明,供朋友們參考。
一、IBM
IBM是硬碟業的巨頭,其產品幾乎涵蓋了所有硬碟領域。而且IBM還是去年硬碟容量、價格戰的始作蛹者。我們今天能夠用得上經濟上既便宜,而且容量又大的硬碟可都得感謝IBM。
IBM的每一個產品又分為多個系列,它的命名方式為:產品名+系列代號+介面類型+碟片尺寸+轉速+容量。以Deskstar 22GXP的13.5GB硬碟為例,該硬碟的型號為:DJNA-371350,字母D代表Deskstar產品,JN代表Deskstar25GP與22GP系列,A代表ATA介面,3代表3寸碟片,7是7200轉產品,最後四位數字為硬碟容量13.5GB。IBM系列代號(IDE)含義如下:
TT=Deskstar 16GP或14GXP JN=Deskstar 25GP或22GXP RV=Ultrastar 18LZX或36ZX
介面類型含義如下:A=ATA
S與U=Ultra SCSI、Ultra SCSI Wide、Ultra SCSI SCA、增強型SCSI、
增強擴展型SCSI(SCA)
C=Serial Storage Architecture連續存儲體系SCSI L=光纖通道SCSI
二、MAXTOR(邁拓)
MAXTOR是韓國現代電子美國公司的一個獨立子公司,以前該公司的產品也覆蓋了IDE與SCSI兩個方面,但由於SCSI方面的產品缺乏竟爭力而最終放棄了這個高端市場從而主攻IDE硬碟,所以MAXTOR公司應該是如今硬碟廠商中最專一的了。
MAXTOR硬碟編號規則如下:首位+容量+介面類型+磁頭數,MAXTOR?從鑽石四代開始,其首位數字就為9,一直延續到現在,所以大家如今能在電子市場上見到的MAXTOR硬碟首位基本上都為9。另外比較特殊的是MAXTOR編號中有磁頭數這一概念,因為MAXTOR硬碟是大打單碟容量的發起人,所以其硬碟的型號中要將單碟容量從磁頭數中體現出來。單碟容量=2*硬碟總容量/磁頭數。
現以金鑽三代(DiamondMax Plus6800)10.2GB的硬碟為例說明:該硬碟?型號為91024U3,9是首位,1024是容量,U是介面類型UDMA66,3代表該硬碟有3個磁頭,也就是說其中的一個碟片是單面有數據。這個單碟容量就為2*10.2/3=6.8GB。MAXTOR硬碟介面類型字母含義如:
A=PIO模式 D=UDMA33模式 U=UDMA66模式
三、SEAGATE(希捷)
希捷科技公司(Seagate Technology)是世界上最大的磁碟驅動器、磁?盤和讀寫磁頭生產廠家,該公司是一直是IBM、COMPAQ、SONY等業界大戶的硬碟供應商。希捷還保持著業界第一款10000轉硬碟的記錄(捷豹Cheetah系列SCSI)與最大容量(捷豹三代73GB)的記錄,公司的實力由此可見一斑。但?由於希捷一直是以高端應用為主(例如SCSI硬碟),而並不是特別重視低端家用產品的開發,從而導致在DIY一族心目中的地位不如昆騰等硬碟供應商?。好在希捷公司及時注意到了這個問題,不久前投入市場的酷魚(Barracuda)系列就一掃希捷硬碟以往在單碟容量、轉速、噪音、非正常外頻下工作穩?定性、綜合性能上的劣勢。
希捷的硬碟系列從低端到高端的產品名稱分別為:U4系列、Medalist(金牌)系列、U8系列、Medalist Pro(金牌Pro)系列、Barracuda(酷魚)系列。其中Medalist Pro與Barracuda系列是7200轉的產品,其他的是5400轉的產品。硬碟的型號均以ST開頭,現以酷魚10.2GB硬碟為例來說明。該硬碟的型號是:ST310220A,在ST後第一位數字是代表硬碟的尺寸,3就是該硬碟採用3寸碟片,如今其他規格的硬碟已基本上沒有了,所以大家能夠見到?的絕大多數硬碟該位數字均不3,3後面的1022代表的是該硬碟的格式化容量是10.22GB,最後一位數字0是代表7200轉產品。這一點不要混淆與希捷以前的入門級產品Medalist ST38420A混淆。多數希捷的Medalist Pro系列開始,以結尾的產品均代表7200轉硬碟,其它數字結尾(包括1、2)代表5400轉的產品。位於型號最後的字母是硬碟的介面類型。希捷硬碟的介面類型字母含義如下:
A=ATA UDMA33或UDMA66 IDE介面 AG為筆記本電腦專用的ATA介面硬碟。
W為ULTRA Wide SCSI,
其數據傳輸率為40MB每秒 N為ULTRA Narrow SCSI,其數據傳輸率為20MB每秒。
而ST34501W/FC和ST19101N/FC中的FC(Fibre Channel)表示光纖通道,可提供高達每秒100MB的數據傳輸率,並且支持熱插拔。
硬碟及介面標準的發展歷史
一、硬碟的歷史
說起硬碟的歷史,我們不能不首先提到藍色巨人IBM所發揮的重要作用,正是IBM發明了硬碟,並且為硬碟的發展做出了一系列重大貢獻。在發明磁碟系統之前,計算機使用穿孔紙帶、磁帶等來存儲程序與數據,這些存儲方式不僅容量低、速度慢,而且有個大缺陷:它們都是順序存儲,為了讀取後面的數據,必須從頭開始讀,無法實現隨機存取數據。
在1956年9月,IBM向世界展示了第一台商用硬碟IBM 350 RAMAC(Random Access Method of Accounting and Control),這套系統的總容量只有5MB,卻是使用了50個直徑為24英寸的磁碟組成的龐然大物。而在1968年IBM公司又首次提出了「溫徹斯特」Winchester技術。「溫徹斯特」技術的精髓是:「使用密封、固定並高速旋轉的鍍磁碟片,磁頭沿碟片徑向移動,磁頭磁頭懸浮在高速轉動的碟片上方,而不與碟片直接接觸」,這便是現代硬碟的原型。在1973年IBM公司製造出第一台採用「溫徹期特」技術製造的硬碟,從此硬碟技術的發展有了正確的結構基礎。1979年,IBM再次發明了薄膜磁頭,為進一步減小硬碟體積、增大容量、提高讀寫速度提供了可能。70年代末與80年代初是微型計算機的萌芽時期,包括希捷、昆騰、邁拓在內的許多著名硬碟廠商都誕生於這一段時間。1979年,IBM的兩位員工Alan Shugart和Finis Conner決定要開發像5.25英寸軟碟機那樣大小的硬碟驅動器,他們離開IBM後組建了希捷公司,次年,希捷發布了第一款適合於微型計算機使用的硬碟,容量為5MB,體積與軟碟機相仿。
PC時代之前的硬碟系統都具有體積大、容量小、速度慢和價格昂貴的特點,這是因為當時計算機的應用范圍還太小,技術與市場之間是一種相互制約的關系,使得包括存儲業在內的整個計算機產業的發展都受到了限制。 80年代末期IBM對硬碟發展的又一項重大貢獻,即發明了MR(Magneto Resistive)磁頭,這種磁頭在讀取數據時對信號變化相當敏感,使得碟片的存儲密度能夠比以往20MB每英寸提高了數十倍。1991年IBM生產的3.5英寸的硬碟使用了MR磁頭,使硬碟的容量首次達到了1GB,從此硬碟容量開始進入了GB數量級的時代 。1999年9月7日,邁拓公司(Maxtor)_宣布了首塊單碟容量高達10.2GB的ATA硬碟,從而把硬碟的容量引入了一個新里程碑。
二、介面標準的發展
(1)IDE和EIDE的由來
最早的IBM PC並不帶有硬碟,它的BIOS及DOS 1.0操作系統也不支持任何硬碟,因為系統的內存只有16KB,就連軟碟機和DOS都是可選件。後來DOS 2引入了子目錄系統,並添加了對「大容量」存儲設備的支持,於是一些公司開始出售供IBM PC使用的硬碟系統,這些硬碟與一塊控制卡、一個獨立的電源被一起裝在一個外置的盒子里,並通過一條電纜與插在擴展槽中的一塊適配器相連,為了使用這樣的硬碟,必須從軟碟機啟動,並載入一個專用設備驅動程序。
1983年IBM公司推出了PC/XT,雖然XT仍然使用8088 CPU,但配置卻要高得多,加上了一個10MB的內置硬碟,IBM把控制卡的功能集成到一塊介面控制卡上,構成了我們常說的硬碟控制器。其介面控制卡上有一塊ROM晶元,其中存有硬碟讀寫程序,直到基於80286處理器的PC/AT的推出,硬碟介面控製程序才被加入到了主板的BIOS中。
PC/XT和PC/AT機器使用的硬碟被稱為MFM硬碟或ST-506/412硬碟,MFM(Modified Frequency Molation)是指一種編碼方案,而ST-506/412則是希捷開發的一種硬碟介面,ST-506介面不需要任何特殊的電纜及接頭,但是它支持的傳輸速度很低,因此到了1987年左右這種介面就基本上被淘汰了。
邁拓於1983年開發了ESDI(Enhanced Small Drive Interface)介面。這種介面把編解碼器放在了硬碟本身之中,它的理論傳輸速度是ST-506的2~4倍。但由於成本比較高,九十年代後就逐步被淘汰掉了。
IDE(Integrated Drive Electronics)實際上是指把控制器與盤體集成在一起的硬碟驅動器,這樣減少了硬碟介面的電纜數目與長度,數據傳輸的可靠性得到了增強,硬碟製造起來變得更容易,對用戶而言,硬碟安裝起來也更為方便。IDE介面也叫ATA(Advanced Technology Attachment)介面。
ATA介面最初是在1986年由CDC、康柏和西部數據共同開發的,他們決定使用40芯的電纜,最早的IDE硬碟大小為5英寸,容量為40MB。ATA介面從80年代末期開始逐漸取代了其它老式介面。
80年代末期IBM發明了MR(Magneto Resistive)磁阻磁頭,這種磁頭在讀取數據時對信號變化相當敏感,使得碟片的存儲密度能夠比以往的20MB/in2提高數十上百倍。1991年,IBM生產的3.5英寸硬碟0663-E12使用了MR磁頭,容量首次達到了1GB,從此硬碟容量開始進入了GB數量級,直到今天,大多數硬碟仍然採用MR磁頭。
人們在談論硬碟時經常講到PIO模式和DMA模式,它們是什麼呢?目前硬碟與主機進行數據交換的方式有兩種,一種是通過CPU執行I/O埠指令來進行數據的讀寫;另外,一種是不經過CPU的DMA方式。
PIO模式即Programming Input/Output Model。這種模式使用PC I/O埠指令來傳送所有的命令、狀態和數據。由於驅動器中有多個緩沖區,對硬碟的讀寫一般採用I/O串操作指令,這種指令只需一次取指令就可以重復多次地完成I/O操作,因此,達到高的數據傳輸率是可能的。
DMA即Direct Memory Access。它表示數據不經過CPU,而直接在硬碟和內存之間傳送。在多任務操作系統內,如OS/2、Linux、Windows NT等,當磁碟傳輸數據時,CPU可騰出時間來做其它事情,而在DOS/Windows3.X環境里,CPU不得不等待數據傳輸完畢,所以在這種情況下,DMA方式的意義並不大。
DMA方式有兩種類型:第三方DMA(third-party DMA)和第一方DMA(first-party DMA)(或稱匯流排主控DMA,Busmastering DMA)。第三方DMA通過系統主板上的DMA控制器的仲裁來獲得匯流排和傳輸數據。而第一方DMA,則完全由介面卡上的邏輯電路來完成,當然這樣就增加了匯流排主控介面的復雜性和成本。現在,所有較新的晶元組均支持匯流排主控DMA。
(2)SCSI介面
(Small Computer System Interface小型計算機系統介面)是一種與ATA完全不同的介面,它不是專門為硬碟設計的,而是一種匯流排型的系統介面,每個SCSI匯流排上可以連接包括SCSI控制卡在內的8個SCSI設備。SCSI的優勢在於它支持多種設備,傳輸速率比ATA介面快得多但價格也很高,獨立的匯流排使得它對CPU的佔用率很低。 最早的SCSI是於1979年由美國的Shugart公司(Seagate希捷公司的前身)制訂的,90年代初,SCSI發展到了SCSI-2,1995年推出了SCSI-3,其俗稱Ultra SCSI, 1997年推出了Ultra 2 SCSI(Fast-40),其採用了LVD(Low Voltage Differential,低電平微分)傳輸模式,16位的Ultra2SCSI(LVD)介面的最高傳輸速率可達80MB/S,允許介面電纜的最長為12米,大大增加了設備的靈活性。1998年,更高數據傳輸率的Ultra160/m SCSI(Wide下的Fast-80)規格正式公布,其最高數據傳輸率為160MB/s,昆騰推出的Atlas10K和Atlas四代等產品支持Ultra3 SCSI的Ultra160/m傳輸模式。
SCSI硬碟具備有非常優秀的傳輸性能。但由於大多數的主板並不內置SCSI介面,這就使得連接SCSI硬碟必須安裝相應的SCSI卡,目前關於SCSI卡有三個正式標准,SCSI-1,SCSI-2和SCSI-3,以及一些中間版本,要使SCSI硬碟獲得最佳性能就必須保證SCSI卡與SCSI硬碟版本一致(目前較新生產的SCSI硬碟和SCSI卡都是向前兼容的,不一定必須版本一致)。
(3)IEEE1394:IEEE1394又稱為Firewire(火線)或P1394,它是一種高速串列匯流排,現有的IEEE1394標准支持100Mbps、200Mbps和400Mbps的傳輸速率,將來會達到800Mbps、1600Mbps、3200Mbps甚至更高,如此高的速率使得它可以作為硬碟、DVD、CD-ROM等大容量存儲設備的介面。IEEE1394將來有望取代現有的SCSI匯流排和IDE介面,但是由於成本較高和技術上還不夠成熟等原因,目前仍然只有少量使用IEEE1394介面的產品,硬碟就更少了。
B. 嵌入式系統是什麼
嵌入式系統是什麼
嵌入式系統是一種專用的計算機系統,作為裝置或設備的一部分。通常嵌入式Web技術嵌入式系統是一個控製程序存儲在ROM中的嵌入式處理器控制板。下面是我整理的嵌入式系統簡介,希望大家理解!
嵌入式它的定義實在是太廣泛了.從字面意義理解起來甚至容易讓人糊塗,現在嵌入式系統的概念也有被濫用的嫌疑。在一般的文獻中嵌入式系統是這樣定義的:嵌入式系統是以應用為中心,以計算機技術為基礎,並且軟硬體可裁減,適用於應用系統對功能、可靠性、成本、體積和功耗有嚴格要求的計算機系統。但是這種定義較為古板,大家公認的比較有前途的嵌入式系統應該是:硬體以一個高性能的處理器(通常是32位處理器)為基礎,軟體以一個多任務操作系統為基礎的綜合平台。這個平台的處理能力是以往單片機所無法比擬的,它涵蓋了軟體和硬體兩個方面,因此可稱之為嵌入式系統。
什麼叫嵌入式系統:
注意,這里的重點是“系統”而不是“嵌入式”。在明確了嵌入式系統基本定義的基礎上.可從以下幾方面來理解嵌入式系統。
1、嵌入式系統是面向用戶、面向產品、面向應用的。嵌入式系統是與應用緊密結合的,它具有很強的專用性,必須結合實際系統需求進行合理的裁減利用。嵌入式系統和具體應用有機地結合在一起,它的升級換代也是和具體產品同步進行,因此嵌人式系統產品進入市場後也具有較長的生命周期。
2、嵌入式系統是將先進的計算機技術、半導體技術、電子技術和各個行業技術的具體應用相結合的產物。這一點就決定了它必然是一個技術密集、資金密集、高度分散、不斷創新的知識集成系統。
3、嵌入式系統必須根據應用需求對軟硬體進行裁減.滿足應用系統的功能、可靠性、成本和體積等要求。為了提高執行速度和系統可靠性,嵌入式系統中的軟體一般都固化在存儲器晶元或微處理器機本身中,而不是存儲於磁碟等載體中。
4、嵌入式系統本身不具備自主開發能力,即使設計完成以後用戶通常也是不能對其中的程序功能進行修改的,必須有一套相應的開發工具和環境才能進行開發。
實際上.凡是與產品結合在一起的具有嵌入式特點的控制系統都可以叫嵌入式系統。現在人們講嵌入式系統時,某種程度上指的是近些年比較熱的具有操作系統的嵌入式系統。
系統組成
一個嵌入式系統裝置一般都由嵌入式計算機系統和執行裝置組成,嵌入式計算機系統是整個嵌入式系統的核心,由硬體層、中間層、系統軟體層和應用軟體層組成。執行裝置也稱為被控對象,它可以接受嵌入式計算機系統發出的控制命令,執行所規定的操作或任務。執行裝置可以很簡單,如手機上的一個微小型的電機,當手機處於震動接收狀態時打開;也可以很復雜,如SONY智能機器狗,上面集成了多個微小型控制電機和多種感測器,從而可以執行各種復雜的動作和感受各種狀態信息。
1)硬體層
硬體層中包含嵌入式微處理器、存儲器(SDRAM、ROM、Flash等)、通用設備介面和I/O介面(A/D、D/A、I/O等)。在一片嵌入式處理器基礎上添加電源電路、時鍾電路和存儲器電路,就構成了一個嵌入式核心控制模塊。其中操作系統和應用程序都可以固化在ROM中。
(1)嵌入式微處理器
嵌入式系統硬體層的核心是嵌入式微處理器,嵌入式微處理器與通用CPU最大的不同在於嵌入式微處理器大多工作在為特定用戶群所專用設計的系統中,它將通用CPU許多由板卡完成的任務集成在晶元內部,從而有利於嵌入式系統在設計時趨於小型化,同時還具有很高的效率和可靠性。
嵌入式微處理器的體系結構可以採用馮·諾依曼體系或哈佛體系結構;指令系統可以選用精簡指令系統(Reced Instruction Set Computer,RISC)和復雜指令系統CISC(Complex Instruction Set Computer,CISC)。RISC計算機在通道中只包含最有用的指令,確保數據通道快速執行每一條指令,從而提高了執行效率並使CPU硬體結構設計變得更為簡單。
嵌入式微處理器有各種不同的體系,即使在同一體系中也可能具有不同的時鍾頻率和數據匯流排寬度,或集成了不同的外設和介面。據不完全統計,目前全世界嵌入式微處理器已經超過1000多種,體系結構有30多個系列,其中主流的體系有ARM、MIPS、PowerPC、X86和SH等。但與全球PC市場不同的是,沒有一種嵌入式微處理器可以主導市場,僅以32位的產品而言,就有100種以上的嵌入式微處理器。嵌入式微處理器的選擇是根據具體的應用而決定的。
(2)存儲器
嵌入式系統需要存儲器來存放和執行代碼。嵌入式系統的存儲器包含Cache、主存和輔助存儲器。
Cache是一種容量小、速度快的存儲器陣列它位於主存和嵌入式微處理器內核之間,存放的是最近一段時間微處理器使用最多的程序代碼和數據。在需要進行數據讀取操作時,微處理器盡可能的從Cache中讀取數據,而不是從主存中讀取,這樣就大大改善了系統的性能,提高了微處理器和主存之間的數據傳輸速率。Cache的主要目標就是:減小存儲器(如主存和輔助存儲器)給微處理器內核造成的`存儲器訪問瓶頸,使處理速度更快,實時性更強。
在嵌入式系統中Cache全部集成在嵌入式微處理器內,可分為數據Cache、指令Cache或混合Cache,Cache的大小依不同處理器而定。一般中高檔的嵌入式微處理器才會把Cache集成進去。
主存是嵌入式微處理器能直接訪問的寄存器,用來存放系統和用戶的程序及數據。它可以位於微處理器的內部或外部,其容量為256KB~1GB,根據具體的應用而定,一般片內存儲器容量小,速度快,片外存儲器容量大。
常用作主存的存儲器有:
ROM類 NOR Flash、EPROM和PROM等。
RAM類 SRAM、DRAM和SDRAM等。
其中NOR Flash 憑借其可擦寫次數多、存儲速度快、存儲容量大、價格便宜等優點,在嵌入式領域內得到了廣泛應用。
3>輔助存儲器
輔助存儲器用來存放大數據量的程序代碼或信息,它的容量大、但讀取速度與主存相比就慢的很多,用來長期保存用戶的信息。
嵌入式系統中常用的外存有:硬碟、NAND Flash、CF卡、MMC和SD卡等。
(3)通用設備介面和I/O介面
嵌入式系統和外界交互需要一定形式的通用設備介面,如A/D、D/A、I/O等,外設通過和片外其他設備的或感測器的連接來實現微處理器的輸入/輸出功能。每個外設通常都只有單一的功能,它可以在晶元外也可以內置晶元中。外設的種類很多,可從一個簡單的串列通信設備到非常復雜的802.11無線設備。
目前嵌入式系統中常用的通用設備介面有A/D(模/數轉換介面)、D/A(數/模轉換介面),I/O介面有RS-232介面(串列通信介面)、Ethernet(乙太網介面)、USB(通用串列匯流排介面)、音頻介面、VGA視頻輸出介面、I2C(現場匯流排)、SPI(串列外圍設備介面)和IrDA(紅外線介面)等。
2)中間層
硬體層與軟體層之間為中間層,也稱為硬體抽象層(Hardware Abstract Layer,HAL)或板級支持包(Board Support Package,BSP),它將系統上層軟體與底層硬體分離開來,使系統的底層驅動程序與硬體無關,上層軟體開發人員無需關心底層硬體的具體情況,根據BSP 層提供的介面即可進行開發。該層一般包含相關底層硬體的初始化、數據的輸入/輸出操作和硬體設備的配置功能。BSP具有以下兩個特點。
硬體相關性:因為嵌入式系統的硬體環境具有應用相關性,而作為上層軟 件與硬體平台之間的介面,BSP需要為操作系統提供操作和控制具體硬體的方法。[1]
操作系統相關性:不同的操作系統具有各自的軟體層次結構,因此,不同的操作系統具有特定的硬體介面形式。
實際上,BSP是一個介於操作系統和底層硬體之間的軟體層次,包括了系統中大部分與硬體聯系緊密的軟體模塊。設計一個完整的BSP需要完成兩部分工作:嵌入式系統的硬體初始化以及BSP功能,設計硬體相關的設備驅動。
;