1 / 37

嵌入式系統設計

嵌入式系統設計. 開課班級:夜四技機電四甲. 微控制器與嵌入式系統. 微控制器 (Microcontroller/Microprocessor) 是一種無所不在的內嵌型控制晶片,舉凡玩具、家電、汽車、房舍等各物各處中都有其存在,負責各種感測、監控工作 。 例如電視、錄放影機等遙控器的內部即有一顆,負責感應操作者的按鈕操控,並將按鈕訊號轉化成紅外線再發送給電視、錄放影機。

priscilla
Download Presentation

嵌入式系統設計

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 嵌入式系統設計 開課班級:夜四技機電四甲

  2. 微控制器與嵌入式系統 微控制器(Microcontroller/Microprocessor)是一種無所不在的內嵌型控制晶片,舉凡玩具、家電、汽車、房舍等各物各處中都有其存在,負責各種感測、監控工作。 例如電視、錄放影機等遙控器的內部即有一顆,負責感應操作者的按鈕操控,並將按鈕訊號轉化成紅外線再發送給電視、錄放影機。 又如熱水瓶、開飲機,其內部亦是由微控器負責感測水溫,並接受使用者的指示是否該加溫、沸騰,同樣的冷氣機的溫控也是用微控器來實現。此外如桌上電腦所用的鍵盤、滑鼠等也各有一顆,負責將敲打的鍵碼、指標的X/Y軸位移偏量等資訊回傳到電腦上。

  3. 微控制器與嵌入式系統 微控器的無所不在,因此其用量規模也相當可觀,單就最典型、大宗的8-bit、8051架構的微控器來說,全球一年的出貨需求就高達33億顆,且還有其他仍在強勁成長的16-bit、32-bit或非8051架構。 也因為市場的遍廣,使得微控器不易像其他泛用PC處理晶片般(如CPU、GPU)的形成寡佔、壟斷,研製微控器晶片的業者只要能貼近、切中某一產業或某一應用的控制需求,就能在市場上爭得一席。 但,近年來微控器的技術及市場又有了新需求、新演化,簡單性邏輯已漸難滿足所需,而開始朝智慧型演算的方向提升,且對控制力的要求也愈來愈高,這使得微控器界有了更多新的激盪 。

  4. 微控制器與嵌入式系統 從Intel的4004晶片問世4-bit MCU就已經存在,至今依然有許多應用是用4-bit MCU,如電子計算機、電子數字錶、電子玩具、LCD控制、紅外線遙控器、小型家電、電池充電器、來電顯示器(Caller ID)等。 目前MCU業者也仍持續在生產供貨4-bit MCU ,雖然數年前業界出現了「用8-bit MCU取代4-bit MCU」的呼聲 ,但微幅的單價差異即會造成極大的採購總額差,因此,4-bit MCU仍有其存續性,8-bit MCU仍難以完全取代 。 目前就用量規模或是市場銷售總額,8-bit MCU都是目前MCU中的第一主流,勝過16-bit MCU、32-bit MCU及前述的4-bit MCU,且應用的層面也最廣最多。 在8-bit MCU中又以8051架構獲得最多業者所採用 。

  5. 微控制器與嵌入式系統 • Microchip的第一代數位信號控制器:dsPIC30F系列,其定位訴求是成為16-bit MCU的超集合,並能兼具部份DSP及32-bit MCU才具備的能力。 當8-bit MCU的效能、資源無法滿足應用時就必須考慮改用16-bit MCU,如數位相機、VCD/DVD播放機之類的應用,或如汽車的安全氣囊、引擎控制、防盜系統等,都需要更快速與大量的運算控制。

  6. 微控制器與嵌入式系統 到了32-bit,MCU、MPU幾可合一而談,凡是訴求嵌入式應用的32-bit MPU/CPU多能算是32-bit MCU。因此,即便只論32-bit MCU/MPU的架構選擇都相當多樣,其中ARM架構的MCU目前相當熱門。 至於應用方面,32-bit MCU/MPU已具有充沛運算力及硬體資源,因此應用層面與類型也就特別多,小至PDA、PMP,大至電信機房的交換機、晶圓廠的製程設備都有運用,此外醫療儀器、軍用設施也都有使用。

  7. 微控制器與嵌入式系統 綜合來看MCU的趨勢,很明顯的8-bit MCU將會強勢持續,且同時持續用設計彈性與價格調降來爭取應用設計者從4-bit換用8-bit。 在8-bit MCU之外,另一個強勢已在32-bit的層次成形,即是以ARM為主的MCU/MPU,如今已有太多晶片業者採行ARM架構,在開發工具、範例程式、協力廠商等各項支援、資源方面都達堅穩陣容而不易搖撼,類似的強力產業生態已在8-bit MCU上可見,即是8051架構。 16-bit MCU,一方面缺乏如8051、ARM一般的明顯主流架構,另一方面在價格、效能上都難以凸顯其價值, 16-bit MCU的後市十分危急。

  8. ARM架構的嵌入式系統

  9. 嵌入式處理器及開發板 目前嵌入式處理器常見的有ARM、PowerPC、MIPS、Motorola 68K、ColdFire等,但ARM佔據了絕對主流(資料說手機中幾乎100%都是ARM處理器)。ARM是一個只賣智慧產權的公司,目前獲得購買了ARM CPU核授權許可的大公司很多,包括Intel、Samsung、Atmel、Motorola、Philips等,他們都在ARM CPU核的基礎上進行了一些週邊擴展,形成自己的處理器(如Samsung S3C2410,Motorola i.MXL9328等處理器都是採用ARM 9內核,指令集則是相同的)。 眾多中小公司又購買了這些處理器,設計了各種各樣的開發板,國內外很多著名嵌入式系統公司都生產基於Samsung S3C2410的開發板,供最終用戶使用或供教學實驗。

  10. 嵌入式處理器及開發版 在ARM這個食物鏈上,ARM公司是大魚,Intel、Samsung等公司是小魚,其他則是蝦米,最終用戶(採買嵌入式開發板的使用者)則是喂蝦米的。 Intel早期生產的是低階ARM (Strong ARM,相當於ARM 7),目前轉向主要生產高階ARM (即Intel Xscale處理器,相當於ARM 10,主要用在高階PDA上,如HP和DELL生產的PDA都採用Intel Xscale,價格較高)。目前應用最多的是ARM 7和ARM 9兩類處理器。

  11. 嵌入式處理器及開發版 ARM 7較便宜,可跑μclinux(是一個不支援高級記憶體管理功能的嵌入式Linux系統)、VxWorks、μc/os II等即時作業系統,但因處理器不帶記憶體管理單元MMU(無記憶體分頁和位址映射機制,所以不能使用虛擬記憶體),所以不能跑Windows CE,另外通用Linux中的某些記憶體管理功能也不能用在ARM 7上。 ARM 9是一個帶MMU功能的高階處理器,可跑WinCE或通用Linux的大多數功能。本嵌入式實驗室約有25套ARM 9系統(採用Samsung S3C2410x開發板,主要用於嵌入式處理器架構、嵌入式Linux課程實驗),每套實驗板都配了高速仿真器,很容易損壞 。

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

  13. 嵌入式系統 嵌入式系統是軟硬體結合的產物,參與開發的人有兩類。 一類是學電子工程、通信工程等偏硬體專業出身的人,他們主要是做硬體設計,但有時要開發一些與硬體關係最密切的最底層軟體,如Boot Loader、 Board Support Package(像PC的BIOS一樣,往下驅動硬體,往上支援作業系統),最初級的硬體驅動程式等。 他們的優勢是對硬體原理非常清楚,不足是他們雖然擅長定義各種硬體界面,但對複雜軟體系統往往力不從心(例如嵌入式作業系統原理和複雜應用軟體等)。

  14. 嵌入式系統 另一類是學軟體、計算機專業出身的人,主要從事嵌入式作業系統和應用軟體的開發。如果學軟體的人對硬體原理和界面有較好的掌握,也可寫BSP和硬體驅動程式。 嵌入式硬體設計完後,各種功能就全靠軟體來實現了,嵌入式設備的加值很大程度上取決於嵌入式軟體,這佔了嵌入式系統的最主要工作。 嵌入式產品的差異很大程度在軟體上,越是智慧設備越是複雜系統,軟體越起關鍵作用,而且這是目前的趨勢。

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

  16. 從事嵌入式系統開發的好處 與企業管理等應用軟體不同,嵌入式領域人才的工作密集度通常低一些(但收入不低)。開發企業應用軟體的IT企業,這個用戶的系統開發完了,又得去開發下一個用戶的,而且每個用戶的需求和完成時間都得按客戶要求改變,往往疲於奔命,重複勞動。相比而言,開發嵌入式系統的公司,都有自己的產品計畫,按自己的節奏行事。所開發的產品通常是通用的,不會因客戶的不同而修改。一個產品型號開發完了,往往有較長一段空閒時間(或只是對軟體進行一些小修補),有時間進行充電和休息。

  17. 從事嵌入式系統開發的好處 另外,從事嵌入式軟體的每個人工作範圍相對狹窄,所涉及的專業技術範圍就是那些(ARM、RTOS、MPEG、802.11等),時間長了這些東西會越開發越有經驗,賣賣老本,幾句指導也夠讓那些初入道者琢磨半年的。 若開發應用軟體,可能下一個客戶要換成一個完全不同的軟體開發平台,那就辛苦了。

  18. 從事嵌入式系統開發的好處 哪天若想創業,開發自已的產品,那麼嵌入式是一個不錯的主意,這可不像應用軟體那樣容易被盜版。例如在土木工程上開發出一個 “工程專用的掌上型PDA”,施工技術人員用該PDA可當場進行土木費用估算及其它的土木計算,或開發餐廳用的“點菜PDA”(WinCE平台,可無線連網和上網),讓客戶點菜。這些PDA的硬體設計一般都是由其它公司訂做(OEM),使用通用的硬體,我們只管設計軟體就變成自己的產品了。

  19. 從事嵌入式系統開發的缺點 入門起點較高,所用到的技術往往都有一定難度,若軟硬體基礎不好,特別是作業系統級軟體功夫不深,則可能不適於此行。 這方面的企業數量要遠少於PC類企業。從事嵌入式的系統小企業數量較多,知名大公司較少(大公司主要有Intel、Motorola、TI、Philips、Samsung、Sony、Fujitsu、Bell-Alcatel、意法半導體、Microtek、研華等製造類企業)。這些企業的習慣思惟模式是到電子、通信等偏硬專業找人。 有少數公司常需要碩士以上的人開發嵌入式系統,主要是基於系統的難度。但大多數公司也並無此要求,只要有經驗即可。

  20. 嵌入式系統學習重點 同學學習嵌入式系統,顯然應偏重於嵌入式系統軟體,特別是嵌入式作業系統方面,應是重點。對於開發嵌入式軟體的人,最重要的技術是︰ 掌握主流嵌入式微處理器的架構與原理 必須掌握一個嵌入式作業系統 必須熟悉嵌入式軟體開發流程並至少做過一個嵌入式軟體項目

  21. 嵌入式系統軟體課程 (1) 嵌入式微處理器架構與應用︰ 這是一門嵌入式硬體基礎課程,用這門課取代了傳統的“微機原理與界面”課程。我們說過,嵌入式是軟硬體結合的技術,開發嵌入式軟體的人應對ARM處理器工作原理和界面技術有充分了解,包括ARM的組合語言指令。若不了解處理器原理,怎麼能控制硬體工作,怎麼能寫出節省記憶體又高速執行的最佳代碼(嵌入式軟體設計特別講究時空效率),怎麼能寫出驅動程式(驅動程式都是與硬體打交道的)?

  22. 嵌入式系統軟體課程 若同學到公司中從事嵌入式軟體開發,公司都會給你一本該設備的硬體規格說明書 (xxx Specification),你必須能看懂其中的記憶體分佈和I/O埠使用等最基本的說明,否則怎麼設計軟體。有些同學覺得嵌入式處理器課程較枯燥,這主要是硬體課程都較抽象的原因,等做了一些實驗後就會覺得看得見摸得著。還有同學對ARM組合語言不感興趣,以為嵌入式開發用C語言就足夠了。其實不應僅是將組合語言當成一個程式設計語言,學組合語言主要是為了掌握處理器工作原理的。一個不熟悉組合語言的人,怎麼能在該處理器寫出最佳的C語言代碼。

  23. 嵌入式系統軟體課程 在嵌入式開發的一些關鍵部分,有時還必須寫組合語言,如Bootloader等(可能還包括BSP)。特別是在對速度有極高要求的場合(如DSP處理器的高速圖像擷取和圖像解壓縮),目前主要還要靠組合語言寫程式。當你在一個嵌入式系統公司工作時,在查看描述原理的手冊時,可能很多都是用組合語言描述的,這是因為很多硬體設計人員只會寫或者喜歡用組合語言描述,此時你就必須看懂組合程式,否則軟硬體人員可能就無法交流。很多嵌入式職位徵人時都要求熟悉組合語言。

  24. 嵌入式系統軟體課程 (1)嵌入式作業系統類課程︰ 除了WinCE的即時性稍差外,大多數嵌入式作業系統的即時性都很強,所以也可稱為即時作業系統Real Time Operating System。 從事嵌入式的人至少須掌握一個嵌入式作業系統 (當然能掌握兩個以上更好),這在嵌入式系統的所有技術中是最為關鍵的。

  25. 嵌入式系統軟體課程 目前最重要的RTOS主要包括︰ 第一類、傳統經典的RTOS︰ 最主要的便是VxWorks作業系統,以及其Tornado開發平台。VxWorks因出現稍早,即時性很強(可在1ms內回應外部事件請求),並且內核可極小(最小可到8K),可靠性較高等,所以在北美,VxWorks佔據了嵌入式系統的多半江山。特別是在通信設備等即時性要求較高的系統中,幾乎非VxWorkss莫屬。VxWorks的很多概念和技術都和Linux很類似,主要以C語言開發。像Bell-Alcatel、Lucent等通信企業在開發產品時,VxWorks用得很多。但VxWorks因價格很高,所以一些小公司或小產品中往往用不起。目前很多公司都在往嵌入式Linux轉換。但無論如何,VxWorks在一段長時間內仍是不可動搖的。與VxWorks類似的稍有名的即時作業系統還有pSOS、QNX、Nucleus等RTOS。

  26. 嵌入式系統軟體課程 第二類、嵌入式Linux作業系統︰ Linux的前途除作為伺服器作業系統外,最成功的便是在嵌入式領域的應用,原因當然是免費、源碼開放、支援軟體多、擁護者眾,這樣嵌入式產品成本會較低。Linux本身不是一個為嵌入式設計的作業系統,不是微內核的,並且即時性不強。目前應用在嵌入式領域的Linux系統主要有兩類︰一類是專為嵌入式設計的已被裁減過的Linux系統,最常用的是µclinux(不帶MMU功能),目前佔較大應用份額,可在ARM7上跑;另一類是跑在ARM 9上的,一般是將Linux 2.4.18內核移植在其上,可使用更多的Linux功能(當然µclinux也可跑在ARM 9上)。

  27. 嵌入式系統軟體課程 熟悉了Linux開發,不僅在嵌入式領域有用,對開發Linux應用軟體,對加深作業系統的認識也有幫助,可謂一舉多得。目前Intel、Philip都在大力開發ARM+LINUX的嵌入式開發,Fujitsu則是在自己的處理器上開發Linux。 目前在嵌入式Linux領域,以下幾個方面的人特別需要: 一是能將Linux移植到某個新型號的開發板上; 二是能寫Linux驅動程式的人; 三是熟悉Linux內核裁減和最佳化的人。

  28. 嵌入式系統軟體課程 目前最重要的RTOS主要包括︰ 第三類、 Windows CE嵌入式作業系統︰ Microsoft也看準了嵌入式系統的巨大市場,MS永遠是最厲害的,WinCE出來只有幾年時間,但目前已佔據了很大市場比例,特別是在PDA、手機、顯示儀表等界面要求較高或者要求快速開發的場合,WinCE目前已很流行。

  29. 嵌入式系統軟體課程 WinCE開發平台主要為WinCE Platform Builder,有時也用EVC環境開發一些較上層的應用,由於WinCE開發都是大家熟悉的VC++環境,所以學過Windows程式設計課程的同學都不會有多大難度,這也是WinCE容易被人們接受的原因,開發環境方便快速,微軟的強大技術支援,WinCE開發難度遠低於嵌入式Linux。對於急於完成,不想拿嵌入式Linux冒險的開發場合,WinCE是最合適了(找嵌入式Linux的人可沒那麼好找的),畢竟公司不能像學生學習那樣試試看,保證開發成功更重要 。

  30. 嵌入式系統軟體課程 根據不同的重點 ,WinCE還有兩個特殊版本,一個是MS Pocket PC作業系統,專用於PDA上(掌上電腦),另一個是MS Smart Phone作業系統,用於智慧型手機上(帶PDA功能的手機),兩者也都屬於WinCE平台。 在PDA和手機市場上,除WinCE外,著名的PDA嵌入式作業系統還有Palm OS(因出現很早,很有名)、Symbian等,但在WinCE的強勁衝擊下,Palm和Symbian來日不多了。

  31. 嵌入式系統軟體課程 很顯然,嵌入式Linux永遠不可能替代WinCE,而且將來誰佔的比例大還很難說,畢竟很多人更願意接受MS的平台,就像各國政府都在大力推廣LINUX已好長時間,但你能看到幾個在PC上真正使用LINUX的用戶?目前在嵌入式平台上,LINUX是叫得最響,但還是WinCE實際用得更多。 使用嵌入式LINUX可能更多的是一些有長遠產品計畫的公司,為降低成本而進行長遠考慮。 微軟亞洲研究院對WinCE課程有支援計畫,我們也很希望將來能有同學透過微軟的面試去實習。WinCE和多媒體(如MPEG技術)是微軟亞洲工程院目前做得較多的項目領域之一,他們很需要精通WinCE的人。

  32. 嵌入式系統軟體課程 總結關於嵌入式作業系統類課程,若你覺得自己功夫較深且能鑽研下去,則可去學嵌入式Linux;若你覺得自己VC++功夫較好且想短期快速地學嵌入式系統開發,則WinCE課程是較好的選擇。 但目前國內很少學校專門開設“Windows CE嵌入式作業系統”課程,主要原因可能是︰已開設了Windows程式設計課程 。

  33. 嵌入式系統相關軟體課程 A、數位圖像壓縮技術︰這是嵌入式最重要最熱門的應用領域之一,主要是應掌握MPEG編解碼算法和技術,如DVD、MP3、PDA、高解析電視、機上盒等都涉及MPEG高速解碼問題。 開發嵌入式系統若能熟悉嵌入式應用的一些主要領域,這樣的人更受企業歡迎。主要的相關領域包括︰

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

  35. 嵌入式系統相關軟體課程 C、 網路與訊息安全技術︰如加密技術,數位證書 CA等。 D、 DSP技術︰ DSP是Digital Signal Process數位信號處理的意 思,DSP處理器透過硬體實現數位信號處理算 法,如高速數據擷取、壓縮、解壓縮、通信 等。數位信號處理是電子、通信等硬體專業的 課程,對於開發軟體的人若能了解一下最好。 目前DSP人才較缺。如果有信號與系統、數位 信號處理等課程基礎,對於學習MPEG編解碼 原理會有很大幫助。

  36. 開發嵌入式系統相關硬體基礎 對於軟體工程專業的學生,從事嵌入式軟體開發,像數位電路、計算機組成原理、嵌入式微處理器架構等硬體課程是較重要的,主要目地是能看懂硬體工作原理。 已學過電子、通信類專業,有較好的類比電路和單晶片基礎,學嵌入式系統非常合適。嵌入式系統本身就是從單晶片發展過來的,只是單晶片不帶OS,而目前很多嵌入式系統應用越來越複雜,以至不得不引入嵌入式作業系統。另外,為追求更高速的信號處理速度,目前在一些速度要求較高的場合,有不少的DSP演算法,如MPEG壓縮解壓縮演算法等用硬體來實現,這就涉及到HDL數位電路設計技術及其FPGA/IP實現技術,這方面的人目前市場上也很缺。

  37. 嵌入式系統驅動程式開發 目前能寫驅動程式的人是非常缺少的(驅動程式也可歸於嵌入式系統範疇),包括桌面Windows中的DDK開發環境和WDM驅動程式。公司時時要推出新產品,每一個新產品出來了,若要能被作業系統所使用,則必須寫驅動程式。寫驅動程式就必須掌握作業系統(如Windows或Linux)的內部工作原理,還涉及到少量硬體知識,難度較大,所以這方面的人很難找。其實開發驅動程式的工作是很舒服的,開發完一個版本就會空一段時間,只有等公司新的晶片推出或新的OS出現後,才需要再去開發新一版程式。

More Related