關於嵌入式系統發展方向

本文來自http://hi.baidu.com/wader2006/blog/item/1baed1c80c5442177e3e6f53.html

 嵌入式系統無疑是當前最熱門最有發展前途的IT應用領域之一。嵌入式系統用在一些特定專用設備上,通常這些設備的硬件資源(如處理器、存儲器等)非常有限,並且對成本很敏感,有時對實時響應要求很高等。特別是隨着消費家電的智能化,嵌入式更顯重要。像我們平常常見到的手機、PDA、電子字典、可視電話、VCD/DVD/MP3 Player、數字相機(DC)、數字攝像機(DV)、U-Disk、機頂盒(Set Top Box)、高清電視(HDTV)、遊戲機、智能玩具、交換機、路由器、數控設備或儀表、汽車電子、家電控制系統、醫療儀器、航天航空設備等等都是典型的嵌入式系統。


嵌入式系統是軟硬結合的,搞嵌入式開發的人有兩類:


一類是學電子工程、通信工程等偏硬件專業出身的人,他們主要是搞硬件設計,有時要開發一些與硬件關係最密切的最底層軟件,如BootLoader、Board Support Package(像PC的BIOS一樣,往下驅動硬件,往上支持操作系統),最初級的硬件驅動程序等。他們的優勢是對硬件原理非常清楚,不足是他們更擅長定義各種硬件接口,但對複雜軟件系統往往力不從心(例如嵌入式操作系統原理和複雜應用軟件等)。

另一類是學軟件、計算機專業出身的人,主要從事嵌入式操作系統和應用軟件的開發。如果我們學軟件的人對硬件原理和接口有較好的掌握,我們完全也可寫BSP和硬件驅動程序。嵌入式硬件設計完後,各種功能就全靠軟件來實現了,嵌入式設備的增值很大程度上取決於嵌入式軟件,這佔了嵌入式系統的最主要工作(目前有很多公司將硬件設計包給了專門的硬件公司,稍複雜的硬件都交給臺灣或國外公司設計,國內的硬件設計力量很弱,很多嵌入式公司自己只負責開發軟件,因爲公司都知道,嵌入式產品的差異很大程度在軟件上,在軟件方面是最有“花頭“可做的)。

從事嵌入式軟件開發的優勢是:

(1) 目前國內外這方面的人都很稀缺。一方面,是因爲這一領域入門門檻較高,不僅要懂較底層軟件(例如操作系統級、驅動程序級軟件),對軟件專業水平要求較高(嵌入式系統對軟件設計的時間和空間效率要求較高),而且必須懂得硬件的工作原理,所以非專業IT人員很難切入這一領域另一方面,是因爲這一領域較新,目前發展太快,很多軟硬件技術出現時間不長或正在出現(如ARM處理器、嵌入式操作系統、MPEG技術、無線通信協議等),掌握這些新技術的人當然很找。嵌入式人才稀缺,身價自然就高,越有經驗價格就越高。其實嵌入式人才稀少根本原因可能是大多數人無條件接觸這需要相應的嵌入式開發板和軟件另外需要有經驗的人進行指導開發流程。

(2) 與企業計算等應用軟件不同,嵌入式領域人才的工作強度通常低一些(但收入不低)。搞企業應用軟件的IT企業,這個用戶的系統搞完了,又得去搞下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲於奔命,重複勞動。相比而言,搞嵌入式系統的公司,都有自己的產品計劃,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閒時間(或只是對軟件進行一些小修補),有時間進行充電和休整。另外,從事嵌入式軟件的每個人工作範圍相對狹窄,所涉及的專業技術範圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越搞越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。

(3) 哪天若想創業,搞自已的產品,那麼嵌入式是一個不錯的主意,這可不像應用軟件那樣容易被盜版。

對於搞嵌入式軟件的人,最重要的技術顯然是:

  (1) 掌握主流嵌入式微處理器的結構與原理

  (2) 必須掌握一個嵌入式操作系統

  (3) 必須熟悉嵌入式軟件開發流程並至少做過一個嵌入式軟件項目。

嵌入式操作系統分類

除了WinCE的實時性稍差外,大多數嵌入式操作系統的實時性都很強所以也可稱爲實時操作系統Real Time Operating System.目前最重要的RTOS主要包括:

第一類、傳統的經典RTOS:最主要的便是 Vxworks 操作系統,以及其Tornado開發平臺。Vxworks因出現稍早,實時性很強(據說可在1ms內響應外部事件請求),並且內核可極微(據說最小可8K),可靠性較高等,所以在北美,Vxworks佔據了嵌入式系統的多半疆山。特別是在通信設備等實時性要求較高的系統中,幾乎非Vxworks莫屬。Vxworks的很多概念和技術都和Linux很類似,主要是C語言開發。像Bell-alcatel、Lucent、華爲等通信企業在開發產品時,Vxworks用得很多。但Vxworks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉(聽說華爲目前正在這樣轉)。但無論如何,Vxworks在一段長時間內仍是不可動搖的。與Vxworks類似的稍有名的實時操作系統還有pSOS、QNX、Nucleus等RTOS。

 第二類、嵌入式 Linux 操作系統:Linux的前途除作爲服務器操作系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、開源、支持軟件多、呼擁者衆,這樣嵌入式產品成本會低。Linux本身不是一個爲嵌入式設計的操作系統,不是微內核的,並且實時性不強。目前應用在嵌入式領域的Linux系統主要有兩類:一類是專爲嵌入式設計的已被裁減過的Linux系統,最常用的是uClinux(不帶MMU功能),目前佔較大應用份額,可在ARM7上跑另一類是跑在ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然uClinux更可跑在ARM 9上)。


 第三類、 Windows CE 嵌入式操作系統:Microsoft也看準了嵌入式的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場份額,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行(據說有一家賣工控機的公司板子賣得太好,以至來不及爲客戶裁減WinCE)。WinCE目前主要爲4.2版(.NET),開發平臺主要爲WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC環境,所以正規高校軟件學院學過Windows程序設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支持,WinCE開發難度遠低於嵌入式Linux。

在PDA和手機市場上,除WinCE外,著名的PDA嵌入式操作系統還有Palm OS(因出現很早,很有名)、Symbian 等

嵌入式開發的其它相關技術:

 A、數字圖像壓縮技術:這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高精電視、機頂盒等都涉及MPEG高速解碼問題。

   B、通信協議及編程技術:這包括傳統的TCP/IP協議和熱門的無線通信協議。首先,大多數嵌入式設備都要連入局域網或Internet,所以首先應掌握TCP/IP協議及其編程,這是需首要掌握的基本技術其次,無線通信是目前的大趨勢,所以掌握無線通信協議及編程也是是很重要的。無結通信協議包括無線局域網通信協議802.11系列,Bluetooth,以及移動通信(如GPRS、GSM、CDMA等)。

   C、網絡與信息安全技術:如加密技術,數字證書CA等。

   D、DSP技術:DSP是Digital Signal Process數字信號處理的意思,DSP處理器通過硬件實現數字信號處理算法,如高速數據採集、壓縮、解壓縮、通信等。

嵌入式開發的相關基礎:

從事嵌入式軟件開發,像數字電路、計算機組成原理、嵌入式微處理器結構等知識是較重要的,彙編語言、C/C、數據結構和算法、特別是操作系統等軟件知識也是十分重要的。

研究生裏有些是學電子、通信類專業過來的,有較好的模擬電路和單片機基礎,學嵌入式非常合適。嵌入式本身就是從單片機發展過來的,只是單片機不帶OS,而現在很多嵌入式應用越來越複雜,以至不得不引入嵌入式操作系統。另外,爲追求更高速的信號處理速度,現在在一些速度要求較高的場合,有不少公司是將一些DSP算法,如MPEG壓縮解壓縮算法等用硬件來實現,這就涉及到HDL數字電路設計技術及其FPGA/IP覈實現技術。

       在GOOGLE網上能搜索太多的關於嵌入式系統的討論了,http:www.embyte.com 非常不錯,有很多有經驗者談自己的體會投入到其中的論壇中,你會切身感到嵌入式學習的熱潮。

  要麼走ARMWinCE,要麼走ARMLINUX,要麼走ARMVXWORKS。每個搞嵌入式的人都可選一條路,條條大路通羅馬。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章