




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
ARMCortex-M3嵌入式控制技術
——基于STM32F103RCT6
STM32F103硬件系統與KEILMDK工程第一章
嵌入式系統概述1嵌入式系統范例2嵌入式系統概念3ARM發展歷程及應用領域4嵌入式操作系統5μC/OS-II與μC/OS-III6
小結1.1嵌入式系統范例普遍認可的嵌入式系統的定義是:“以應用為中心,以計算機技術為基礎,軟硬件可裁剪,滿足應用系統對功能、可靠性、成本、體積和功耗等嚴格要求的專用計算機系統”4實例:飯水機的整個控制系統是一種典型的嵌入式系統,其核心是STM32F103RCT6等微控制器芯片,這里用STM32F103表示,通過各種外部設備和傳感器實現飲水機的智能控制,如右圖所示1.2嵌入式系統概念數字技術和軟件技術是嵌入式系統的核心技術,其中,數字技術包括數字信號處理技術和數字化芯片技術,軟件技術包括芯片級的程序設計技術和操作系統級的程序設計技術。嵌入式系統與ARM的關系廣義上,凡是嵌入到應用系統中的電子系統都可以統稱為嵌入式系統,即使是通用的計算機系統,如果被嵌入在特定的應用系統中,也可被稱為嵌入式系統狹義上,嵌入式系統除了具有硬件和軟件之外,還要求硬件系統具有體積小、重量輕、功耗低、成本低、可靠性高、可升級等特點,要求軟件系統具有體積小、可裁剪性、健壯性、專用性、實時性等特點從狹義上講,嵌入式系統硬件往往是以ARM芯片為核心的硬件平臺,嵌入式系統軟件為基于芯片級開發的無操作系統匯編或C語言實時性軟件,或者是基于嵌入式實時操作系統開發的圖形界面應用程序6嵌入式系統與ARM的關系ARM是指ARM公司設計的基于RISC(精簡指令集計算機)架構的32位高性能微處理器,一般采用哈佛總線結構,具有高速指令緩存和數據緩存,指令長度固定且多級流水執行,具有MMU(存儲器管理單元)和AMBA(高級微處理器總線結構)總線接口等狹義上,嵌入式系統除了具有硬件和軟件之外,還要求硬件系統具有體積小、重量輕、功耗低、成本低、可靠性高、可升級等特點,要求軟件系統具有體積小、可裁剪性、健壯性、專用性、實時性等特點7嵌入式系統與嵌入式操作系統的關系嵌入式操作系統也具有桌面操作系統的特點,即管理硬件資源、調度軟件進程、處理軟件中斷等,嵌入式操作系統通常包括硬件驅動軟件、系統內核、設備驅動接口、文件系統、圖形界面、網絡通信協議、USB驅動協議等。流行的嵌入式操作系統有:WindowsCE嵌入式LinuxμC/OS-IIVxWorks嵌入式系統是面向特定應用和環境、集成硬件和軟件的單板機,嵌入式系統的硬件資源有限,突出地表現在其具有較小容量的RAM和ROM空間,通過外擴SD卡等存儲介質擴展存儲空間;直接基于ARM芯片開發的匯編或C語言實時性程序為嵌入式系統定制多任務、實時的嵌入式操作系統8嵌入式系統=ARM硬件系統+嵌入式操作系統+操作系統級應用軟件系統嵌入式系統=ARM硬件系統+芯片級應用軟件系統嵌入式系統研發特點9嵌入式系統研發需要具備電子類和軟件類兩方面的專門知識,是一門交叉組合型學科。嵌入式系統研發可分為四類:嵌入式系統的硬件平臺設計,需要根據應用環境選擇合適的ARM芯片,滿足處理速度和存儲深度的要求,同時,需要兼顧性價比和芯片特點與生存周期等因素基于ARM芯片的芯片級匯編或C語言程序設計,要求設計者對ARM芯片工作原理和內部結構有較好的認識和理解,這類程序包括系統初始化程序和特定功能的算法程序,需要對匯編語言和指令以及C語言編程有一定的基礎嵌入式操作系統的定制和驅動程序的開發,這類研發已經完全商業化基于嵌入式操作系統開發用戶應用程序,特別是開發具有良好圖形界面的用戶應用程序,是對設計者的一個挑戰。基于不同的嵌入式操作系統,開發應用程序的方式有很大的不同1.3ARM發展歷程及應用領域版本典型微處理器類型特點ARMv1~ARMv4(1990年ARM公司成立)已退市早期的版本中只有ARMv4,目前在某些ARM7和StrongARM處理器中可見,可以被視為32位尋址的32位指令集體系結構ARMv4T(1995年)ARM7TDMI、ARM7TDMI-S、ARM920T、ARM922T支持16位的Thumb指令集,比32位的ARM指令集節省約35%的存儲空間ARMv5TE(1999年)ARM946E-S、ARM966E-S、ARM968E-S、ARM996HS增加了ARM與Thumb狀態切換的指令,增強了DSP類型指令,尤其是在語音數字信號處理方面提高了70%以上的性能ARMv5TEJ(2000年)ARM7EJ-S、ARM926EJ-S、ARM1026EJ-S添加了Java加速技術ARMv6(2001年)ARM1176JZ(F)-S改進了異常處理,更好地支持多處理器指令,增加了支持SIMD(單指令多數據)的多媒體指令,對視頻和音頻解碼性能提高近4倍ARMv6T2ARM1156T2(F)-S支持Thumb-2技術ARMv7Cortex-A8、Cortex-A9、Cortex-R4(F)支持NEON技術,使得DSP和多媒體處理性能提高4倍,支持向量浮點運算,為下一代3D圖像和游戲硬件服務ARMv7-MCortex-M3優化了微控制器,低功耗ARM7TDMI內核結構ARM9微處理器系列ARM9E內核結構ARM10E微處理器系列ARM11內核結構1.4嵌入式操作系統14嵌入式操作系統是嵌入式系統的操作系統,通常被設計得非常緊湊有效,拋棄了運行在它們之上的特定應用程序所不需要的各種功能。嵌入式操作系統負責嵌入式系統的全部軟、硬件資源的分配和調度工作,控制協調并發活動,且能通過裝卸某些軟件模塊以實現系統所要求的功能。實時系統是對邏輯和時序要求非常嚴格的系統,如果邏輯和時序出現偏差,將會引起嚴重后果。即實時系統是必須能在確定的時間內執行特定功能,并能對外部的異步事件做出響應的計算機系統,實時系統對響應時間有嚴格要求。實時多任務操作系統是指具有多任務調度和資源管理功能的實時系統,即所謂的嵌入式操作系統,它往往具有以下特點:實時性,即在確定的時間內執行特定功能和對中斷做出響應。體積小,一般為幾KB到幾百KB。可裁剪,即嵌入式操作系統采用模塊化設計,可根據需要選擇特定的功能模塊。健壯性,即具有極強的運行穩定性。可移植性,即可以運行于多種嵌入式系統平臺上。可固化性,即嵌入式操作系統可固化在嵌入式系統的Flash芯片內。提供設備驅動和應用程序接口,即用戶可以借助嵌入式操作系統使用和管理系統資源。提供圖形用戶界面和網絡功能。有些嵌入式操作系統提供了友好的圖形用戶界面(GUI)和網絡支持。WindowsCE優點:15具有美觀的圖形用戶界面,而且該界面與桌面Windows系統一脈相承,使得操作直觀簡單。開發基于WindowsCE的應用程序相對簡單,因為WindowsCE的API函數集是桌面Windows系統API函數的子集,熟悉桌面Windows程序設計的程序員可以很快地掌握WindowsCE應用程序的設計方法,所以,WindowsCE應用程序的開發成本較低。WindowsCE的文件管理功能非常強大,支持桌面Windows系統下的FAT、FAT32等文件系統。WindowsCE的可移植性較好。WindowsCE下的設備驅動程序開發相對容易。WindowsCE的電源管理功能較好,主要體現在WindowsPhone上。WindowsCE的進程管理和中斷處理機制較好。WindowsCE支持桌面Windows系統的眾多文檔格式,例如Word和Excel等,這種兼容性方便桌面Windows用戶在WindowsCE設備上處理文檔和數據。VxWorks特點:16可靠性極高。VxWorks通過了Do-178B、ARINC653和IEC61508等平臺嚴格的安全性驗證,因而它主要應用于軍事、航空、航天等對安全性和實時性要求極高的場合。穩定性和可靠性高是VxWorks最受歡迎的特點。實時性好。實時性是指能夠在限定時間內執行完規定功能并對外部異步事件做出響應的能力。VxWorks系統實時性極好,系統本身開銷很少,進程調度、進程間通信、中斷處理等系統程序精煉有效,造成的任務切換延時很短,提供了優先級搶先式和時間片輪換方式多任務調度,使硬件系統發揮最好的實時性。例如,美國的F-16戰斗機、B-2隱形轟炸機和愛國者導彈,甚至1997年的火星探測器上也使用了VxWorks系統。可裁剪性好。VxWorks內核只有8KB,其他系統模塊可根據需要定制,使得VxWorks系統具有靈活的可裁剪性能,既可用于極小型單片系統,也可用于大規模網絡系統。VxWorks的存儲腳本(MemoryFootprint)可以指定系統運行內存空間大小(這里的存儲腳本可理解為基于VxWorks的應用程序可執行代碼)。開發環境友好。基于圖形化的集成開發環境WindRiverStudio,可開展基于VxWorks和WindRiverLinux系統應用的工程開發。WindRiverStudio是一個完備的設計、調試、仿真和工程集成解決方案。嵌入式Linux特點:17嵌入式Linux是完全開源的,因此它廣泛應用于高校教學。研究嵌入式Linux代碼的專家、學者遠比其他操作系統都多,而且Internet上的資源豐富,也有大量的圖書、資料,使得學習Linux系統的代價最小。嵌入式Linux是免費的,不涉及任何版權和專利。這一點被商界所看重。因此,大部分嵌入式產品在初期都使用過嵌入式Linux版本。嵌入式Linux被很多團體和組織二次開發后,形成具有獨立知識產權的嵌入式操作系統,所以,嵌入式Linux變種系統非常多,如WindRiverLinux和μCLinux等。嵌入式Linux與QT相結合,使嵌入式Linux具有良好的圖形人機界面,甚至可以和WindowsCE相媲美,而且QT目前也是開源的。嵌入式Linux的移植能力強,不需要微控制器具有MMU功能,其變種形式幾乎可應用于所有主流嵌入式系統中。嵌入式Linux對外設的驅動能力很強,驅動接口程序設計相對容易,網絡上有大量常用設備的驅動代碼可供參考借鑒。嵌入式Linux在內核、文件系統、網絡支持等方面均有突出的特點。最新的Linux內核,具有200多萬行源代碼,可支持32個CPU,實時性顯著提高(但嚴格意義上不是實時操作系統),采用了更有效的任務調度器,增加了對多種嵌入式處理器的支持,在多媒體和網絡通信方面也有很大提高。1.5μC/OS-II特點:18μC/OS-II具有優秀的可移植性。μC/OS-II的絕大部分源代碼由C語言寫成,只有一小部分與處理器相關的移植代碼使用匯編語言編寫,匯編語言代碼量壓縮到最低限度。μC/OS-II系統可固化在嵌入式系統的Flash中。μC/OS-II系統可裁剪。通過μC/OS-II系統的OS_CFG.H配置文件可以有選擇地使用μC/OS-II系統功能組件,μC/OS-II的可裁剪性是靠條件編譯實現的。μC/OS-II系統是可搶先型的實時內核,即μC/OS-II總是執行所有處于就緒狀態下優先級最高的任務。μC/OS-II系統提供了信號量、互斥信號量、事件標志組、消息郵箱、消息隊列等多種服務組件,提供了用于時間管理和內存管理的函數,使用這些組件可方便地在任務間進行通信和同步。μC/OS-II系統具有很高的安全性和可靠性。1.5μC/OS-III特點:19μC/OS-III支持ARM7、ARM9、Cortex-M、Nios-II、PowerPC、Coldfire、Microblaze、SHx、M16C、M32C和Blackfin等微處理器。μC/OS-III支持無限多個任務,支持時間片輪換調度,不同任務的優先級可以相同,優先級號取值不受限制。由于μC/OS-III的任務個數不受限制,與任務相關的信號量、互斥信號量、事件標志組、消息隊列、定時器、內存分區等的個數也不受限制,并且μC/OS-III允許受監視的任務堆棧的空間可擴展,在使用時需要指定堆棧的安全空間大小,當堆棧使用的空間超過安全空間大小時向系統報警,這樣可有效地保護應用程序,不至于因堆棧訪問越界而使系統癱瘓。μC/OS-III支持多個任務具有相同的優先級,當相同優先級的幾個任務同時就緒時,μC/OS-III為每個任務分配用戶指定的CPU時間片,每個任務可定義它自己的時間片。μC/OS-III對中斷響應時間是確定的,進入臨界區的轉換時間(即關中斷時間)幾乎為0個時鐘周期。沒有裁剪的μC/OS-III系統約為24KB,最小配置的μC/OS-III系統只有6KB,內核服務組件有10類,相關的應用程序接口(API)函數有80個。μC/OS應用領域:20汽車電子方面:發動機控制、防抱死系統(ABS)、全球定位系統(GPS)等;辦公用品:傳真機、打印機、復印機、掃描儀等;通信電子:交換機、路由器、調制解調器、智能手機等;過程控制:食品加工、機械制造等;航空航天:飛機控制系統、噴氣式發動機控制等;消費電子:MP3/MP4/MP5播放器、機頂盒、洗衣機、電冰箱、電視機等;機器人和武器制導系統等。thankyou第二章
STM32F103微控制器目錄STM32F103概述STM32F103RCT6管腳定義STM32F103架構STM32F103存儲器STM32F103片內外設STM32F103異常與中斷本章小結ARM(AdvancedRISCMachine,高級精簡指令集機器)也是ARM公司的注冊商標。目前,ARM公司主推的具有知識產權的內核為Cortex-M系列,意法半導體獲得了Cortex-M系列內核的授權,推出了32位STM32微控制器。1STM32F1系列均集成了Cortex-M3內核(所謂的內核就是指傳統意義上的中央處理單元(CPU),包含運算器、控制器和總線陣列)。不失一般性,本書以具體的STM32F103RCT6型號芯片為例展開論述。本章內容參考了STM32F103數據手冊和用戶參考手冊。2.1STM32F103概述2STM32F103RCT6芯片的主要特性如下:(1)集成了32位的ARMCortex-M3內核,最高工作頻率可達72MHz,計算能力為1.25DMIPS/MHz(Dhrystone2.1),具有單周期乘法指令和硬件除法器;(2)具有512KB片內FLASH存儲器和48KB片內SRAM存儲器;(3)內部集成了8MHz晶體振蕩器,可外接4~16MHz時鐘源;(4)2.0~3.6V單一供電電源,具有上電復位功能(POR);(5)具有睡眠、停止、待機等三種低功耗工作模式;(6)64管腳LQFP封裝(薄型四邊引線扁平封裝),適合學生手工焊裝;(7)內部集成了11個定時器:4個16位的通用定時器,2個16位的可產生PWM波控制電機的定時器,2個16位的可驅動DAC的定時器,2個加窗的看門狗定時器和1個24位的系統節拍定時器(24位減計數);3STM32F103概述4(8)2個12位的DAC和3個12位的ADC(16通道);(9)集成了內部溫度傳感器和實時時鐘RTC;(10)具有51根高速通用輸入輸出口(GPIO),可從其中任選16根作為外部中斷輸入口,幾乎全部GPIO可承受5V輸入(PA0~PA7、PB0~PB1、PB5、PC0~PC5和PC13~PC15除外);(11)集成了13個外部通信接口:2個I2C、3個SPI(18Mbps,其中復用2個I2S)、1個CAN(2.0B)、5個UART、1個USB2.0設備和1個并行SDIO;(12)具有12通道的DMA控制器,支持定時器、ADC、DAC、SDIO、I2S、SPI、I2C和UART外設。(13)具有96位的全球唯一編號;(14)工作溫度為-40~85℃。STM32F103概述2.2STM32F103RCT6管腳定義56STM32F103RCT6管腳定義由左圖可知,芯片STM32F103RCT6包括3個16位的通用目的輸入/輸出口(GPIO),依次稱為PA、PB、PC,以及1個3位的GPIO口PD,幾乎每個GPIO口都復用了其他的功能。芯片STM32F103RCT6大部分引腳名稱的具體含義和用法在后面章節中介紹,其余的部分請參考STM32F103數據手冊和參考手冊。2.3STM32F103架構78STM32F103架構9STM32F103架構2.4STM32F103存儲器10STM32F103RCT6芯片是32位的微控制器,可尋址存儲空間大小為232=4GB,分為8個512MB的存儲塊,存儲塊0的地址范圍為0x0~0x1FFFFFFF。內FLASH映射到地址空間0x08000000~0x0807FFFF(512kB),實際上只有低端256kB空間有效;系統存儲器(SystemMemory)映射到地址空間0x1FFFF000~0x1FFFF7FF(2kB),用戶選項字節(OptionBytes)映射到地址空間0x1FFFF800~0x1FFFF80F(16B)。同時,地址范圍0x0~0x7FFFF,根據啟動模式要求,可以作為FLASH或系統存儲器的別名訪問空間,例如,BOOT0=0時,片內FLASH同時映射到地址空間0x0~0x7FFFF和地址空間0x08000000~0x0807FFFF,即地址空間0x0~0x7FFFF是FLASH存儲器(對于STM32F103RCT6而言,只有0x0~0x3FFFF有效)。除這些之外,其他的空間是保留的。11STM32F103存儲器盡管STM32F103RCT6微控制器具有兩個APB總線,且這兩個總線上的外設訪問速度不同,但是,芯片存儲空間中并沒有區別這兩個外設的訪問空間,而是把全部APB外設映射到存儲塊2中,每個外設的寄存器占據1kB大小的空間,如下表所示。除了表中的地址空間外,存儲塊2中其他空間是保留的。12STM32F103存儲器STM32F103RCT6芯片不支持訪問外部靜態存儲器,即無靜態存儲器(FSMC)服務,所以存儲塊3~6都是保留的。存儲塊7被Cortex-M3內核的內部外設占用。存儲區使用小端(Little-Endian)模式存儲,對于一個32位的字存儲區,可存入字(32位)、半字(16位)或字節(8位)數據,存入字數據時,字數據的低字節存入字存儲區的低地址,字數據的高字節存入字存儲區的高地址。13STM32F103存儲器2.5STM32F103片內外設14STM32F103RCT6微控制器片內具有多種高速總線,其中,指令總線,連接FLASH存儲器指令接口和Cortex-M3內核;數據總線,連接FLASH存儲器數據接口和Cortex-M3內核;系統總線,通過總線陣列與DMA、AHB和APB總線相連接;DMA總線連接DMA控制器和總線陣列;高性能總線通過AHB-APB橋與高級外設總線相連接,AHB總線與總線陣列相連接。復雜而高效的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年三線城市房屋租賃合同范本參考
- 2025個人地下車位租賃合同
- 2025工商銀行房貸借款合同
- 甲方預付貨款合同協議
- 盈利飯店團購合同協議
- 用刮膩做踢腳線合同協議
- 電梯產品買賣合同協議
- 瓷磚加工建材銷售合同協議
- 環境治理施工合同協議
- 特殊馬達采購合同協議
- 電信全綜合業務支撐維護工作經驗交流材料
- 20S517 排水管道出水口
- 經尿道前列腺剜除術講解
- 除塵系統和相關安全設施設備運行、維護及檢修、維修管理制度
- 電影音樂欣賞智慧樹知到答案章節測試2023年華南農業大學
- 傳感器原理與應用智慧樹知到答案章節測試2023年山東大學(威海)
- 工程熱力學 09氣體動力循環-wyz-2013
- 情緒管理課:認識情緒-心理健康教育課件
- GB/T 21459.3-2008真菌農藥可濕性粉劑產品標準編寫規范
- 檢驗索賠仲裁和不可抗力
- GA/T 1490-2018法庭科學激光物證顯現儀技術要求
評論
0/150
提交評論