图书前言

目前很多高校都开设了嵌入式系统课程,有的学校还有嵌入式系统专业,关于嵌入式系统教学内容的讨论也随之而来。其实,嵌入式系统这个概念很大,计算机技术和计算机应用技术的每个方面,几乎都可以找到与嵌入式系统有关联的内容,如微处理器架构、硬件系统设计、软件设计与优化、算法与控制、接口与通信、操作系统、数字信号处理、单片机应用等。所以,完整的嵌入式系统教学内容,应该是一个课程体系、包括一系列的课程。对于一般学校的一门“嵌入式系统”类课程,则不必拘泥(或统一)于某一特定的内容,完全可以根据各自学校、专业的特点和培养方案,选定教学内容。为此,我们也查阅了美国一些高校(如哥伦比亚大学、德克萨斯大学、密西根大学、伯克利大学、华盛顿大学等)的嵌入式系统课程教学内容,发现各高校相似名称的课程,教学内容也相差很大,有的偏重于系统建模、有的偏重于系统控制、有的偏重于应用系统设计。总体而言,偏重于应用、控制方面的,选用微控制器(MCU)教学的较为普遍。

在国内成立嵌入式系统专业的学校,有条件可以开设一系列的嵌入式系统课程。对一般学校来说,涉及嵌入式系统相关教学内容的,可能也就是1~2门课。对于计算机专业而言,大多是原来的“微机原理与接口”“单片机原理与应用”这类课程教学内容的延续和更新。我们华东师范大学计算机系也是如此,目前“嵌入式系统原理与实践”这门课,就是原来“微机原理与接口”“嵌入式系统引论”的升级版。考虑到计算机专业软件课程(包括操作系统、编程语言等)已经很多,所以我们这门课的教学内容重点是嵌入式系统硬件接口方面的知识,以及具有嵌入式系统特点的软件设计方法,包括嵌入式处理器、存储器、I/O、RTOS、嵌入式应用编程等。

嵌入式系统是一种计算机应用系统。作为本科生专业基础课程,要抽象出一般嵌入式应用共性的知识和原理,这部分内容必须具有基础性、普适性,不依赖于某个具体的芯片。然后再选择某些有代表性的具体芯片作为实验载体,加强对原理的理解,掌握应用设计方法。平衡好这两个方面是嵌入式教学的一个难点,为此我们结合自己20多年嵌入式系统教学、科研项目开发经验,逐步抽象出符合本学科专业教学要求的嵌入式系统处理器、存储器、I/O等相关的基础知识和原理,并选择了基于ARM Cortex-M4的超低功耗微控制器MSP432作为硬件实验平台。现在各种MCU型号很多,选择MSP432主要考虑了以下因素。

(1)MSP432基于ARM Cortex-M4内核,采用ARM v7指令集,具有高性能、先进性,32位处理器已成主流,教学内容必须与时俱进。

(2)低功耗是嵌入式系统的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可满足更多教学、应用需求。

(3)MSP432开发工具完善,可支持多种主流嵌入式开发工具,如Keil MDK、IAR、Eclipse等。

(4)对于高校教学实验需求,可向TI大学计划申请免费的MSP432 LaunchPad。

嵌入式系统教学的另一个难点是动手实践。一方面,受学校总课时限制,每周2课时的实验只能让学生做一些肤浅的验证性实验,无法做一些复杂、系统性的实验;另一方面,由于互联网应用的兴起,现在IT学科的学生普遍喜欢软件类课程和互联网应用开发,因为各种移动互联网应用,如Web、手机App应用开发更方便、有趣。为突破这个难题,提高学生对嵌入式系统的学习兴趣,同时结合物联网应用趋势、把嵌入式系统和移动互联网结合起来,我们和阿里巴巴、半导体芯片公司TI合作,开发了基于阿里云IoT平台和AliOS Things的嵌入式物联网实验系统,把手机App作为嵌入式系统的人机交互接口,并可在Internet上实现互动。该实验系统的特色如下。

(1)简单。硬件采用口袋板形式(名片大小),课程一开始就发给学生,学生可在任何时间自行进行编程实验;而在实验室规定的时间可以进行更复杂的实验,大大增加了学生的实验时间、动手和创新能力。

(2)丰富。实验内容丰富,可做一般嵌入式系统课程要求的所有实验内容;并带有Arduino扩展接口,可进行创新实验、应用开发。

(3)有趣。配接联网模块,既可实现物联网应用方案,也可用手机App进行远程操控。

(4)真实。物联网实验方案采用阿里云IoT平台,安全、稳定、有弹性,可用于实际IoT产品和项目,所学即所用。

(5)完善。教材、课件PPT、作业、答案等配套资源完善,可零起点学习使用嵌入式和物联网开发。教师还可以在网上查看、统计学生的学习、实验情况。

(6)免费。对于高校教学,可申请实验板卡、IoT云系统使用全免费。

嵌入式应用几乎无所不在,物联网给嵌入式系统发展带来巨大机遇。从某种角度上说,物联网应用系统也可看作是嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是各种嵌入式设备。随着物联网应用的发展,嵌入式软件日趋复杂,需要针对应用趋势,学习高效的嵌入式、物联网开发技术,包括RTOS、物联网OS、IoT云平台等。对于一般嵌入式开发,本书介绍了FreeRTOS。对于物联网应用开发,本书简单介绍了AliOS Things和阿里云IoT平台,并介绍了一个物联网应用实例。

考虑到教学内容的完整性、学生基础的差异性以及学习参考的便利,本书的后面几章还补充了嵌入式软件设计方法、嵌入式C语言基础、软硬件开发环境以及低功耗设计和电磁兼容性方面的基础知识。

华东师范大学计算机系嵌入式系统实验室长期重视产学研结合,与多家全球著名的半导体厂商(如TI、Microchip、ST等)和互联网企业(如阿里云、微软Azure等)合作,在MCU和物联网系统开发、推广方面积累了丰富的经验。本书内容是结合了我们多年课程教学及MCU和物联网应用开发的经验编写整理而成的,并经过了多届学生的试用,反响良好。

参与本书编写和资料整理、硬件设计和代码验证等工作的,还有华东师范大学计算机系林雯、陶立清、常艳杰、王同乐、张炤、张红艳、陈子炎、周剑晟、郝立平,上海大学李晋等。在本书成稿过程中,得到了TI大学计划经理王承宁、潘亚涛、钟舒阳,阿里巴巴IoT事业部总经理库伟、巍骛、孟子,清华大学出版社邓艳的大力支持。在此向他们表示衷心的感谢。

由于时间仓促和水平所限,书中难免存在不足之处,恳请读者批评指正,以便我们及时修正。

目前很多高校都开设了嵌入式系统课程,有的学校还有嵌入式系统专业,关于嵌入式系统教学内容的讨论也随之而来。其实,嵌入式系统这个概念很大,计算机技术和计算机应用技术的每个方面,几乎都可以找到与嵌入式系统有关联的内容,如微处理器架构、硬件系统设计、软件设计与优化、算法与控制、接口与通信、操作系统、数字信号处理、单片机应用等。所以,完整的嵌入式系统教学内容,应该是一个课程体系、包括一系列的课程。对于一般学校的一门“嵌入式系统”类课程,则不必拘泥(或统一)于某一特定的内容,完全可以根据各自学校、专业的特点和培养方案,选定教学内容。为此,我们也查阅了美国一些高校(如哥伦比亚大学、德克萨斯大学、密西根大学、伯克利大学、华盛顿大学等)的嵌入式系统课程教学内容,发现各高校相似名称的课程,教学内容也相差很大,有的偏重于系统建模、有的偏重于系统控制、有的偏重于应用系统设计。总体而言,偏重于应用、控制方面的,选用微控制器(MCU)教学的较为普遍。

在国内成立嵌入式系统专业的学校,有条件可以开设一系列的嵌入式系统课程。对一般学校来说,涉及嵌入式系统相关教学内容的,可能也就是1~2门课。对于计算机专业而言,大多是原来的“微机原理与接口”“单片机原理与应用”这类课程教学内容的延续和更新。我们华东师范大学计算机系也是如此,目前“嵌入式系统原理与实践”这门课,就是原来“微机原理与接口”“嵌入式系统引论”的升级版。考虑到计算机专业软件课程(包括操作系统、编程语言等)已经很多,所以我们这门课的教学内容重点是嵌入式系统硬件接口方面的知识,以及具有嵌入式系统特点的软件设计方法,包括嵌入式处理器、存储器、I/O、RTOS、嵌入式应用编程等。

嵌入式系统是一种计算机应用系统。作为本科生专业基础课程,要抽象出一般嵌入式应用共性的知识和原理,这部分内容必须具有基础性、普适性,不依赖于某个具体的芯片。然后再选择某些有代表性的具体芯片作为实验载体,加强对原理的理解,掌握应用设计方法。平衡好这两个方面是嵌入式教学的一个难点,为此我们结合自己20多年嵌入式系统教学、科研项目开发经验,逐步抽象出符合本学科专业教学要求的嵌入式系统处理器、存储器、I/O等相关的基础知识和原理,并选择了基于ARM Cortex-M4的超低功耗微控制器MSP432作为硬件实验平台。现在各种MCU型号很多,选择MSP432主要考虑了以下因素。

(1)MSP432基于ARM Cortex-M4内核,采用ARM v7指令集,具有高性能、先进性,32位处理器已成主流,教学内容必须与时俱进。

(2)低功耗是嵌入式系统的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可满足更多教学、应用需求。

(3)MSP432开发工具完善,可支持多种主流嵌入式开发工具,如Keil MDK、IAR、Eclipse等。

(4)对于高校教学实验需求,可向TI大学计划申请免费的MSP432 LaunchPad。

嵌入式系统教学的另一个难点是动手实践。一方面,受学校总课时限制,每周2课时的实验只能让学生做一些肤浅的验证性实验,无法做一些复杂、系统性的实验;另一方面,由于互联网应用的兴起,现在IT学科的学生普遍喜欢软件类课程和互联网应用开发,因为各种移动互联网应用,如Web、手机App应用开发更方便、有趣。为突破这个难题,提高学生对嵌入式系统的学习兴趣,同时结合物联网应用趋势、把嵌入式系统和移动互联网结合起来,我们和阿里巴巴、半导体芯片公司TI合作,开发了基于阿里云IoT平台和AliOS Things的嵌入式物联网实验系统,把手机App作为嵌入式系统的人机交互接口,并可在Internet上实现互动。该实验系统的特色如下。

(1)简单。硬件采用口袋板形式(名片大小),课程一开始就发给学生,学生可在任何时间自行进行编程实验;而在实验室规定的时间可以进行更复杂的实验,大大增加了学生的实验时间、动手和创新能力。

(2)丰富。实验内容丰富,可做一般嵌入式系统课程要求的所有实验内容;并带有Arduino扩展接口,可进行创新实验、应用开发。

(3)有趣。配接联网模块,既可实现物联网应用方案,也可用手机App进行远程操控。

(4)真实。物联网实验方案采用阿里云IoT平台,安全、稳定、有弹性,可用于实际IoT产品和项目,所学即所用。

(5)完善。教材、课件PPT、作业、答案等配套资源完善,可零起点学习使用嵌入式和物联网开发。教师还可以在网上查看、统计学生的学习、实验情况。

(6)免费。对于高校教学,可申请实验板卡、IoT云系统使用全免费。

嵌入式应用几乎无所不在,物联网给嵌入式系统发展带来巨大机遇。从某种角度上说,物联网应用系统也可看作是嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是各种嵌入式设备。随着物联网应用的发展,嵌入式软件日趋复杂,需要针对应用趋势,学习高效的嵌入式、物联网开发技术,包括RTOS、物联网OS、IoT云平台等。对于一般嵌入式开发,本书介绍了FreeRTOS。对于物联网应用开发,本书简单介绍了AliOS Things和阿里云IoT平台,并介绍了一个物联网应用实例。

考虑到教学内容的完整性、学生基础的差异性以及学习参考的便利,本书的后面几章还补充了嵌入式软件设计方法、嵌入式C语言基础、软硬件开发环境以及低功耗设计和电磁兼容性方面的基础知识。

华东师范大学计算机系嵌入式系统实验室长期重视产学研结合,与多家全球著名的半导体厂商(如TI、Microchip、ST等)和互联网企业(如阿里云、微软Azure等)合作,在MCU和物联网系统开发、推广方面积累了丰富的经验。本书内容是结合了我们多年课程教学及MCU和物联网应用开发的经验编写整理而成的,并经过了多届学生的试用,反响良好。

参与本书编写和资料整理、硬件设计和代码验证等工作的,还有华东师范大学计算机系林雯、陶立清、常艳杰、王同乐、张炤、张红艳、陈子炎、周剑晟、郝立平,上海大学李晋等。在本书成稿过程中,得到了TI大学计划经理王承宁、潘亚涛、钟舒阳,阿里巴巴IoT事业部总经理库伟、巍骛、孟子,清华大学出版社邓艳的大力支持。在此向他们表示衷心的感谢。

由于时间仓促和水平所限,书中难免存在不足之处,恳请读者批评指正,以便我们及时修正。

目前很多高校都开设了嵌入式系统课程,有的学校还有嵌入式系统专业,关于嵌入式系统教学内容的讨论也随之而来。其实,嵌入式系统这个概念很大,计算机技术和计算机应用技术的每个方面,几乎都可以找到与嵌入式系统有关联的内容,如微处理器架构、硬件系统设计、软件设计与优化、算法与控制、接口与通信、操作系统、数字信号处理、单片机应用等。所以,完整的嵌入式系统教学内容,应该是一个课程体系、包括一系列的课程。对于一般学校的一门“嵌入式系统”类课程,则不必拘泥(或统一)于某一特定的内容,完全可以根据各自学校、专业的特点和培养方案,选定教学内容。为此,我们也查阅了美国一些高校(如哥伦比亚大学、德克萨斯大学、密西根大学、伯克利大学、华盛顿大学等)的嵌入式系统课程教学内容,发现各高校相似名称的课程,教学内容也相差很大,有的偏重于系统建模、有的偏重于系统控制、有的偏重于应用系统设计。总体而言,偏重于应用、控制方面的,选用微控制器(MCU)教学的较为普遍。

在国内成立嵌入式系统专业的学校,有条件可以开设一系列的嵌入式系统课程。对一般学校来说,涉及嵌入式系统相关教学内容的,可能也就是1~2门课。对于计算机专业而言,大多是原来的“微机原理与接口”“单片机原理与应用”这类课程教学内容的延续和更新。我们华东师范大学计算机系也是如此,目前“嵌入式系统原理与实践”这门课,就是原来“微机原理与接口”“嵌入式系统引论”的升级版。考虑到计算机专业软件课程(包括操作系统、编程语言等)已经很多,所以我们这门课的教学内容重点是嵌入式系统硬件接口方面的知识,以及具有嵌入式系统特点的软件设计方法,包括嵌入式处理器、存储器、I/O、RTOS、嵌入式应用编程等。

嵌入式系统是一种计算机应用系统。作为本科生专业基础课程,要抽象出一般嵌入式应用共性的知识和原理,这部分内容必须具有基础性、普适性,不依赖于某个具体的芯片。然后再选择某些有代表性的具体芯片作为实验载体,加强对原理的理解,掌握应用设计方法。平衡好这两个方面是嵌入式教学的一个难点,为此我们结合自己20多年嵌入式系统教学、科研项目开发经验,逐步抽象出符合本学科专业教学要求的嵌入式系统处理器、存储器、I/O等相关的基础知识和原理,并选择了基于ARM Cortex-M4的超低功耗微控制器MSP432作为硬件实验平台。现在各种MCU型号很多,选择MSP432主要考虑了以下因素。

(1)MSP432基于ARM Cortex-M4内核,采用ARM v7指令集,具有高性能、先进性,32位处理器已成主流,教学内容必须与时俱进。

(2)低功耗是嵌入式系统的重要特性,MSP432既有一般ARM MCU的功能性,也有超低功耗特性,可满足更多教学、应用需求。

(3)MSP432开发工具完善,可支持多种主流嵌入式开发工具,如Keil MDK、IAR、Eclipse等。

(4)对于高校教学实验需求,可向TI大学计划申请免费的MSP432 LaunchPad。

嵌入式系统教学的另一个难点是动手实践。一方面,受学校总课时限制,每周2课时的实验只能让学生做一些肤浅的验证性实验,无法做一些复杂、系统性的实验;另一方面,由于互联网应用的兴起,现在IT学科的学生普遍喜欢软件类课程和互联网应用开发,因为各种移动互联网应用,如Web、手机App应用开发更方便、有趣。为突破这个难题,提高学生对嵌入式系统的学习兴趣,同时结合物联网应用趋势、把嵌入式系统和移动互联网结合起来,我们和阿里巴巴、半导体芯片公司TI合作,开发了基于阿里云IoT平台和AliOS Things的嵌入式物联网实验系统,把手机App作为嵌入式系统的人机交互接口,并可在Internet上实现互动。该实验系统的特色如下。

(1)简单。硬件采用口袋板形式(名片大小),课程一开始就发给学生,学生可在任何时间自行进行编程实验;而在实验室规定的时间可以进行更复杂的实验,大大增加了学生的实验时间、动手和创新能力。

(2)丰富。实验内容丰富,可做一般嵌入式系统课程要求的所有实验内容;并带有Arduino扩展接口,可进行创新实验、应用开发。

(3)有趣。配接联网模块,既可实现物联网应用方案,也可用手机App进行远程操控。

(4)真实。物联网实验方案采用阿里云IoT平台,安全、稳定、有弹性,可用于实际IoT产品和项目,所学即所用。

(5)完善。教材、课件PPT、作业、答案等配套资源完善,可零起点学习使用嵌入式和物联网开发。教师还可以在网上查看、统计学生的学习、实验情况。

(6)免费。对于高校教学,可申请实验板卡、IoT云系统使用全免费。

嵌入式应用几乎无所不在,物联网给嵌入式系统发展带来巨大机遇。从某种角度上说,物联网应用系统也可看作是嵌入式系统的网络应用,因为物联网系统中的“物”,基本上都是各种嵌入式设备。随着物联网应用的发展,嵌入式软件日趋复杂,需要针对应用趋势,学习高效的嵌入式、物联网开发技术,包括RTOS、物联网OS、IoT云平台等。对于一般嵌入式开发,本书介绍了FreeRTOS。对于物联网应用开发,本书简单介绍了AliOS Things和阿里云IoT平台,并介绍了一个物联网应用实例。

考虑到教学内容的完整性、学生基础的差异性以及学习参考的便利,本书的后面几章还补充了嵌入式软件设计方法、嵌入式C语言基础、软硬件开发环境以及低功耗设计和电磁兼容性方面的基础知识。

华东师范大学计算机系嵌入式系统实验室长期重视产学研结合,与多家全球著名的半导体厂商(如TI、Microchip、ST等)和互联网企业(如阿里云、微软Azure等)合作,在MCU和物联网系统开发、推广方面积累了丰富的经验。本书内容是结合了我们多年课程教学及MCU和物联网应用开发的经验编写整理而成的,并经过了多届学生的试用,反响良好。

参与本书编写和资料整理、硬件设计和代码验证等工作的,还有华东师范大学计算机系林雯、陶立清、常艳杰、王同乐、张炤、张红艳、陈子炎、周剑晟、郝立平,上海大学李晋等。在本书成稿过程中,得到了TI大学计划经理王承宁、潘亚涛、钟舒阳,阿里巴巴IoT事业部总经理库伟、巍骛、孟子,清华大学出版社邓艳的大力支持。在此向他们表示衷心的感谢。

由于时间仓促和水平所限,书中难免存在不足之处,恳请读者批评指正,以便我们及时修正。

编  者