嵌入式系統及套用課程是蘇州大學於2017年04月10日首次在中國大學MOOC開設的慕課、國家精品線上開放課程。該課程授課教師是王宜懷、王林、張建、劉長勇。據2021年3月中國大學MOOC官網顯示,該課程已開課9次。
嵌入式系統及套用課程共有五單元,14章,包括ARM Cortex-M0+處理器、存儲映像、中斷源與硬體最小系統、第一個樣例程式及工程組織、構件化開發方法與底層驅動構件封裝規範、串列通信模組及第一個中斷程式結構、定時器相關模組等內容。
基本介紹
- 中文名:嵌入式系統及套用
- 授課老師:王宜懷、王林、張建、劉長勇
- 類 別:慕課、國家精品線上開放課程
- 提供院校:蘇州大學
- 授課平台:中國大學MOOC
- 開課時間:2017年04月10日(首次)
課程性質
課程背景
課程定位
開課信息
開課次數 | 開課時間 | 學時安排 | 授課教師 | 參與人數 |
---|---|---|---|---|
第1次開課 | 2017年04月10日~2017年07月31日 | 3~5小時每周 | 王宜懷、王林、張建 | 4269 |
第2次開課 | 2017年09月04日~2018年01月07日 | 3824 | ||
第3次開課 | 2018年03月12日~2018年07月07日 | 3小時每周 | 王宜懷 | 4073 |
第4次開課 | 2018年09月10日~2019年01月06日 | 王宜懷、王林、張建 | 4711 | |
第5次開課 | 2019年03月04日~2019年06月30日 | 4848 | ||
第6次開課 | 2019年09月02日~2019年12月25日 | 4950 | ||
第7次開課 | 2020年02月17日~2020年06月14日 | 3.5小時每周 | 王宜懷、王林、張建、劉長勇 | 9161 |
第8次開課 | 2020年09月07日~2021年01月03日 | 4小時每周 | 王宜懷、王林、張建 | 3002 |
第9次開課 | 2021年03月01日~2021年06月27日 | 王宜懷、王林、張建、劉長勇 | 待定 |
課程簡介
課程大綱
第一單元 基礎與硬體(第1~3章(1~5講)) 第一章 概述(第1~3講) 1.1 嵌入式系統定義、發展簡史、分類及特點 1.2 嵌入式系統的學習困惑、知識體系及學習建議 1.3 微控制器與套用處理器簡介 1.4 嵌入式系統常用術語 1.5 嵌入式系統常用的C語言基本語法概要 第2章 ARM Cortex-M0+處理器(第4講) 2.1 ARM Cortex-M0+處理器簡介 2.2 ARM Cortex-M0+處理器的指令系統 2.3 ARM Cortex-M0+指令集與機器碼對應表 2.4 GNU彙編語言的基本語法 第3章 存儲映像、中斷源與硬體最小系統(第5講) 3.1 恩智浦Kinetis系列微控制器簡介 3.2 KL系列MCU簡介與體系結構概述 3.3 KL25/26系列存儲映像與中斷源 3.4 KL25/26的引腳功能 3.5 KL25/26硬體最小系統原理圖 第二單元 入門與軟體框架(第4~6章(6~14講)) 第4章 第一個樣例程式及工程組織(第6~9講) 4.1 通用I/O接口基本概念及連線方法 4.2 連線埠控制模組與GPIO模組的編程結構 4.3 GPIO驅動構件封裝方法與驅動構件封裝規範 4.4 利用構件方法控制小燈閃爍 4.5 工程檔案組織框架與第一個C語言工程分析 4.6 第一個彙編語言工程:控制小燈閃爍 第5章 構件化開發方法與底層驅動構件封裝規範(第10講) 5.1 嵌入式硬體構件 5.2 嵌入式底層驅動構件的概念與層次模型 5.3 底層驅動構件的封裝規範 5.4 硬體構件及底層軟體構件的重用與移植方法 第6章 串列通信模組及第一個中斷程式結構(第11~14講) 6.1 異步串列通信的通用基礎知識 6.2 KL25/26晶片UART驅動構件及使用方法 6.3 ARM Cortex-M0+中斷機制及KL25/26中斷編程步驟 6.4 UART驅動構件的設計方法 第三單元 基本模組(第7~10章(第15~24講)) 第7章 定時器相關模組(第15~17講) 7.1 ARM Cortex-M0+核心定時器(Systick) 7.2 脈寬調製、輸入捕捉與輸出比較通用基礎知識 7.3 TPM模組的驅動構件及使用方法 7.4 TPM模組驅動構件的設計方法 | 7.5 周期中斷定時器PIT模組 7.6 低功耗定時器LPTMR模組 7.7 實時時鐘RTC模組 第8章 GPIO套用—鍵盤、LED與LCD(第18~20講) 8.1 鍵盤基礎知識與鍵盤驅動構件設計 8.2 LED數碼管基礎知識與LED驅動構件設計 8.3 LCD基礎知識與LCD驅動構件設計 8.4 鍵盤、LED及LCD驅動構件測試實例 第9章 Flash線上編程(第21~22講) 9.1 Flash驅動構件及使用方法 9.2 Flash保護與加密 9.3 Flash驅動構件的設計方法。 第10章 ADC、DAC與CMP模組(第23~24講) 10.1 模擬/數字轉換器ADC 10.2 數字/模擬轉換器DAC 10.3 比較器CMP 第四單元 較複雜通信模組(第11~12章(第25~31講)) 第11章 SPI、I2C與TSI模組(第25~27講) 11.1 串列外設接口SPI模組 11.2 積體電路互聯匯流排I2C模組 11.3 觸摸感應接口TSI模組 第12章 USB2.0編程(第28~31講) 12.1 USB套用開發基礎知識 12.2 USB設備(從機)的套用編程方法 12.3 USB主機的套用編程方法 12.4 設計微控制器的USB驅動構件應掌握的基礎知識 12.5 KL25/26晶片USB模組的編程結構 12.6 KL25/26晶片作為USB設備(從機)的驅動構件設計 12.7 KL25/26晶片作為USB主機的驅動構件設計 第五單元 其他(第13~14章(第32~35講)) 第13章 系統時鐘與其他功能模組(第32~34講) 13.1 時鐘系統 13.2 電源模組 13.3 低漏喚醒單元 13.4 看門狗 13.5 復位模組 13.6 位操作引擎技術及套用方法 第14章 進一步學習指導(第35講) 14.1 關於更為詳細的技術資料 14.2 關於實時作業系統RTOS 14.3 關於嵌入式系統穩定性問題 |
第一單元 基礎與硬體(第1~3章(1~5講)) 第01講 嵌入式系統概述(書1.1~1.3) 第02講 嵌入式系統常用術語(書1.4) 第03講 嵌入式系統常用的C語言基本語法概要(書1.5) 第04講 ARM Cortex-M體系結構與指令系統簡介(書第2章) 第05講 存儲映像、中斷源與硬體最小系統(書第3章) 第一單元 單元測試 第二單元 入門與軟體框架(第4~6章(6~14講)) 第06講 GPIO及基本打通原理(書4.1~4.2) 第07講 程式的基本調試方法(補充) 第08講 用構件方法進行GPIO套用編程(書4.3~4.4) 第09講 分析一個彙編實例(書4.5~4.6) 第10講 嵌入式硬體構件與底層驅動構件基本規範(書第5章) 第11講 串列通信基礎知識與UART驅動構件使用方法(書6.1~6.2) 第12講 ARM Cortex-M0+中斷機制與中斷編程步驟(書6.3) 第13講 UART驅動構件的設計方法(書6.4) 第14講 C#快速入門與串口通信編程方法 實驗01講 開發環境搭建 實驗02講 實驗儀器及使用方法 實驗03講 入門實驗:點亮小燈 第二單元 單元測試 第三單元 基本模組(第7~10章(第15~24講)) 第15講 ARM Cortex-M0+核心定時器(Systick)(書7.1) 第16講 脈寬調製、輸入捕捉、輸出比較(書7.2~7.3) | 第17講 周期中斷定時器、低功耗定時器、實時時鐘(書7.4~7.7) 第18講 GPIO套用—鍵盤(書8.1) 第19講 GPIO套用—LED(書8.2) 第20講 GPIO套用—LCD(書8.3) 第21講 Flash線上編程構件的使用(書9.1~9.2) 第22講 Flash線上編程構件的設計方法(書9.3) 第23講 模數轉換ADC模組(書10.1) 第24講 數模轉換DAC與CMP模組(書10.2~10.3) 第三單元 單元測試 第四單元 較複雜通信模組(第11~12章(第25~31講)) 第25講 串列外設接口SPI模組(書11.1) 第26講 積體電路互聯匯流排I2C模組(書11.2) 第27講 觸摸感應接口TSI模組(書11.3) 第28講 USB基本概念及從機編程方法(書12.1~12.2) 第29講 USB主機編程方法(書12.3) 第30講 MCU的USB底層驅動設計方法(上)(書12.4~12.7) 第31講 MCU的USB底層驅動設計方法(下)(書12.4~12.7) 第四單元 單元測試 第五單元 其他(第13~14章(第32~35講)) 第32講 時鐘系統(書13.1) 第33講 看門狗相關模組(書13.5) 第34講 位操作引擎技術及套用方法(書13.4) 第35講 進一步學習指導(書第14章) 第五單元 單元測試 |
教學要點
章節 | 目的和要求 | 重點和難點 |
第1章 | 本章作為導引,要求學生掌握嵌入式系統定義、由來、分類及特點;了解初學者在學習嵌入式系統時可能遇到的困惑認識,從而消除這些困惑;掌握嵌入式系統的知識體系,理解學習建議;掌握MCU的基本含義及MCU給測控系統設計帶來的變化及嵌入式產品的一般構成與開發方法。了解嵌入式系統的基本術語,快速收攏與複習本書所用到的C語言基本知識要素。 | 嵌入式系統分類及不同類型的學習方法、嵌入式系統的學習困惑、MCU的基本含義、嵌入式產品的一般構成與開發方法。 |
第2章 | 了解CMO+核心結構、存儲映像;掌握CM0+內部暫存器,記憶部分指令保留字;理解CM0+定址方式;了解指令系統及機器碼;記憶部分偽指令。 | 內部暫存器、記憶指令保留字、記憶部分偽指令。 |
第3章 | 本章通過介紹Kinetis L 系列MCU與最小硬體系統,結合開發板,對基於AMR Cortex-M0+核心的微控制器有更進一步了解,更快速入門學習嵌入式開發技術。 | 存儲器映像結構、引腳功能分類(分成硬體最小系統引腳及功能引腳)、硬體最小系統電路的理解。 |
第4章 | 需要花功夫透徹理解,達到快速且規範入門的目的。本章通過GPIO實例完成第一個工程的入門,學會下載程式與調試程式的基本方法,理解啟動過程。主要目的是理解程式框架和工作過程。了解彙編工程。 | 底層驅動、程式框架和程式的調試方法。 |
第5章 | 本章主要分析嵌入式系統構件化設計的重要性和必要性,給出嵌入式硬體構件概念及嵌入式硬體構件的分類、基於嵌入式硬體構件的電路原理圖設計簡明規則;給出嵌入式底層驅動構件的概念與層次模型;給出底層驅動構件的封裝規範,包括構件設計的基本思想與基本原則、編碼風格基本規範、頭檔案及源程式設計規範;給出硬體構件及底層軟體構件的重用與移植方法。這一章的目的,是期望通過一定的規範,提高嵌入式軟硬體設計的可重用性和可移植性。 | 底層軟體構件的編程規範。 |
第6章 | 本章闡述KL25的串列通信模組構件化編程,並且闡述ARM Cortex-M0+的中斷編程框架,通過這一章的學習,掌握嵌入式系統中斷程式的設計。 | 中斷的產生,中斷處理函式的作用,學會處理其他中斷的方法。對要求較高的學生,UART驅動構件的製作也是重點和難點之一。 |
第7章 | 掌握ARM Cortex-M0+核心定時器(Systick)的編程方法定時接口模組;掌握脈寬調製、輸入捕捉與輸出比較通用基礎知識及其構件使用方法;理解脈寬調製、輸入捕捉與輸出比較構件的設計方法;了解周期中斷定時器PIT模組、低功耗定時器LPTMR模組、實時時鐘RTC模組構件使用方法。 | Systick的編程方法、脈寬調製、輸入捕捉與輸出比較通用基礎知識。 |
第8章 | 對於鍵盤,主要掌握查詢法、定時掃描法與中斷法,掌握鍵值轉為定義值的編程方法。對於LED編程,掌握掃描法的基本工作原理、接口方法和編程要點。對於LCD編程,了解LCD驅動程式的編寫以及LCD顯示的原理。同時,通過對構件封裝過程的學習加深對構件思想的理解。 | 套用構件的設計方法。 |
第9章 | 了解Flash存儲器的基本特點及編程模式,掌握Flash存儲器線上編程的基本概念,理解的Flash存儲器編程的基本操作。掌握Flash存儲器線上編程驅動構件的使用方法。 | Flash存儲器編程的基本操作,Flash編程方法。 |
第10章 | 掌握模/數轉換(ADC)、數/模轉換(DAC)以及比較器(CMP)模組的基本原理和構件的使用方法。 | ADC轉換的技術參數及構件設計。 |
第11章 | 串列外設接口SPI、積體電路互聯匯流排I2C和觸摸感應輸入(TSI)模組的工作原理和編程方法。 | SPI、I2C、TSI的基本原理。 |
第12章 | 了解USB通信接口的優點及基本特點,掌握USB驅動構件的使用方法。了解USB驅動構件的設計方法。 | USB設備上電的枚舉過程。 |
第13章 | 掌握時鐘系統、看門狗的編程方法;了解電源模組、低漏喚醒單元、復位模組、位操作引擎技術及套用方法。理解冷復位及熱復位。 | 重點是時鐘系統、看門狗定時器、冷復位及熱復位。難點是位操作引擎技術。 |
課前預備
預備知識
學習資料
書名 | 作者 | 出版時間 | 出版社 |
---|---|---|---|
《嵌入式系統設計的藝術(英文版•第2版)》 | [美]Jack Ganssle | 2009 | 人民郵電出版社 |
《嵌入式軟體概論》 | [美]Colin Walls | 2007 | 北京航空航天大學出版社 |
《英漢雙解嵌入式系統詞典》 | [美]Jack Ganssle, Michael Barr | 2006 | 北京航空航天大學出版社 |
《USB 2.0設備的設計與開發》 | 邊海龍,賈少華 | 2004 | 人民郵電出版社 |
《 NATO Standard for Development of Reusable Software Components》 | NATO Communications and Information Systems Agency | 1991 | - |
《Using as The gnu Assembler Version2》 | Free Software Foundation Inc | 2012 | |
《 Cortex-M3權威指南(中文版)》 | Joseph Yiu | 2011 | 北京航空航天大學出版社 |
《The Definitive Guide to the ARM Cortex-M0》 | Joseph Yiu | 2011 | Elsevier Inc |
ARMv7-M Architecture Reference Manual | ARM | 2010 | - |
ARMv6-M Architecture Reference Manual | |||
《Cortex-M0+ Devices Generic User Guide》 | 2012 | ||
《Cortex-M0+ Technical Reference Manual Rev.r0p1》 | |||
《FRDMKL26ZUser Guide》 | NXP | 2013 | |
《 Kinetis SDK V1.1.0 For KL26》 | 2015 | ||
《KL26 Sub-Family Data Sheet Rev.3》 | 2014 | ||
《KL26 Sub-Family Reference Manual》 | 2015 | ||
《Kinetis Design Studio V3.0.0- User's Guide Rev3.0》 | |||
《 Kinetis L Peripheral Module Rev.0》 | 2012 | ||
《 KL25 Sub-Family Data Sheet Rev.3》 | |||
《KL25 Sub-Family Reference Manual Rev.3》 |