嵌入式系統總結_第1頁
嵌入式系統總結_第2頁
嵌入式系統總結_第3頁
嵌入式系統總結_第4頁
嵌入式系統總結_第5頁
已閱讀5頁,還剩38頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、按照章節進行分類嵌入式系統總結嵌入式系統的概念及現實中的實例兩種比較合理定義: 從技術的角度定義:以應用為中心、以計算機技術為基礎、軟件硬件可裁剪、適應應用系統對功能、可靠性、成本、體積、功耗嚴格要求的專用計算機系統。從系統的角度定義:嵌入式系統是設計完成復雜功能的硬件和軟件,并使其緊密耦合在一起的計算機系統。第一章嵌入式系統概述2.1 ARM簡介ARM公司簡介 ARM是Advanced RISC Machines的縮寫,它是一家微處理器行業的知名企業,該企業設計了大量高性能、廉價、耗能低的RISC (精簡指令集)處理器。 公司的特點是只設計芯片,而不生產。它將技術授權給世界上許多著名的半導體

2、、軟件和OEM廠商,并提供服務。ARM兩大處理器狀態特點及其關系 ARM7TDMI處理器內核包含2套指令系統,分別為ARM指令集和Thumb指令,并且各自對應1種處理器的狀態:ARM狀態:32位,處理器執行字方式的ARM指令,處理器默認為此狀態;Thumb狀態:16位,處理器執行半字方式的Thumb指令。第3章 ARM7TDMI(-S)指令系統簡介 ARM處理器是基于精簡指令集計算機(RISC)原理設計的,指令集和相關譯碼機制較為簡單。ARM7TDMI(-S)具有32位ARM指令集和16位Thumb指令集,ARM指令集效率高,但是代碼密度低;而Thumb指令集具有較高的代碼密度,卻仍然保持AR

3、M的大多數性能上的優勢,它是ARM指令集的子集。所有的ARM指令都是可以有條件執行的,而Thumb指令僅有一條指令具備條件執行功能。ARM程序和Thumb程序可相互調用,相互之間的狀態切換開銷幾乎為零。 第3章 ARM7TDMI(-S)指令系統ARM指令集與Thumb指令集的關系Thumb指令集具有靈活、小巧的特點ARM指令集支持ARM核所有的特性,具有高效、快速的特點3.1 ARM處理器尋址方式尋址方式分類 尋址方式是根據指令中給出的地址碼字段來實現尋找真實操作數地址的方式。ARM處理器具有8種基本尋址方式。1.寄存器尋址;2.立即尋址;3.寄存器移位尋址;4.寄存器間接尋址;5.基址尋址;

4、6.多寄存器尋址;7.堆棧尋址;8.相對尋址。3.2 指令集常用指令的使用3.2 指令集介紹ARM存儲器訪問指令單寄存器存取裝載指令:LDR 目標寄存器,源地址存儲指令:STR 源寄存器,目標地址存儲器源地址目標寄存器存儲器目標地址源寄存器 思考與練習?1.MOV指令與LDR指令都是往目標寄存器中傳送數據,但是它們有什么區別嗎? MOV指令用于將數據從一個寄存器傳送到另一個寄存器中,或者將一個常數傳送到一個寄存器中,但是不能訪問內存。LDR指令用于從內存中讀取數據放入寄存器中。3.2 指令集介紹算術邏輯運算指令 算術邏輯運算指令包括“加/減”以及“與/或/異或”等指令,它們的格式如下:OpCo

5、de 結果寄存器,運算寄存器,第二操作數運算寄存器第二操作數運算符結果寄存器系列簡介2.引腳描述3.存儲器尋址4.系統控制模塊5.存儲器加速模塊 (MAM)6.外部存儲器控制器(EMC)7.引腳連接模塊第四章LPC2000系列ARM硬件結構9.向量中斷控制器10.外部中斷輸入11.定時器0和定時器1接口2C接口14.UART(0、1)轉換器16.看門狗17.脈寬調制器(PWM)18.實時時鐘4.3.1 片內存儲器片內Flash編程方法1. 使用JTAG仿真/調試器,通過芯片的JTAG接口下載程序;2. 使用在系統編程技術(即ISP),通過UART0接口下載程序;3.使用在應用編程技術(即IAP

6、),在用戶程序運行時對Flash進行擦除和/或編程操作,實現數據的存儲和固件的現場升級。ARM7處理器核外設控制器RAMBootBlockFLASHJTAGUART0串口并口JTAGJTAGUART04.3.1 片內存儲器片內Flash編程方法2. 使用在系統編程技術(即ISP),通過UART0接口下載程序;3. 使用在應用編程技術(即IAP),在用戶程序運行時對Flash進行擦除和/或編程操作,實現數據的存儲和固件的現場升級。1. 使用JTAG仿真/調試器,通過芯片的JTAG接口下載程序;4.3.2 片外存儲器片外Flash編程方法 Flash的擦寫操作需要配合一段符合Flash編程時序的代

7、碼,這段代碼稱為裝載程序,一般由用戶編寫。程序代碼(源)程序代碼(目標)Loader目標板CPUBUSFlash串口 下載用戶代碼時,首先得在CPU內運行裝載程序,通過它把從串口(或其它接口)接收的代碼寫到片外Flash中。概述4.3.3 存儲器映射 ARM芯片可以存在片內和片外存儲器,這些存儲器本身不具有地址信息,它們在芯片中的地址是由芯片廠家或用戶分配的,那么給物理存儲器分配邏輯地址的過程稱為存儲器映射。通過這些邏輯地址就可以訪問到相應存儲器的物理存儲單元。4.3.5 存儲器重映射及引導塊存儲器重映射 將已經過映射的存儲器再次映射的過程稱為存儲器重映射,它使同一物理存儲單元出現多個不同的邏

8、輯地址。這些存儲單元主要包括引導塊“Boot Block”和用于保存異常向量表的少量存儲單元。Addr1程序所見存儲器.Addr2Addr1存儲器管理部件0 x12340 x1234實際物理存儲器0 x1234 注意:存儲器重映射并不是對映射單元的內容進行了復制,而只是將多個地址指向了同一個存儲單元,這種效果是通過芯片內部的“存儲器管理部件”實現的。 實際物理存儲單元通過存儲器管理部件進行存儲器映射,獲得邏輯地址Addr1。1 實際物理存儲單元通過存儲器管理部件進行存儲器重映射,獲得邏輯地址Addr2。此時,邏輯地址Addr1和Addr2可以訪問同一實際物理存儲單元。24.4.2 時鐘系統時鐘

9、系統結構 LPC2000系列微控制器的時鐘系統包括四個部分:晶體振蕩器、喚醒定時器、鎖相環(PLL)和VPB分頻器。外接晶體或外接時鐘源產生穩定的時鐘信號將Fosc提升到合適的頻率PLL晶體振蕩器VPB分頻器FCCLKFPCLKfOSCFOSCCPU內核芯片外設喚醒定時器ON/OFF1342 為系統提供基本的時鐘信號(Fosc) 。1 在復位或處理器從掉電模式被喚醒時,為輸入的時鐘信號做計數延時,使芯片內部部件有時間進行初始化。 2 把Fosc信號提高到一個符合用戶需要的頻率(Fcclk) 其中Fcclk用于CPU內核。3 用于把Fcclk信號降低到一個合適的Fpclk值(也可以不降低),該信

10、號用于外設部件 。44.5 存儲器加速模塊(MAM)概述 LPC2000微控制器擴展了器件內部Flash總線寬度為128位,用于提高處理器的指令執行速度。這個接口通過存儲器加速模塊(MAM)來控制。Flash組2Flash組1CPU 執行指令取指階段 等待 指令提供指令1提供指令3.取指階段提供指令4取指階段 等待3 等待取指階段提供指令2取指階段 等待124關閉MAM指令執行情況 從Flash組1中讀取指令,CPU處于等待狀態。1 CPU從1組指令緩存區中獲取指令并執行。2 從Flash組2中讀取指令,CPU處于等待狀態。3 CPU從2組指令緩存區中獲取指令并執行。4 所有存儲器操作請求都會

11、直接對Flash操作,由此產生了CPU停止,等待若干周期的情況。Flash組2Flash組1CPU 執行指令開啟MAM指令執行情況.1413提供指令13141516取指階段1211109取指階段提供指令91011128765取指階段提供指令56784321提供指令12345678取指階段取指階段 等待 指令. 兩組指令緩存區中不存在指令,啟動Flash存儲器指令讀取周期,CPU停止,等待若干周期。1 CPU執行Flash組1指令緩存區中的指令。2 CPU執行Flash組2指令緩存區中的指令,同時從Flash組1中讀取指令。3 只要指令存在兩個組的指令緩存區中,CPU的指令執行是連續的,由此大大

12、提高了指令執行效率。4.9 向量中斷控制器概述 ARM7TDMI內核具有兩個中斷輸入,分別為IRQ中斷和FIQ中斷。向量中斷控制器(VIC)負責管理芯片的中斷源,最多可以管理32個中斷輸入請求。CPU 內核ARM7TDMI-S4.9 向量中斷控制器FIQ中斷硬件處理流程將當前的程序狀態寄存器的內容備份即,SPSR_fiq = CPSR處理器切換到FIQ模式禁止IRQ和FIQ中斷,即,I = F = 1保存返回地址LR_fiq = PC設置FIQ異常入口地址PC = 0 x1C發生FIQ異常事件說明:ARM7不支持FIQ中斷嵌套4.9 向量中斷控制器IRQ中斷相應流程將當前的程序狀態寄存器的內容

13、備份即,SPSR_irq = CPSR處理器切換到IRQ模式禁止IRQ中斷,即,I = 1保存返回地址LR_irq = PC設置IRQ異常入口地址PC = 0 x18發生IRQ異常事件說明:ARM7不支持IRQ中斷嵌套4.10 外部中斷輸入概述LPC2000系列ARM具有4路外部中斷,可以設置為2種類型: 邊沿觸發: 上升沿觸發 下降沿觸發 電平觸發: 高電平觸發 低電平觸發4.12 SPI接口(Serial Peripheral Interface-串行外設接口) SPI總線系統是一種同步串行外設接口,它可以使MCU與各種外圍設備以串行方式進行通信以交換信息。外圍設置FLASHRAM、網絡控

14、制器、LCD顯示驅動器、A/D轉換器和MCU等。SPI總線系統可直接與各個廠家生產的多種標準外圍器件直接接口,該接口一般使用4條線:串行時鐘線(SCK)、主機輸入/從機輸出數據線MISO、主機輸出/從機輸入數據線MOSI和低電平有效的從機選擇線SS(有的SPI接口芯片帶有中斷信號線INT或INT、有的SPI接口芯片沒有主機輸出/從機輸入數據線MOSI)。 SCLSDACPU ACPU BLCD驅動器E2PROMADC4.13 I2C接口概述 I2C總線是Philips推出的串行傳輸總線,它以2根連線實現了完善的全雙工同步數據傳送,可以極方便地構成多機系統和外圍器件擴展系統。 I2C總線采用了器

15、件地址的硬件設置方法,通過軟件尋址完全避免了期間的片選線尋址方法,從而使硬件系統具有最簡單而靈活的擴展方法。I2C總線的兩根線(串行數據SDA,串行時鐘SCL)連接到總線上的任何一個器件,每個器件都應有一個唯一的地址,而且都可以作為一個發送器或接收器。此外,器件在執行數據傳輸時也可以被看作是主機或者從機。I2C總線規范傳輸協議主機發送數據到從機 主機從機主機發送起始信號,開始數據傳輸對從機進行尋址,同時R/W = 0發送應答信號發送1字節數據發送應答信號發送1字節數據發送停止信號,結束數據通信I2C總線規范傳輸協議主機讀取從機數據主機從機發送停止信號,結束數據通信主機發送起始信號,開始數據傳輸

16、對從機進行尋址,同時R/W = 1發送應答信號發送1字節數據發送應答信號發送1字節數據發送應答信號發送非應答信號復合格式發送停止信號,結束數據通信再次發送起始信號對從機進行尋址,同時R/W = 1發送應答信號發送應答信號發送1字節數據發送應答信號發送非應答信號主機發送起始信號,開始數據傳輸對從機進行尋址,同時R/W = 0發送1字節數據主機從機發送應答信號發送應答信號發送應答信號發送1字節數據發送1字節數據UART簡介UART: Universal Asynchronous Receiver/Transmitter,通用異步接收/發送裝置,UART是一個并行輸入成為串行輸出的芯片,通常集成在主

17、板上,多數是16550AFN芯片。因為計算機內部采用并行數據,不能直接把數據發到Modem,必須經過UART整理才能進行異步傳輸,其過程為:CPU先把準備寫入串行設備的數據放到UART的寄存器(臨時內存塊)中,再通過FIFO(First Input First Output,先入先出隊列)傳送到串行設備,若是沒有FIFO,信息將變得雜亂無章,不可能傳送到Modem。應用示例LPC2000的I/O電壓為3.3V,連接時須注意電平的匹配。LPC2000其它通信設備TxD0RxD0TxD0RxD0與PC機相連時,由于PC機串口是RS232電平,所以連接時需要使用RS232轉換器。LPC2000PC機

18、串口232電平轉換TxD0RxD0TxD0RxD0RxD1RTSCTSDSR1DTR1TxD1LPC2000ModemTxDRxDDCDRI1RTSCTSDSR1DTR1DCD1RI1RS232電平轉換當使用Modem接口時,需要一個RS232轉換器將信號轉換為RS232電平后,才能與Modem連接 。4.16 看門狗看門狗簡介 在嵌入式應用中,CPU必須可靠工作,即使因為某種原因進入了一個錯誤狀態,系統也應該可以自動恢復。看門狗的用途就是使微控制器在進入錯誤狀態后的一定時間內復位。 其原理是在系統正常工作時,用戶程序每隔一段時間執行喂狗動作(一些寄存器的特定操作),如果系統出錯,喂狗間隔超過

19、看門狗溢出時間,那么看門狗將會產生復位信號,使微控制器復位。4.16 看門狗看門狗簡介看門狗分硬件看門狗和軟件看門狗。硬件看門狗是利用一個定時器電路,其定時輸出連接到電路的復位端,程序在一定時間范圍內對定時器清零(俗稱“喂狗”),因此程序正常工作時,定時器總不能溢出,也就不能產生復位信號。如果程序出現故障,不在定時周期內復位看門狗,就使得看門狗定時器溢出產生復位信號并重啟系統。4.17 脈寬調制器PWM簡介 LPC2000的PWM基于標準的定時器模塊,具有定時器的所有特性,它是定時器匹配功能的擴展。使用PWM功能,可以在指定引腳輸出需要的波形。輸出波形可分為兩類: 單邊沿輸出; 雙邊沿輸出。5

20、.1 最小系統框圖嵌入式控制器時鐘系統調試測試接口復位及其配置系統存儲器系統供電系統(電源)可選,因為許多面向嵌入式領域的微控制器內部集成了程序和數據存儲器可選,但是在樣品階段通常都會設計這部分電路C/OS-II程序設計基礎September,2007任務設計| C/OS-II程序設計基礎任務的分類任務單次執行類事件觸發類 周期執行類按照執行方式分類一般的操作系統都提供時間管理的函數,最基本的就是延時函數,C/OS-II也不例外,C/OS-II所具有的時間管理函數見下表。C/OS-II具有簡單的動態內存管理能力。C/OS-II的動態內存管理函數見下表。任務管理函數是操作與任務相關功能的函數,詳

21、見下表。系統管理函數是一些與C/OS-II內核或功能相關的一些函數,詳見下表。C/OS-II的初始化函數有2個:OSInit()和OSStart(),它們不能在任何任務和中斷服務程序中使用,僅在main()函數中按照一定的規范被調用,其中OSInit()函數初始化C/OS-II內部變量,OSStart()函數啟動多任務環境。 C/OS-II把信號量等都稱為事件,管理它們的就是事件管理函數。具有的事件有普通信號量、互斥信號量、事件標志組、消息郵箱和消息隊列,這些都是C/OS-II用于同步與通訊的工具,本章后述的內容將會詳細介紹。系統函數概述| C/OS-II程序設計基礎系統函數的分類初始化任務管

22、理時間管理內存管理根據功能分類事件管理函數名功能備注OSStatInit()使能任務統計功能復位一次只能調用一次,并且必須在任務中調用,在調用時其它用戶任務不能處于就緒狀態OSIntEnter()進入中斷處理必須由中斷服務程序按照規范調用,使用本公司的模版就不需要調用它們OSIntExit()退出中斷處理OSSchedLock()鎖調度器必須配對使用,一般情況不需要使用。事實上,C/OS-II不推薦使用它們OSSchedUnlock()解鎖調度器OS_ENTER_CRITICAL()進入臨界區必須配對使用,一般通過禁止中斷和允許中斷來實現的。對于一些移植代碼來說,不能嵌套調用OS_EXIT_CRITICAL()退出臨界區函數名功能函數名功能OSTaskChangePrio()改變任務優先級OSTaskSuspend()掛起任務OSTaskCreate()建立任務OSTaskResume()恢復任務OSTaskCreateExt()建立任務,比OSTaskCreate()控制任務屬性更多OSTaskStkChk()檢查堆棧OSTaskDel()刪除任務OSTaskQuery()獲得任務信息OSTaskDelReq()請求刪除任務,有特殊用途系統管理函數

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論