540 likes | 643 Views
嵌入式系統概念. 課程大綱. 1. 嵌入式系統的基本架構 2.CPU 、匯流排與輸出入 3. 記憶體 4. 嵌入式系統常見介面及周邊 5. 數位電路 6. 硬體設計考量 7. 最新趨勢 /1.EELiod 平台 2.INTEL PXA270 微處理器. 嵌入式系統架構基礎概念. 常見嵌入式系統所使用的 CPU 可分 :
E N D
課程大綱 • 1.嵌入式系統的基本架構 • 2.CPU、匯流排與輸出入 • 3.記憶體 • 4.嵌入式系統常見介面及周邊 • 5.數位電路 • 6.硬體設計考量 • 7.最新趨勢 /1.EELiod平台2.INTEL PXA270微處理器
嵌入式系統架構基礎概念 • 常見嵌入式系統所使用的CPU可分: • 1. 精簡指令集(RISC,Reduced Instruction Set Computing 的縮寫), 如ARM(英商),MIPS(美商),ARC(ARC原為英商,2009/11被記憶體IP廠商,美商Virage Logic收購,之後Virage Logic於2010/6又被美商Synopsys收購),Andes(台商),這四家是以IP(矽智財授權)方式販售. • RISC這種設計思路對指令數目和定址方式都做了精簡,使其實現更容易,指令並行執行程度更好,編譯器的效率更高.一般都使用於智慧型手機,機上盒,PDA,數位電視,MP3,光碟播放機等手持式系統.
2. 複雜指令集(CISC,Complex Instruction Set Computer 或是 一般稱為X86架構) ,32~64bit,如Intel(美商),AMD(美商),VIA(台商),這三家是以IC方式販售. • 每個指令可執行若干低階操作,諸如從記憶體讀取,儲存,和計算操作,全部集於單一指令之中.一般都使用於桌上型電腦,筆記型電腦,伺服器,工業電腦,博弈機台.
3. Intel 8051,8bit,如Atmel,NXP,Winbond,SyncMOS(族煩不及備載)… • 8051因為年代久遠,Intel在此的專利權已經過期,很多廠商都有在生產,且也有其原始碼,所以可以在市面上看到很多修改過的特殊8051,像是增加IIC,SPI介面,加快CPU頻率等.
4. Microchip PIC,8~16bit,但是Microchip 之後推出的32bit CPU 是使用MIPS core.
單晶片簡介 • 單晶片微處理器→整個微處理機系統搭配簡單周邊模組與輸出入介面以單晶片型態完成。 • 單晶片微處理器中包含系統運作所需之周邊模組與模組驅動程式、系統程式與應用程式。 • 國內外有許多晶片公司,分別針對不同應用,設計有許多種單晶片微處理機系列,如:8051、PIC、ARM、…等等 。 • 接下來以Microchip的單晶片為主要介紹對象。
嵌入式系統 • 學習嵌入式系統一開始最重要的就是選擇CPU,需依照自己所要開發產品的特性做選擇,RISC架構比CISC來的省電,所以手持式的系統都會使用RISC架構的CPU. • 各家所設計的CPU架構不同,ISA(Instruction Set Architecture)指令集當然也就不同,說簡單點就是撰寫組合語言的指令不一樣,不過如果程式都是使用C語言撰寫,只要使用你所選擇CPU廠商所提供的編譯器(tools)重新編譯過,就可以在該廠商的CPU上執行程式.
嵌入式系統程式可分為OS(作業系統)與Non OS(不使用作業系統): • 1. OS: 再OS上執行程式,目前常見到Embedded OS有Windows CE, MicroC/OS II,Embedded Linux. • 手機所使用的OS也算是Embedded OS,如Symbian,Windows Mobile,Palm OS,Linux(Android). • 2. Non OS: 就是不再OS執行程式,直接撰寫程式對CPU內暫存器做讀寫動作.
單晶片微處理器之應用與功能需求 • 目前各類之電子與家電產品,皆可看到單晶片微處理機之蹤跡。如:電子表、微電腦控制洗衣機、防盜器、溫度控制器、電子耳溫槍、….等等。 • 舉凡對現實環境之量測、監控與互動裝置皆可看到單晶片系統之蹤影。
環境、單晶片與其他系統互動示意圖 資訊串列 其他系統 • 資訊處理,如:計 算、儲存、分析…等。 • 時間管理,如:計時、定時、量測…等。 • 資料通訊 現實環境 環境參數 量測與轉換 類比連續 物理量 量化離散 數位訊號 數位訊號轉換為環境參數、訊號、驅動訊號、…等
單晶片微處理機之功能模組 • 單晶片微處理機常見之功能模組有: • CPU 核心、監督單元 • RAM與EEPROM/Flash ROM • 計時/計數器 • 基本I/O埠、傳輸介面(RS232 、RS485 、USB 、SPI 、I2C ….) • ADC/DAC、PWM、audio、RF….等等
單晶片的優缺點 • 優點 : • 減低產品開發成本 , 提昇功能 • 增加設計彈性 , 使產品有改版及升級的空間 • 維修成本低廉 • 產品的一致性高 • 小型化容易 • 易於用來實現複雜的數學及邏輯算式 • 缺點 : • 反應速度通常不及直接組合而成的專用硬體電路 • 雜訊免疫能力的問題 • 價格較 ASIC 的元件高
中央處理單元(CPU)核心 • CPU核心由暫存器、算數與邏輯運算單元與控制單元、指令解碼器與指令集所組成。根據指令集之設計技術,可分為複雜指令集 (CISC)與精簡指令集(RISC) 核心。 • 複雜指令集 :指令數目多(數百個)、多位元組指令、指令週期長、指令功能強、運算元定址模模式多。 • 精簡指令集:指令數目少(數十,一般約50個指令左右)、以單字元組指令為主(一個指令只需一字元,適合使用管線化 pipeline 加速技術)、指令週期短,但指令功能較弱、運算元定址模模式少。
RAM與EEPROM/Flash ROM • 隨機存取記憶體(RAM)供CPU核心儲存各類資料。 • 可讀寫式唯讀記憶體(EEPROM/Flash ROM)供存放程式或永久性資料,一般可透過線上寫入之動作做修改。 • 由於單晶系統之指令位元數有限,記憶體系統可能採用分頁技巧或暫存器定址模式,以便節省運算元之定址位元。
監督單元(monitor unit) • 對系統穩定性與多元應用之需求,單晶片微處理器皆設計監督單元,負責執行監督與管理系統, • 系統重置(Reset) • 電源啟動(Power up) • 電源耗弱(Brown out) • 睡眠模式(Sleep mode) • 看門狗(Watchdog) • 中斷控制器(Interrupt control)
系統重置(Reset) • 可分成熱機重置(hot reset)與冷機重置(cold reset)。 • 冷機重置(cold reset)指的是電源剛啟動之重置動作,此時單晶系統內之記憶體與暫存器皆處於未使用狀態,其內容為隨機之數值(不可預測) • 熱機重置(hot reset)指的是正常使用中,因各種異常訊號或使用者設定,產生系統重置情況,此時單晶片系統內之記憶體與暫存器皆已設定資料。
電源未穩定前之 重置產生誤動作 電源 重置訊號 誤動作,可應用 啟動計時器避免 重置訊號 電源 Power on 重置訊號 應用Power on reset避免誤動作 啟動電源管理概念 Power on reset 電路
各種常見電源不穩定現象 電源耗盡 接地雜訊 電源故障 瞬間脈衝
Sleepand Watchdog • 睡眠模式:單晶系統設計睡眠模式或省電模式。如此,便可在非使用時期停止系統運作或降低運作之功率,達成節能與延長操作時間的目的。因此,設計有睡眠模式之控制,包含設定與喚醒之機制。 • 看門狗計時器(Watchdog) :為預防長時間當機之事件發生,單晶片微處理機提供看門狗計時器(Watchdog timer),定時檢視系統是否正常,或將系統由睡眠模式喚醒。
中斷控制器(Interrupt control) • 中斷控制器管理功能包括中斷向量、中斷致能與遮罩、中斷優先權、中斷旗標等。 • 中斷向量:發生中斷時,CPU需執行之中斷服務程式所在之位址。單晶片微處理機一般使用固定向量模式。 • 中斷致能與遮罩:各周邊模組之中斷功能可透過中斷控制器加以致能(使周邊產生中斷)、遮罩(使周邊無法產生中斷)。 • 中斷優先權:當有不同周邊產生中斷訊號時,依中斷優先權執行對應之中斷服務程式。優先權高之中斷將優先執行,優先權高之中斷訊號,可中斷優先權低之服務程式。 • 中斷旗標:當有周邊產生中斷訊號時,同時會設定周邊模組之中斷旗標,供CPU辨識中斷來源。
時脈產生器(Timing generate) • 數位系統運作需要有一基本之系統時脈。並以此為基礎訊號,乘除某些數值,以便得到各周邊模組所需之工作時脈。 • 單晶系統中常以簡單之振盪晶體或RC振盪電路產生基本時脈訊號。 • 若要產生更高之系統時脈,可應用鎖相迴路(phase lock loop, PLL)時脈合成器 • 若要產生較低之時脈,可經由計數器除頻產生系統時脈。
計時/計數器 • 計時/數模組為單晶片系統之重要模組。 • 輸入訊號透過預除器(Prescaler),使時脈速率降低與獲得較穩定訊號。 • 計數後之輸出,通過後除器(Postescaler),可將計數結果分群輸出或降低模組計數輸出速率。 • 妥善應用計時器模組所輸出之計數數值,可設計各種周邊應用模組。 • 捕抓(capture)模組 • 比較(compare)模組 • 脈波寬調變(pulse width modulation)模組。
基本I/O埠 • 單晶系統之基本輸出入模組,可設定規劃各模組位元之輸出入方向(輸入、輸出或雙向)。 • 輸出埠之設計模式 • 有開集(汲)級輸出、三態輸出、圖騰柱輸出,以及是否資料緩衝(buffer)。 • 推動能力從數mA至數十mA,一般推動能力之流入電流(汲入sink)與流出電流(源出source)驅動力不同。 • 輸入埠之設計模式 • 有弱提升電阻(pullup resistance )輸入模式、史密特觸發模式、資料閂鎖(latch)模式等。 • 在省電模式底下,使用者需依照資料手冊與系統設計將所有輸出入埠設定至省電狀態。
ADC與DAC • ADC:類比數位轉換過程,若希望轉換完成之數位資訊保持所有原類比訊號之特徵。需依取樣定理(sampling theorem)取樣。 • DAC:將數位資訊轉換為類比訊號之轉換過程 。 • 取樣定理: 取樣時間為類比訊號之最高頻率
連續類比訊號 離散數位資訊 離散類比訊號 3 6 7 4 …. 取樣 ADC 維持 類比轉數位之轉變過程
離散數位資訊 連續類比訊號 離散類比訊號 3 6 7 4 …. 低通濾波器 ADC 一階維持重建 數位轉類比訊號轉變過程
周邊模組之控制方法 • 一般可分為兩類:1、直接控制模式,2、互動控制模式。 • 直接控制模式:設定後周邊模組自行運作不需額外控制,如:基本之數位輸出/輸入埠、或PMM模組。 • 互動控制模式:CPU與周邊模組需透過一來一往之交握(handshake)程序、或答詢過程,才能完成正確之控制。一般依互動處理方式,分諮詢控制式與中斷控制式。
開始 開始 處理模組資料 設定模組控制資料 繼續 繼續設定 周邊模組直接控制模式 設定流程 處理流程
開始 否 開始 是否資料備妥 是 設定模組控制資料 設定流程 處理流程 處理模組互動資料 繼續設定 清除相關狀態旗標 繼續諮詢 周邊模組諮詢控制模式
開始 模組產生中斷 設定模組控制資料 設定模組中斷向量 啟動模組與系統中斷功能 設定流程 處理流程 模組中斷服務程式 中斷返回 繼續 周邊模組中斷控制模式
中斷服務程式之設計規則 • 使用中斷控制功能必須將中斷服務程式,設定至對應之中斷向量。 • 中斷服務程式必需執行下列步驟: • 遮罩低階或全部中斷,避免中斷期間再中斷。 • 檢查中斷旗標,確定中斷源是那一周邊所產生。 • 暫存器保存與還原。 • 迅速處理中斷資料。 • 清除中斷旗,使下次中斷訊號可繼續產生。 • 中斷服務程式必需以最短之時間結束,避免影響系統正常運作。 • 中斷服務程式之資料區,避免因中斷過程影響資料之完整性。
中斷訊號 遮罩低階或全部中斷 保存CPU之暫存器 檢查中斷旗標 是否模組中斷 是 處理模組互動資料 是 清除相關中斷旗標 還原CPU之暫存器 中斷致能 中斷返回 中斷服務程式流程圖
單晶片系統之設計與發展 • 系統設計開發過程包括有 • 規格設定分析、 • 系統架構設計、 • 軟應體功能劃分、 • 功能模擬與驗證、 • 功能與系統測試、 • 系統修改
單晶片之整合發展環境( IDE) • 系統設計開發過程繁瑣,整合發展環境將所有功能整合在單一軟體界面,包括有: • 專案管理、 • 文件編輯與編譯、 • 執行(模擬、執行、下載執行)、 • 除錯功能、 • 記憶體檢視、 • 反組譯功能、 • 及其他檢查與控制功能
單晶片微處理器學習流程 • 瞭解基本之單晶架構與周邊模組關係及各模組之用途。 • 進一步瞭解模組之應用與模組設計之技巧。 • 熟練基本之軟體程式技巧,透過對基本程式流程與資料處理技巧,可以以各種語言撰寫程式(因為單晶片講究效率,一般使用非標準化之組合語言,每一種系列CPU有自己之語言,可經由CPU之data sheet快速學習指令集)。 • 熟悉發展流程與發展之工具環境與應用技巧。
學習重點 • 專案管理 • 程式之撰寫與除錯 • 模組化之發展與除錯 • 模擬除錯技巧 • 軟硬體與系統整合除錯技巧