课程简介:
本课程是计算机科学与技术、物联网工程、电子信息等专业的重要技术类课程。嵌入式计算机系统简称为嵌入式系统,其概念最初源于传统测控系统对计算机的需求,是不以计算机面目出现的“计算机”,这个计算机系统隐含在各类具体的产品之中,在这些产品中,计算机程序起到了重要作用。其应用范围可以粗略分为两大类:一类是电子系统智能化(如工业控制、汽车电子、家用电器、物联网应用、嵌入式人工智能等),这类应用也被称为微控制器MCU领域,从形态上看,更类似于早期的电子系统,但内部计算程序起核心控制作用。另一类是计算机应用的延伸(如平板电脑、手机等),这类应用也被称为应用处理器MAP领域。
从学习与开发角度,微控制器MCU是学习嵌入式系统的入门环节,且为重要的一环,它注重软件硬件协同,注重底层硬件接口、驱动及软硬件密切结合的开发调试技能等。应用处理器MAP更接近通用计算机系统,学习与开发方式也类似于通用计算机。从学习规律角度看,若是要全面学习掌握嵌入式系统,应该先学习掌握微控制器,然后在此基础上,进一步学习实时操作系统、嵌入式操作系统、应用处理器软件开发等,而不要倒过来学习。
微控制器是嵌入式人工智能、工业物联网的“大脑”,是嵌入式系统的技术核心。本课程按照“入门时间较快、硬件成本较少,软硬件资料规范、知识要素较多,学习难度较低”的基本原则,选择流行的32位ARM Cortex-M系列微处理器为蓝本,以嵌入式硬件构件及底层软件构件设计为主线,基于嵌入式软件工程的思想,按照“通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件的设计方法”的线条,逐步阐述电子系统智能化嵌入式应用的软件与硬件设计。使读者逐步掌握嵌入式系统的基本知识要素、基本原理与设计方法,获得嵌入式系统的基本脉络,打好软硬设计基础,逐步学会电子系统智能化嵌入式应用的软硬件设计,强化实践训练。
本课程教学用书为普通高等教育“十二五”国家级规划教材、江苏省高等学校重点教材《嵌入式技术基础与实践(第4、5版)》(王宜怀等著),该教材历经十多年凝练,仔细梳理了嵌入式系统的通用基础知识要素,注重把握通用知识与芯片相关知识之间的平衡、把握硬件与软件的关系、对底层驱动进行构件化封装、设计合理的测试用例、提供硬件核心板、写入调试器,网上光盘提供了所有模块完整的底层驱动构件化封装程序与测试用例,方便读者进行实践与应用。
电子资源下载地址及路径:
“https://sumcu.suda.edu.cn/”→“金葫芦专区”→“嵌入式系统及应用”,右边为下载索引
实验套件:
MOOC学员优惠价格:AHL-ESA-I型(精简版,可完成书中90%实验)160元/套,可以借用,也可以购买,学员可加QQ群询问:808701915,联系张建老师;
另有AHL-ESA-II型(基础版,含有3个附加外设部件)及AHL-ESA-III型(增强版,含有9个附加外设部件),可供学校实验室使用,价格咨询及购买可联系:18915418296,施连敏老师。
本课程教学目的在于通过“通用知识—驱动构件使用方法—测试实例—芯片编程结构—构件的设计方法”的线条,使学生逐步掌握嵌入式系统的基本概念、基本原理与设计方法,获得嵌入式系统的基本脉络,打好嵌入式系统软硬设计的基础,逐步学会电子系统智能化嵌入式应用的软件与硬件设计,强化实践训练。
必须具备以下知识:
C语言
具备一定的电子线路知识
[1] Joseph Yiu著,宋岩译. Cortex-M3权威指南(中文版). 北京航空航天大学出版社. 2011. (简称Cortex-M3权威指南)
[2] Free Software Foundation Inc.Using as The gnu Assembler Version2.11.90,2012. (简称GNU汇编语法)
[3] NATO Communications and Information Systems Agency. NATO Standard for Development of Reusable Software Components, 1991.
[4] [美]Jack Ganssle, Michael Barr著.马广云等译.英汉双解嵌入式系统词典.北京航空航天大学出版社.2006.
[5] [美]Colin Walls著.沈建华译.嵌入式软件概论.北京航空航天大学出版社.2007.
[6] [美]Jack Ganssle著.嵌入式系统设计的艺术(英文版•第2版).人民邮电出版社,2009
[7] ARM. ARMv6-M Architecture Reference Manual,2010.
[8] ARM. ARMv7-M Architecture Reference Manual,2014.
[9] ARM. Cortex-M4 Devices Generic User Guide,2010.
[10] ARM Cortex‑M4 Processor Technical Reference Manual Revision r0p1,2015
1.学习本课程有什么用?
本课程为软硬件结合,理论紧密联系实践的一门程序开发课程,学习本课程有利于加强软硬件相结合开发的学习,有利于提高动手编程的能力。本课程力图利用构件阐述嵌入式通用基础,为嵌入式人工智能打好底层软件基础。
2.学习本课程需要什么基础?
学习本课程需要具备C语言,计算机基础操作,具备一定的电子线路知识。
3.本课程主要学习什么内容?
本课程以MCU为核心的嵌入式技术基础与实践。要完成一个以MCU为核心的嵌入式系统应用产品设计,需要有硬件、软件及行业领域相关知识。硬件主要有MCU的硬件最小系统、输入/输出外围电路、人机接口设计。软件设计有固化软件的设计,也可能含PC机软件的设计。
概括地说,学习以MCU为核心的嵌入式系统,需要以下软件硬件基础知识与实践训练:
(1)硬件最小系统(包括电源、晶振、复位、写入调试器接口等);
(2)通用I/O(开关量输入/输出,涉及各种二值量检测与控制);
(3)模数转换A/D(各种传感器信号的采集与处理,如红外、温度、光敏、超声波、方向等);
(4)数模转换D/A(对模拟量设备利用数字进行控制);
(5)通信(串行通信接口UART、串行外设接口SPI、集成电路互联总线I2C等);
(6)显示(LED、LCD、触摸屏等);
(7)控制(控制各种设备,包括PWM等控制技术);
(8)数据处理(图形、图像、语音、视频等处理或识别);
(9)各种具体应用。
4.嵌入式系统学习困惑1-选择操作系统:NOS,RTOS或EOS
首先把嵌入式系统软件与硬件基础打好了,再根据实际应用需要,选择一种实时操作系统(RTOS)进行实践。RTOS是开发某些嵌入式产品的辅助工具,是手段,不是目的。况且一些小型微型嵌入式产品并不需要RTOS。所以,一开始就学习RTOS,并不符合“由浅入深、循序渐进”的学习规律。
5.嵌入式系统学习困惑2-选择入门芯片:是微控制器还是微处理器?
选择一个较典型的微控制器作为入门芯片,且从不带操作系统(No Operating System,NOS)学起,由浅入深,逐步推进。
6.嵌入式系统学习困惑3-硬件与软件:如何平衡?
嵌入式系统设计是一个软件、硬件协同设计工程,不能像通用计算机那样,软件、硬件完全分开来看,要在一个大的框架内协调工作。
要想成为一名真正的嵌入式系统设计师,在初学阶段,必须重视打好嵌入式系统的硬件与软件基础。嵌入式系统与硬件紧密相关,是软件与硬件的综合体,没有对硬件的理解就不可能写好嵌入式软件,同样没有对软件的理解也不可能设计好嵌入式硬件。