|
還是抽不出時(shí)間靜下心來寫一篇技術(shù)方面的東西,總不能讓空間閑得發(fā)霉,今天就找點(diǎn)兒話題“嵌入式系統(tǒng)”閑扯幾句。
由于目前我也只是一個(gè)菜鳥,對(duì)專業(yè)知識(shí)的掌握還不夠完善。加上本人的語文水平很爛(自打上學(xué)那會(huì)兒,語文成績(jī)一直是處于及格水平),寫起文章來措辭用句不免有些錯(cuò)誤,所以,還請(qǐng)“大蝦”們不要扔板磚,覺得文章不錯(cuò)的話,就順便頂一個(gè)哈。。。
什么是“嵌入式系統(tǒng)”?這個(gè)問題看上去很模糊,很抽象,很難回答。對(duì),沒錯(cuò),它就是一個(gè)比較抽象的沒有一個(gè)統(tǒng)一標(biāo)準(zhǔn)定義的事物。從字面意思上看上去有2個(gè)內(nèi)容構(gòu)成,即“嵌入式”和“系統(tǒng)”!跋到y(tǒng)”給人的第一感覺應(yīng)該是一個(gè)很大的東西。其實(shí),在嵌入式系統(tǒng)領(lǐng)域內(nèi),它可以很大,也可以很小。而“嵌入式”從字面意思理解貌似是嵌入到某個(gè)東西里面。對(duì),它就是嵌入到一個(gè)設(shè)備或裝備里面的。一般的定義就是:用于控制、監(jiān)視或者輔助操作機(jī)器和設(shè)備的裝置。這樣,我們就可以理解“嵌入式系統(tǒng)”就是一個(gè)用來控制、監(jiān)視或者輔助操作的一個(gè)系統(tǒng)。當(dāng)然,它包括軟件系統(tǒng)和硬件系統(tǒng)。目前,國內(nèi)普遍認(rèn)同的嵌入式系統(tǒng)的定義為:以應(yīng)用為中心,以計(jì)算機(jī)技術(shù)為基礎(chǔ),軟硬件可裁剪,適應(yīng)應(yīng)用系統(tǒng)對(duì)功能、可靠性、成本、體積和功耗等等嚴(yán)格要求的專用計(jì)算機(jī)系統(tǒng)。呵呵,說了這么一大溜,都是廢話。說白了,嵌入式系統(tǒng)就是一個(gè)計(jì)算機(jī)系統(tǒng),只不過跟我們?nèi)粘I钪兴玫挠?jì)算機(jī)系統(tǒng)不一樣罷了。它的軟硬件要遠(yuǎn)比通用計(jì)算機(jī)系統(tǒng)小,可是它對(duì)穩(wěn)定性和可靠性的要求卻遠(yuǎn)比通用計(jì)算機(jī)系統(tǒng)高。舉個(gè)例子,你的通用計(jì)算機(jī)系統(tǒng)容易中病毒,而嵌入式系統(tǒng)就沒有中毒的現(xiàn)象,它的可靠性是非常高的。硬件方面,它也有如同我們?nèi)粘I钪兴玫挠?jì)算機(jī)里面的CPU,只不過這種CPU的性能不如通用計(jì)算機(jī)里面的CPU性能高而已。軟件方面,它可以沒有操作系統(tǒng),也可以搭載操作系統(tǒng)。程序源代碼一般都是用C語言編寫的,包括操作系統(tǒng)的源代碼。
在當(dāng)代生活中,嵌入式系統(tǒng)的應(yīng)用越來越多。可以說,從你出生的那一刻起,到你生命的最后一刻,嵌入式系統(tǒng)無時(shí)無刻不都在你的身邊并且深深地影響著你的生活。例如,你打電話使用的iPhone,你玩游戲使用的iPAD,你看電視節(jié)目使用的電視機(jī)數(shù)字機(jī)頂盒和電視機(jī),你上網(wǎng)使用的路由器或者M(jìn)odem,你出門所駕駛和乘坐的交通工具,你烹飪時(shí)所使用的電磁爐和微波爐,你生活中使用的洗衣機(jī)、空調(diào)、冰箱等等,還有工廠里面自動(dòng)化生產(chǎn)的機(jī)器設(shè)備以及醫(yī)院里面的醫(yī)療儀等等等等?梢哉f,你所看到的任何事物都是嵌入式系統(tǒng)應(yīng)用的典型代表。所以說,嵌入式系統(tǒng)無時(shí)無刻不影響并改善你的生活,就像我的QQ簽名所說的一樣:嵌入式,讓生活更美好。。。
在嵌入式系統(tǒng)里面,我不得不表一表一個(gè)極其重要的成員,它就是“單片機(jī)”。單片機(jī)是啥玩意兒,其實(shí)也就是塊芯片而已。我從2009年第一次接觸單片機(jī),至今已經(jīng)快4年了。通常我們大家都有1個(gè)模糊的概念,都會(huì)問:“單片機(jī)系統(tǒng)是不是嵌入式系統(tǒng)呢?”O(jiān)f Course!!!只不過呢,我們現(xiàn)在把它看成一個(gè)低端的嵌入式系統(tǒng)。(不過現(xiàn)在ARM內(nèi)核的32位單片機(jī)可已經(jīng)不低端了哦!真要是和一般的ARM9火拼起來,鹿死誰手還說不定呢!這些高端的單片機(jī)干起活來,那也是崗崗滴。。。)所以可以這么說,單片機(jī)系統(tǒng)一定是屬于嵌入式系統(tǒng),但是嵌入式系統(tǒng)不一定指單片機(jī)系統(tǒng)。高端的嵌入式系統(tǒng)一般指的是像“ARM+Linux”這樣結(jié)構(gòu)的系統(tǒng),它側(cè)重在軟件上面搭載操作系統(tǒng),在操作系統(tǒng)上面還搭載一些應(yīng)用程序。這樣,整個(gè)系統(tǒng)設(shè)備運(yùn)行更可靠更智能化。說了這么多,似乎有點(diǎn)抽象。舉個(gè)例子你就明白了。你買了一款智能手機(jī),像現(xiàn)在的智能手機(jī)里面一般都會(huì)搭載Android操作系統(tǒng),這個(gè)便是操作系統(tǒng)層。然后應(yīng)用程序?qū)泳褪悄愕倪@款手機(jī)上安裝了像騰訊QQ,搜狗輸入法,憤怒的小鳥這些應(yīng)用軟件之類的。這樣,你手里拿的便是一個(gè)高端的嵌入式系統(tǒng)的典型應(yīng)用案例。
嵌入式系統(tǒng)里面還有一個(gè)更加重要的成員,它就是“ARM”!癆RM”是什么?它的英語原文意思我想不用我說大家都知道它是“手臂,胳膊”的意思。在嵌入式系統(tǒng)里,它是英國的一家電子半導(dǎo)體微處理器的著名企業(yè),公司總部在英國劍橋。ARM公司是專門從事基于RISC技術(shù)芯片設(shè)計(jì)開發(fā)的公司,它只作為知識(shí)產(chǎn)權(quán)的供應(yīng)商,本身卻不直接從事芯片的生產(chǎn),靠轉(zhuǎn)讓設(shè)計(jì)許可由各家半導(dǎo)體設(shè)計(jì)公司設(shè)計(jì)各具自身特色的處理器芯片。目前,世界上各大著名的半導(dǎo)體生產(chǎn)廠商已經(jīng)從ARM公司購買了其設(shè)計(jì)的ARM微處理器核,根據(jù)各自不同的應(yīng)用領(lǐng)域,加入適當(dāng)?shù)耐鈬娐,從而形成了自己的ARM微處理器芯片進(jìn)入市場(chǎng)。目前,世界著名的半導(dǎo)體廠商ATMEL,NXP,TI,F(xiàn)REESCALE,ST都有了自己的ARM微處理器,其市場(chǎng)呈現(xiàn)出“百花齊放,百家爭(zhēng)鳴”的狀態(tài)。
那么,ARM微處理器有哪些種類呢?其實(shí),按照ARM內(nèi)核來分,原來ARM公司走的路線是這樣的:最開始,ARM公司設(shè)計(jì)的ARM7內(nèi)核是當(dāng)時(shí)主流的嵌入式處理器,該內(nèi)核是三級(jí)流水線和馮·諾依曼架構(gòu),我們大家常用的51單片機(jī)也是馮·諾依曼架構(gòu),好有親切感,哈哈哈。。。因?yàn)槠涮幚硭俣戎挥?.9MIPS/MHz,處理能力非常有限,后來就誕生了ARM9。該內(nèi)核是5級(jí)流水線,提供1.1MIPS/MHz的哈佛總線架構(gòu),其處理性能明顯大大提升。ARM9主要包括ARM9TDMI和ARM9EJ-S等內(nèi)核,而ARM7內(nèi)核典型代表就是ARM7TDMI。其實(shí)ARM9不僅僅是在處理性能上面比ARM7上一個(gè)檔次,更重要的是其內(nèi)部硬件比ARM7更加復(fù)雜,支持更多一種指令集技術(shù)。最最重要的一點(diǎn),從ARM9開始,其微處理器開始能夠支持加載大型的操作系統(tǒng),如LINUX,Windows CE,Vxworks,Android等等,這4中操作系統(tǒng)是當(dāng)今嵌入式領(lǐng)域內(nèi)最為歡迎的幾種。首先,Linux是一種自由和開放源碼的類Unix操作系統(tǒng),其最大的特點(diǎn)就是源碼開放,所以它是目前在搞嵌入式技術(shù)開發(fā)的工程師們當(dāng)中很受歡迎的一種操作系統(tǒng)。Windows CE操作系統(tǒng)是微軟公司的,它很變態(tài),源碼不開放,這的確讓人很蛋疼,使得想學(xué)習(xí)它的人可能比較困難。但是,它為什么還有如此好的市場(chǎng)空間呢?為什么還能在如此眾多實(shí)時(shí)操作系統(tǒng)的市場(chǎng)上站住腳呢?其實(shí)很簡(jiǎn)單,原因就在于它的一個(gè)特色和靚點(diǎn):界面非常友好。。。它提供了非常友好的圖形化界面,就如同我們?nèi)粘I钏玫碾娔X一樣,操作簡(jiǎn)單。就憑這一點(diǎn),它就能稱霸一方,呵呵。。。其實(shí),Windows CE操作系統(tǒng)很像我們以前使用的Windows 98操作系統(tǒng)一樣,大家想想就應(yīng)該知道了。就是因?yàn)檫@一點(diǎn),Windows CE操作系統(tǒng)在目前汽車電子領(lǐng)域內(nèi)應(yīng)用的最多,最主要的就是汽車的車載導(dǎo)航系統(tǒng)。
等下,喝口水,嘴巴都講干了呵呵。。。接下來,我們聊一聊Vxworks。這款嵌入式實(shí)時(shí)操作系統(tǒng)在民用領(lǐng)域比較少。它是美國溫瑞尓公司于1983年設(shè)計(jì)開發(fā)的。其良好的可靠性和實(shí)時(shí)性被廣泛的應(yīng)用在軍事,航空,航天等高精尖技術(shù)及實(shí)時(shí)性要求極高的領(lǐng)域中,如衛(wèi)星通訊,軍事演習(xí),彈道制導(dǎo),飛機(jī)導(dǎo)航等等。Android是一種以Linux為基礎(chǔ)的開放源碼的操作系統(tǒng),主要用在便攜式設(shè)備上。如目前在智能手機(jī)和平板電腦上使用的最為廣泛,當(dāng)然,其也可以使用在嵌入式平臺(tái)上面。目前尚沒有統(tǒng)一的中文名稱,在中國大陸普遍稱為“安卓”,“安致”。它是由谷歌于2008年9月份開發(fā)的,最主要的應(yīng)用領(lǐng)域還是在消費(fèi)領(lǐng)域內(nèi)電子設(shè)備上面。
以上廢話了許多,主要講了一下在嵌入式開發(fā)上面的一些操作系統(tǒng),有點(diǎn)跑題哈。。。
有了ARM9以后,在一般的應(yīng)用場(chǎng)合都能夠勝任,都能見到它的身影。然而,在消費(fèi)類領(lǐng)域特別是在音視頻處理領(lǐng)域內(nèi),ARM9還是不能很好的勝任它的。如果要用一款A(yù)RM9來播放一端視頻文件,它會(huì)卡死極其嚴(yán)重,數(shù)據(jù)吞吐量完全吃不消。所以,就在這種背景下,ARM公司后來又開發(fā)出了ARM11內(nèi)核。ARM11系列主要有ARM1136J,ARM1156T2和ARM1176JZ三種內(nèi)核型號(hào),分別針對(duì)不同的領(lǐng)域。ARM11是基于ARMv6架構(gòu)的專門為新一代消費(fèi)類電子、無線設(shè)備、網(wǎng)絡(luò)應(yīng)用和汽車電子產(chǎn)品需求而制定的。ARM11的媒體處理能力和低功耗特點(diǎn),特別適用于無線和消費(fèi)類電子產(chǎn)品。大家都有這樣的一種經(jīng)歷,平常用手機(jī)的時(shí)候,非常希望自己的手機(jī)待機(jī)或者續(xù)航能力持久,然而往往卻很難達(dá)到要求。其實(shí),這就是要求電子產(chǎn)品和設(shè)備的低功耗能力要超強(qiáng)。并且,ARM11的高數(shù)據(jù)吞吐量和高性能的結(jié)合非常適合網(wǎng)絡(luò)處理應(yīng)用。
按照ARM公司以往走得路線來看,ARM11時(shí)代過了以后,ARM公司應(yīng)該繼續(xù)開發(fā)出ARM13,ARM15甚至更高的處理器內(nèi)核。但是,ARM公司從ARM11以后就沒有走原來的路線了。據(jù)有些人說,ARM公司畢竟是西方國家的,13這個(gè)數(shù)字對(duì)西方國家來說是個(gè)很不好的數(shù)字,就如中國人不喜歡4這個(gè)數(shù)字一樣。所以,后來ARM公司開發(fā)出了新的內(nèi)核,它有3種,分別如下:ARM Cortex-A系列,ARM Cortex-R系列,ARM Cortex-M系列。很有意思的是,這三個(gè)系列正好拼在一起就是“ARM”,哈哈,有意思吧。。。
其中,A是英文Application的縮寫,它是應(yīng)用的意思,意思就是ARM Cortex-A系列的處理器目標(biāo)市場(chǎng)就是高端設(shè)備的應(yīng)用場(chǎng)合,如現(xiàn)在的很多手機(jī),平板電腦就是該系列的處理器,像蘋果的iPhone就是A5處理器啊。R是英文Realtime的縮寫,它是實(shí)時(shí)的意思,意思就是ARM Cortex-R系列的處理器目標(biāo)市場(chǎng)就是一些對(duì)實(shí)時(shí)性能要求較高的場(chǎng)合,如軍事,航空,航天領(lǐng)域最為典型。M是英文Microcontroller的縮寫,它是微控制器的意思,也就是單片機(jī),哈哈,我們大家都很熟悉并且津津樂道的玩意兒。對(duì),ARM Cortex-M系列目標(biāo)市場(chǎng)就是單片機(jī)市場(chǎng),不用多說,你懂的。。。嘿嘿。。。
現(xiàn)在,常常有些朋友總是問道我這樣的問題:你用的ARM到底是ARM9還是ARM11?你用ARM9干嘛不用ARM11?每當(dāng)被問及這個(gè)問題,我只能很無語,我不知所云。大家伙總是一味的追求高端,總是以為追求高端就很NB,其實(shí)大錯(cuò)特錯(cuò)。并且,大家伙貌似對(duì)ARM的認(rèn)識(shí)和了解也就只知道ARM9和AMR11,卻不知道還有其它系列就妄下結(jié)論選型,這點(diǎn)我不得不一笑回之。要知道,在嵌入式技術(shù)開發(fā)這一領(lǐng)域內(nèi),對(duì)設(shè)備的穩(wěn)定性,可靠性和成本有著極其苛刻的要求。對(duì)于一個(gè)低端的應(yīng)用,你硬是搞個(gè)非常高端的芯片來使用,那純屬是浪費(fèi),就如你殺雞硬是用宰牛刀一樣,典型的就是2B一個(gè)。。。
目前,我正在使用的是飛思卡爾半導(dǎo)體公司于2011年下半年剛推出的一款基于ARM Cortex-M4內(nèi)核的微控制器。這款芯片功能非常強(qiáng)大,也是目前M系列內(nèi)最新的一款控制器,資料較少,上手難度較大。但我相信,這款芯片在未來肯定有非常大的市場(chǎng)前景,I Belive In。。。 |
|